【问题标题】:Android 4.x RemoteControlClient.setTransportControlFlags() not working?Android 4.x RemoteControlClient.setTransportControlFlags() 不工作?
【发布时间】:2012-04-01 01:50:52
【问题描述】:

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

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

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

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

更糟糕的是,当您按下停止/播放按钮时,您只会收到KEYCODE_MEDIA_PLAY_PAUSE,而您应该收到KEYCODE_MEDIA_STOPKEYCODE_MEDIA_PLAY

如果我发现我做的正确,这会令人沮丧地在 Android 方面开发不佳。

【问题讨论】:

  • 我注意到上一个按钮存在同样的问题,但似乎没有办法解决。对于 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。
  • 查看code.google.com/p/android/issues/detail?id=29920 了解错误的媒体按钮。

标签: android remote-control android-remoteview


【解决方案1】:

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 可能是“聪明的”并将其转换为切换。 我不确定。

【讨论】:

    【解决方案2】:

    使用 FLAG_KEY_MEDIA_PLAY_PAUSE

    oRemoteControlClient.setTransportControlFlags(RemoteControlClient.FLAG_KEY_MEDIA_PLAY_PAUSE);

    对 RemoteControlClient 撒谎 ;-)

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

    oRemoteControlClient.setPlaybackState(RemoteControlClient.PLAYSTATE_BUFFERING);

    干杯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-21
      • 2020-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多