TEST - Initialize the player by setting renderersFactory and mediaSourceFactory

This commit is contained in:
antonio 2022-12-29 13:48:16 +01:00
parent 22520772dd
commit e6bf87b31f

View file

@ -11,11 +11,13 @@ import androidx.media3.cast.SessionAvailabilityListener
import androidx.media3.common.* import androidx.media3.common.*
import androidx.media3.common.util.UnstableApi import androidx.media3.common.util.UnstableApi
import androidx.media3.exoplayer.ExoPlayer import androidx.media3.exoplayer.ExoPlayer
import androidx.media3.exoplayer.source.DefaultMediaSourceFactory
import androidx.media3.session.* import androidx.media3.session.*
import androidx.media3.session.MediaSession.ControllerInfo import androidx.media3.session.MediaSession.ControllerInfo
import com.cappielloantonio.play.R import com.cappielloantonio.play.R
import com.cappielloantonio.play.model.Media import com.cappielloantonio.play.model.Media
import com.cappielloantonio.play.ui.activity.MainActivity import com.cappielloantonio.play.ui.activity.MainActivity
import com.cappielloantonio.play.util.DownloadUtil
import com.cappielloantonio.play.util.UIUtil import com.cappielloantonio.play.util.UIUtil
import com.google.android.gms.cast.framework.CastContext import com.google.android.gms.cast.framework.CastContext
import com.google.common.collect.ImmutableList import com.google.common.collect.ImmutableList
@ -195,6 +197,8 @@ class MediaService : MediaLibraryService(), SessionAvailabilityListener {
private fun initializePlayer() { private fun initializePlayer() {
player = ExoPlayer.Builder(this) player = ExoPlayer.Builder(this)
.setRenderersFactory(getRenderersFactory())
.setMediaSourceFactory(getMediaSourceFactory())
.setAudioAttributes(AudioAttributes.DEFAULT, true) .setAudioAttributes(AudioAttributes.DEFAULT, true)
.setHandleAudioBecomingNoisy(true) .setHandleAudioBecomingNoisy(true)
.setWakeMode(C.WAKE_MODE_NETWORK) .setWakeMode(C.WAKE_MODE_NETWORK)
@ -279,6 +283,11 @@ class MediaService : MediaLibraryService(), SessionAvailabilityListener {
/* Do nothing. */ /* Do nothing. */
} }
private fun getRenderersFactory() = DownloadUtil.buildRenderersFactory(this, false)
private fun getMediaSourceFactory() =
DefaultMediaSourceFactory(this).setDataSourceFactory(DownloadUtil.getDataSourceFactory(this))
override fun onCastSessionAvailable() { override fun onCastSessionAvailable() {
setPlayer(player, castPlayer) setPlayer(player, castPlayer)
} }