mirror of
https://github.com/tapframe/NuvioStreaming.git
synced 2026-08-04 10:36:56 +00:00
fix: remove trailer data source layer leaking for normal playback
This commit is contained in:
parent
f4e6b7fef1
commit
b7e12cb26a
6 changed files with 22 additions and 4 deletions
|
|
@ -1,9 +1,17 @@
|
|||
package com.nuvio.app.features.player
|
||||
|
||||
import androidx.media3.datasource.DataSource
|
||||
import androidx.media3.datasource.DefaultHttpDataSource
|
||||
import com.nuvio.app.features.trailer.YoutubeChunkedDataSourceFactory
|
||||
|
||||
internal object PlatformPlaybackDataSourceFactory {
|
||||
fun create(defaultRequestHeaders: Map<String, String>): DataSource.Factory =
|
||||
YoutubeChunkedDataSourceFactory(defaultRequestHeaders = defaultRequestHeaders)
|
||||
fun create(
|
||||
defaultRequestHeaders: Map<String, String>,
|
||||
useYoutubeChunkedPlayback: Boolean,
|
||||
): DataSource.Factory =
|
||||
if (useYoutubeChunkedPlayback) {
|
||||
YoutubeChunkedDataSourceFactory(defaultRequestHeaders = defaultRequestHeaders)
|
||||
} else {
|
||||
DefaultHttpDataSource.Factory().setDefaultRequestProperties(defaultRequestHeaders)
|
||||
}
|
||||
}
|
||||
|
|
@ -63,6 +63,7 @@ actual fun PlatformPlayerSurface(
|
|||
sourceUrl: String,
|
||||
sourceAudioUrl: String?,
|
||||
sourceHeaders: Map<String, String>,
|
||||
useYoutubeChunkedPlayback: Boolean,
|
||||
modifier: Modifier,
|
||||
playWhenReady: Boolean,
|
||||
resizeMode: PlayerResizeMode,
|
||||
|
|
@ -116,7 +117,10 @@ actual fun PlatformPlayerSurface(
|
|||
.setTsExtractorTimestampSearchBytes(1500 * TsExtractor.TS_PACKET_SIZE)
|
||||
|
||||
val mediaSourceFactory = DefaultMediaSourceFactory(
|
||||
PlatformPlaybackDataSourceFactory.create(defaultRequestHeaders = sanitizedSourceHeaders),
|
||||
PlatformPlaybackDataSourceFactory.create(
|
||||
defaultRequestHeaders = sanitizedSourceHeaders,
|
||||
useYoutubeChunkedPlayback = useYoutubeChunkedPlayback,
|
||||
),
|
||||
extractorsFactory,
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,9 @@ import androidx.media3.datasource.DataSource
|
|||
import androidx.media3.datasource.DefaultHttpDataSource
|
||||
|
||||
internal object PlatformPlaybackDataSourceFactory {
|
||||
fun create(defaultRequestHeaders: Map<String, String>): DataSource.Factory =
|
||||
fun create(
|
||||
defaultRequestHeaders: Map<String, String>,
|
||||
useYoutubeChunkedPlayback: Boolean,
|
||||
): DataSource.Factory =
|
||||
DefaultHttpDataSource.Factory().setDefaultRequestProperties(defaultRequestHeaders)
|
||||
}
|
||||
|
|
@ -170,6 +170,7 @@ fun TrailerPlayerPopup(
|
|||
PlatformPlayerSurface(
|
||||
sourceUrl = playbackSource.videoUrl,
|
||||
sourceAudioUrl = playbackSource.audioUrl,
|
||||
useYoutubeChunkedPlayback = true,
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
playWhenReady = true,
|
||||
resizeMode = PlayerResizeMode.Fit,
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ expect fun PlatformPlayerSurface(
|
|||
sourceUrl: String,
|
||||
sourceAudioUrl: String? = null,
|
||||
sourceHeaders: Map<String, String> = emptyMap(),
|
||||
useYoutubeChunkedPlayback: Boolean = false,
|
||||
modifier: Modifier = Modifier,
|
||||
playWhenReady: Boolean = true,
|
||||
resizeMode: PlayerResizeMode = PlayerResizeMode.Fit,
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ actual fun PlatformPlayerSurface(
|
|||
sourceUrl: String,
|
||||
sourceAudioUrl: String?,
|
||||
sourceHeaders: Map<String, String>,
|
||||
useYoutubeChunkedPlayback: Boolean,
|
||||
modifier: Modifier,
|
||||
playWhenReady: Boolean,
|
||||
resizeMode: PlayerResizeMode,
|
||||
|
|
|
|||
Loading…
Reference in a new issue