diff --git a/new-player/src/main/java/net/newpipe/newplayer/NewPlayerImpl.kt b/new-player/src/main/java/net/newpipe/newplayer/NewPlayerImpl.kt index 1cf25d15..d12ebceb 100644 --- a/new-player/src/main/java/net/newpipe/newplayer/NewPlayerImpl.kt +++ b/new-player/src/main/java/net/newpipe/newplayer/NewPlayerImpl.kt @@ -501,7 +501,7 @@ internalPlayStream(mediaSource: MediaSource, playMode: PlayMode) { val builder = MediaSourceBuilder( repository = repository, mutableErrorFlow = mutableErrorFlow, - httpDataSourceFactory = repository.getHttpDataSourceFactory(item), + dataSourceFactory = repository.getDataSourceFactory(item, app), ) val uniqueId = Random.nextLong() diff --git a/new-player/src/main/java/net/newpipe/newplayer/logic/MediaSourceBuilder.kt b/new-player/src/main/java/net/newpipe/newplayer/logic/MediaSourceBuilder.kt index 9c7aebca..e4da2cbf 100644 --- a/new-player/src/main/java/net/newpipe/newplayer/logic/MediaSourceBuilder.kt +++ b/new-player/src/main/java/net/newpipe/newplayer/logic/MediaSourceBuilder.kt @@ -23,7 +23,7 @@ package net.newpipe.newplayer.logic import androidx.annotation.OptIn import androidx.media3.common.MediaItem import androidx.media3.common.util.UnstableApi -import androidx.media3.datasource.HttpDataSource +import androidx.media3.datasource.DataSource import androidx.media3.exoplayer.dash.DashMediaSource import androidx.media3.exoplayer.source.MediaSource import androidx.media3.exoplayer.source.MergingMediaSource @@ -47,7 +47,7 @@ internal class MediaSourceBuilder ( private val repository: MediaRepository, private val mutableErrorFlow: MutableSharedFlow, - private val httpDataSourceFactory: HttpDataSource.Factory, + private val dataSourceFactory: DataSource.Factory, ) { @OptIn(UnstableApi::class) @@ -105,10 +105,10 @@ internal suspend fun buildMediaSource( @OptIn(UnstableApi::class) private fun toMediaSource(mediaItem: MediaItem, stream: Stream): MediaSource = if (stream.isDashOrHls) - DashMediaSource.Factory(httpDataSourceFactory) + DashMediaSource.Factory(dataSourceFactory) .createMediaSource(mediaItem) else - ProgressiveMediaSource.Factory(httpDataSourceFactory) + ProgressiveMediaSource.Factory(dataSourceFactory) .createMediaSource(mediaItem) diff --git a/new-player/src/main/java/net/newpipe/newplayer/repository/MediaRepository.kt b/new-player/src/main/java/net/newpipe/newplayer/repository/MediaRepository.kt index 6db9d253..442674ef 100644 --- a/new-player/src/main/java/net/newpipe/newplayer/repository/MediaRepository.kt +++ b/new-player/src/main/java/net/newpipe/newplayer/repository/MediaRepository.kt @@ -20,10 +20,12 @@ package net.newpipe.newplayer.repository +import android.os.Build +import android.content.Context import android.graphics.Bitmap import androidx.media3.common.MediaMetadata import androidx.media3.datasource.DefaultHttpDataSource -import androidx.media3.datasource.HttpDataSource +import androidx.media3.datasource.DataSource import net.newpipe.newplayer.data.Chapter import net.newpipe.newplayer.data.Stream import net.newpipe.newplayer.data.Subtitle @@ -114,8 +116,9 @@ interface MediaRepository { /** * Supply a custom [HttpDataSource.Factory]. This is important for Youtube. */ - fun getHttpDataSourceFactory(item: String): HttpDataSource.Factory = - DefaultHttpDataSource.Factory() + fun getDataSourceFactory(item: String, context: Context): DataSource.Factory { + return DefaultHttpDataSource.Factory() + } /** * Get MediaMetadata information for a certain item. Please refer to the media3 documentation