Android 4.x RemoteControlClient.setTransportControlFlags () не работает? - PullRequest
9 голосов
/ 15 марта 2012

Я пытаюсь использовать класс RemoteControlClient для поддержки проигрывателя экрана блокировки с моим приложением. Одна из проблем заключается в том, что установка флагов управления транспортом кажется, что они не работают должным образом.

Например, я пытаюсь просто показать значок воспроизведения / остановки без предыстории / следующего:

mRemoteControlClient.setTransportControlFlags(
                        RemoteControlClient.FLAG_KEY_MEDIA_PLAY_PAUSE |
                        RemoteControlClient.FLAG_KEY_MEDIA_STOP);

Показывает предыдущий значок и значок паузы! Почему?

Что еще хуже, если нажать кнопку остановки / воспроизведения, вы получите KEYCODE_MEDIA_PLAY_PAUSE только тогда, когда вы должны получить KEYCODE_MEDIA_STOP или KEYCODE_MEDIA_PLAY.

Это расстраивает плохую разработку на стороне Android, если я узнаю, что я делаю это правильно.

Ответы [ 2 ]

0 голосов
/ 24 октября 2014

Используйте FLAG_KEY_MEDIA_PLAY_PAUSE

oRemoteControlClient.setTransportControlFlags(RemoteControlClient.FLAG_KEY_MEDIA_PLAY_PAUSE);

И врать RemoteControlClient; -)

Скажите ему, что поток буферизуется, и он покажет кнопку остановки!

oRemoteControlClient.setPlaybackState(RemoteControlClient.PLAYSTATE_BUFFERING);

Приветствия

0 голосов
/ 08 апреля 2014

FLAG_KEY_MEDIA_STOP никогда не показывает останов из-за ошибки в Android, как сообщается здесь: https://code.google.com/p/android/issues/detail?id=29920

Если вы используете флаг PLAY_PAUSE, это не должно вызывать событие KEYCODE_MEDIA_STOP. С чего бы это? Это действие переключения воспроизведения / паузы, которое выполняет то, для чего оно предназначено. Ваше приложение должно сохранять состояние вашего медиаплеера.

Если я правильно понимаю документацию, вы можете получить KEYCODE_MEDIA_PLAY или KEYCODE_MEDIA_PAUSE, только если вы используете флаги FLAG_KEY_MEDIA_PLAY и FLAG_KEY_MEDIA_PAUSE. Но андроид может быть «умным» и переводить его в тумблер. Я не уверен в этом.

...