Как я могу получить действие кнопки уведомления PlayerNotificationManager, как остановить? - PullRequest
0 голосов
/ 07 октября 2019

Я использую Exoplayer и связываюсь с PlayerNotificationManager для обработки действий игрока в уведомлении. Это работает невероятно, но я хочу получить слушателя или получателя, когда кнопка остановки нажата из уведомления. Прямо сейчас, когда я нажимаю на кнопку остановки, игрок застрял.

playerNotificationManager = PlayerNotificationManager.createWithNotificationChannel(
        this,
        "playback_channel",
        R.string.exo_download_notification_channel_name,
        1,
        object : PlayerNotificationManager.MediaDescriptionAdapter {
            override fun createCurrentContentIntent(player: Player?): PendingIntent? {
                val intent = Intent(context, PlayerExoActivity::class.java)
                return PendingIntent.getActivity(
                    context,
                    1,
                    intent,
                    PendingIntent.FLAG_UPDATE_CURRENT
                )
            }

            override fun getCurrentContentText(player: Player?): String? {
                return "Day " + chapterName
            }

            override fun getCurrentContentTitle(player: Player?): String {
                return courseName!!
            }

            override fun getCurrentLargeIcon(
                player: Player?,
                callback: PlayerNotificationManager.BitmapCallback?
            ): Bitmap? {
                return largeIcon
            }
        }
    )

Это приемник для обработки других вещей при изменении состояния Exoplayer.

override fun onPlayerStateChanged(playWhenReady: Boolean, playbackState: Int) {
    if (playbackState == ExoPlayer.STATE_BUFFERING) {
        val intent = Intent("com.example.exoplayer.PLAYER_STATUS")
        intent.putExtra("state", PlaybackStateCompat.STATE_BUFFERING)
        broadcaster?.sendBroadcast(intent)
    } else if (playbackState == ExoPlayer.STATE_READY) {
        val intent = Intent("com.example.exoplayer.PLAYER_STATUS")
        if (playWhenReady) {
            intent.putExtra("state", PlaybackStateCompat.STATE_PLAYING)
        } else {
            intent.putExtra("state", PlaybackStateCompat.STATE_PAUSED)
        }
        broadcaster?.sendBroadcast(intent)
    } else if (playbackState == ExoPlayer.STATE_ENDED) {
        val intent = Intent("com.example.exoplayer.PLAYER_STATUS")
        intent.putExtra("state", PlaybackStateCompat.STATE_STOPPED)
        broadcaster?.sendBroadcast(intent)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...