Как реализовать MediaButtonEvent, используя MediaSessionConnector? - PullRequest
0 голосов
/ 29 апреля 2020

Я реализовал следующий код для mediaButtonevent, но он не работает.

Я пытался использовать mediaSessionConnector для обработки события mediabutton.

Он не отражает никаких намерений со стороны оборудования.

Может ли кто-нибудь помочь мне обработать следующий код?

 private var mediaButtonEvent = object : MediaSessionConnector.MediaButtonEventHandler {
    override fun onMediaButtonEvent(
        player: Player?,
        controlDispatcher: ControlDispatcher?,
        mediaButtonEvent: Intent?
    ): Boolean {
        Log.d(TAG, "mediaButtonEvent : $mediaButtonEvent")
        if (Intent.ACTION_MEDIA_BUTTON == mediaButtonEvent?.action) {
            val keyEvent =
                mediaButtonEvent.getParcelableExtra<KeyEvent>(Intent.EXTRA_KEY_EVENT)
            Log.d(TAG, "KeyEvent : $keyEvent")
            if (keyEvent?.action == KeyEvent.ACTION_UP) {
                when (keyEvent.keyCode) {
                    KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE -> {
                        Log.d(
                            TAG,
                            "KeyEvent PLAY_PAUSE : " + mediaController.playbackState.state
                        )
                        if (mediaController.playbackState.state == PlaybackStateCompat.STATE_PLAYING) {
                            player?.playWhenReady = true
                        } else {
                            player?.playWhenReady = false
                        }
                        return true
                    }
                    KeyEvent.KEYCODE_MEDIA_PLAY -> {
                        Log.d(
                            TAG,
                            "KeyEvent KEYCODE_MEDIA_PLAY : " + mediaController.playbackState.state
                        )
                        if (mediaController.playbackState.state == PlaybackStateCompat.STATE_PAUSED) {
                            player?.playWhenReady = true
                        }
                        return true
                    }
                }
            }
        }
        return false
    }

}

}

Соединиться с mediaSessionConnetor

  connector.setMediaButtonEventHandler(mediaButtonEvent)

кто-нибудь подскажет, что аппаратная кнопка не работает для меня?

...