2012-03-15 46 views
9

我正在尝试使用RemoteControlClient类来支持与我的应用程序的锁屏播放器。一个问题是设置传输控制标志看起来好像不能正常工作。Android 4.x RemoteControlClient.setTransportControlFlags()不工作?

比如我想只显示没有上/下一个播放/停止图标:

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

这说明以前的图标和暂停图标!为什么?

如果按下停止/播放按钮时,情况会更糟糕,您只能在收到KEYCODE_MEDIA_STOPKEYCODE_MEDIA_PLAY时收到KEYCODE_MEDIA_PLAY_PAUSE

如果我发现我正确地做了这件事,这是令人沮丧的Android开发不佳的开发。

+1

我注意到与以往按钮同样的问题,而且似乎没有成为变通的办法。对于FLAG_KEY_MEDIA_PLAY_PAUSE,FLAG_KEY_MEDIA_STOP和KEYCODE_MEDIA_PLAY,似乎FLAG_KEY_MEDIA_PLAY_PAUSE总是被使用,无论您指定什么。但是,应该期望从FLAG_KEY_MEDIA_PLAY_PAUSE收到KEYCODE_MEDIA_PLAY_PAUSE。如果它按原样工作,则您需要指定FLAG_KEY_MEDIA_PLAY以接收KEYCODE_MEDIA_PLAY。 – 2012-03-25 21:31:30

+0

有关错误的媒体按钮,请参阅http://code.google.com/p/android/issues/detail?id=29920。 – svenmeier 2012-05-02 09:35:48

+0

感谢您的错误URL。 – Jona 2012-05-02 12:09:38

回答

0

的FLAG_KEY_MEDIA_STOP从未停止显示,因为机器人的bug报告如下: https://code.google.com/p/android/issues/detail?id=29920

如果使用标志PLAY_PAUSE是不应该产生KEYCODE_MEDIA_STOP事件。为什么呢? 这是一个播放/暂停切换操作,可以完成它的目的。存储媒体播放器的状态取决于您的应用程序。

如果我正确理解了文档,只有使用标志FLAG_KEY_MEDIA_PLAY和FLAG_KEY_MEDIA_PAUSE才能获得KEYCODE_MEDIA_PLAY或KEYCODE_MEDIA_PAUSE。 但是android可能会“聪明”并将其翻译为切换。 我不确定。

0

使用FLAG_KEY_MEDIA_PLAY_PAUSE

oRemoteControlClient.setTransportControlFlags(RemoteControlClient.FLAG_KEY_MEDIA_PLAY_PAUSE);

与谎言,RemoteControlClient ;-)

告诉他,流缓冲和它会显示停止按钮!

oRemoteControlClient.setPlaybackState(RemoteControlClient.PLAYSTATE_BUFFERING);

干杯

相关问题