#android #android-mediaplayer #exoplayer #mediabrowserservicecompat
Вопрос:
Я использую MediaBrowserServiceCompat для воспроизведения аудио. Столкнулся с проблемой, что невозможно удалить элемент из текущего списка воспроизведения. Нет ни ошибки, ни предупреждения. Скажите мне, в чем может быть проблема?
class MusicServiceConnection(context: Context, serviceComponent: ComponentName) {
//...
fun removeItem(description: MediaDescriptionCompat) {
mediaController.removeQueueItem(description)
}
}
class MediaPlaybackService : MediaBrowserServiceCompat() {
//...
override fun onCreate() {
super.onCreate()
val sessionActivityPendingIntent =
packageManager?.getLaunchIntentForPackage(packageName)?.let { sessionIntent ->
PendingIntent.getActivity(this, 0, sessionIntent, 0)
}
val mediaSession = MediaSessionCompat(this, MediaPlaybackService::class.java.simpleName).apply {
setSessionActivity(sessionActivityPendingIntent)
isActive = true
}
sessionToken = mediaSession.sessionToken
notificationManager = MediaNotificationManager(this, mediaSession.sessionToken, PlayerNotificationListener())
// Load tracks
serviceScope.launch {
mediaStorage.load()
}
mediaSessionConnector = MediaSessionConnector(mediaSession).also {
it.mediaSession.setFlags(MediaSessionCompat.FLAG_HANDLES_QUEUE_COMMANDS)
}
mediaSessionConnector.setPlaybackPreparer(MediaPlaybackPreparer(mediaStorage,::preparePlaylist) { currentPlaylistItems }
mediaSessionConnector.setQueueNavigator(MediaQueueNavigator(mediaSession))
}
}