Moves playback service startup to the IO Thread

This commit is contained in:
Vitor Pamplona
2023-07-22 18:27:25 -04:00
parent 4eea36678e
commit ed68ca5f26

View File

@@ -10,6 +10,9 @@ import androidx.media3.session.DefaultMediaNotificationProvider
import androidx.media3.session.MediaSession import androidx.media3.session.MediaSession
import androidx.media3.session.MediaSessionService import androidx.media3.session.MediaSessionService
import com.vitorpamplona.amethyst.service.HttpClient import com.vitorpamplona.amethyst.service.HttpClient
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
@UnstableApi // Extend MediaSessionService @UnstableApi // Extend MediaSessionService
class PlaybackService : MediaSessionService() { class PlaybackService : MediaSessionService() {
@@ -32,6 +35,7 @@ class PlaybackService : MediaSessionService() {
override fun onCreate() { override fun onCreate() {
super.onCreate() super.onCreate()
GlobalScope.launch(Dispatchers.IO) {
managerHls = MultiPlayerPlaybackManager(newHslDataSource(), videoViewedPositionCache) managerHls = MultiPlayerPlaybackManager(newHslDataSource(), videoViewedPositionCache)
managerProgressive = MultiPlayerPlaybackManager(newProgressiveDataSource(), videoViewedPositionCache) managerProgressive = MultiPlayerPlaybackManager(newProgressiveDataSource(), videoViewedPositionCache)
managerLocal = MultiPlayerPlaybackManager(cachedPositions = videoViewedPositionCache) managerLocal = MultiPlayerPlaybackManager(cachedPositions = videoViewedPositionCache)
@@ -52,6 +56,7 @@ class PlaybackService : MediaSessionService() {
DefaultMediaNotificationProvider.Builder(applicationContext).build() DefaultMediaNotificationProvider.Builder(applicationContext).build()
) )
} }
}
override fun onDestroy() { override fun onDestroy() {
managerHls?.releaseAppPlayers() managerHls?.releaseAppPlayers()