feat: add RTMP support
This commit is contained in:
@@ -87,12 +87,22 @@ class Media3Player(private val context: Context) {
|
||||
actualPlayingUrl = null
|
||||
|
||||
val currentSurface = surface
|
||||
val isRtmp = url.startsWith("rtmp", ignoreCase = true)
|
||||
|
||||
exoPlayer?.apply {
|
||||
stop()
|
||||
clearMediaItems()
|
||||
clearVideoSurface()
|
||||
setMediaItem(createMediaItem(url))
|
||||
|
||||
if (isRtmp) {
|
||||
val rtmpSource = androidx.media3.exoplayer.source.ProgressiveMediaSource.Factory(
|
||||
androidx.media3.datasource.rtmp.RtmpDataSource.Factory()
|
||||
).createMediaSource(androidx.media3.common.MediaItem.fromUri(url))
|
||||
setMediaSource(rtmpSource)
|
||||
} else {
|
||||
setMediaItem(createMediaItem(url))
|
||||
}
|
||||
|
||||
prepare()
|
||||
|
||||
if (currentSurface != null && currentSurface.isValid) {
|
||||
|
||||
@@ -6,6 +6,7 @@ import android.media.MediaCodecList
|
||||
import androidx.media3.common.AudioAttributes
|
||||
import androidx.media3.common.C
|
||||
import androidx.media3.datasource.DefaultHttpDataSource
|
||||
import androidx.media3.datasource.rtmp.RtmpDataSource
|
||||
import androidx.media3.exoplayer.DefaultLoadControl
|
||||
import androidx.media3.exoplayer.DefaultRenderersFactory
|
||||
import androidx.media3.exoplayer.ExoPlayer
|
||||
|
||||
@@ -89,6 +89,7 @@ androidx-media3-exoplayer = { group = "androidx.media3", name = "media3-exoplaye
|
||||
androidx-media3-exoplayer-hls = { group = "androidx.media3", name = "media3-exoplayer-hls", version.ref = "media3" }
|
||||
androidx-media3-exoplayer-dash = { group = "androidx.media3", name = "media3-exoplayer-dash", version.ref = "media3" }
|
||||
androidx-media3-exoplayer-rtsp = { group = "androidx.media3", name = "media3-exoplayer-rtsp", version.ref = "media3" }
|
||||
androidx-media3-datasource-rtmp = { group = "androidx.media3", name = "media3-datasource-rtmp", version.ref = "media3" }
|
||||
androidx-media3-ui = { group = "androidx.media3", name = "media3-ui", version.ref = "media3" }
|
||||
androidx-media3-session = { group = "androidx.media3", name = "media3-session", version.ref = "media3" }
|
||||
androidx-media3-exoplayer-ffmpeg = { group = "org.jellyfin.media3", name = "media3-ffmpeg-decoder", version = "1.9.0+1" }
|
||||
@@ -132,6 +133,7 @@ media3 = [
|
||||
"androidx-media3-exoplayer-hls",
|
||||
"androidx-media3-exoplayer-dash",
|
||||
"androidx-media3-exoplayer-rtsp",
|
||||
"androidx-media3-datasource-rtmp",
|
||||
"androidx-media3-exoplayer-ffmpeg",
|
||||
"androidx-media3-ui",
|
||||
"androidx-media3-session"
|
||||
|
||||
Reference in New Issue
Block a user