9

我正在尝试使用 RemoteControlClient 类来支持我的应用程序的锁屏播放器。一个问题是设置传输控制标志似乎无法正常工作。

例如,我试图只显示播放/停止图标 no prev/next:

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

这会显示上一个图标和暂停图标!为什么?

更糟糕的是,当您按下停止/播放按钮KEYCODE_MEDIA_PLAY_PAUSE时,您只会在应该获得KEYCODE_MEDIA_STOP或时收到KEYCODE_MEDIA_PLAY

如果我发现我做对了,这在 Android 方面是令人沮丧的糟糕的开发。

4

2 回答 2

0

FLAG_KEY_MEDIA_STOP 永远不会因为 android 中的错误而显示停止,如下所述: 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 可能是“聪明的”并将其转换为切换。对此我不确定。

于 2014-04-08T07:14:36.950 回答
0

使用 FLAG_KEY_MEDIA_PLAY_PAUSE

oRemoteControlClient.setTransportControlFlags(RemoteControlClient.FLAG_KEY_MEDIA_PLAY_PAUSE);

并对 RemoteControlClient 撒谎;-)

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

oRemoteControlClient.setPlaybackState(RemoteControlClient.PLAYSTATE_BUFFERING);

干杯

于 2014-10-24T16:15:06.527 回答