3

在 Android Auto Media 应用程序中播放音频时,如何控制何时在“媒体控制卡”中显示停止按钮和暂停按钮?

我在一个PlaybackState对象中设置动作,然后在我的MediaSession对象中设置它(这是一个非常简短的例子):

PlaybackState.Builder playbackState = new PlaybackState.Builder();
playbackState.setActions(PlaybackState.ACTION_PAUSE).build();
mMediaSession.setPlaybackState(playbackState);

我意识到动作值是各种动作组合的位掩码,但无论我输入什么,setActions我都会得到一个停止按钮。

更新:这似乎是谷歌媒体浏览器服务模拟器的一个错误。一种解决方法是在再次运行应用程序之前通过选择设置 -> 应用程序 -> 媒体浏览器服务模拟器 -> 清除数据来清除应用程序的数据。我正在使用模拟器的 6.5.81 (1593596-030) 版本。我在物理 Nexus 7 上运行模拟器时也遇到了这个错误。

重现步骤:

  1. 运行 Google 的示例应用 Universal Music Player,点击 PLAY,会出现一个 PAUSE 按钮,正如预期的那样,因为actions |= PlaybackState.ACTION_PAUSE 设置在MusicService.getAvailableActions().
  2. 将行更改为actions |= PlaybackState.ACTION_STOP,运行应用程序,点击 PLAY,然后按预期出现一个 STOP 按钮。
  3. 将值改回actions |= PlaybackState.ACTION_PAUSE,运行应用程序,点击 PLAY,然后出现一个 STOP 按钮,这是一个意外行为。
  4. 您可以通过调试确认actions包含 PAUSE 而不是 STOP 的位掩码值。

注意:虽然显示了方形 STOP 按钮,但该按钮的行为是 PAUSE。

解决方法:

  1. 清除应用数据:设置 -> 应用程序 -> 媒体浏览器服务模拟器 -> 清除数据
  2. 在模拟器中再次运行 Universal Music Player 应用程序,点击 PLAY,PAUSE 按钮按预期出现。

更新#2:似乎一旦出现 STOP 按钮,PAUSE 按钮就再也不会出现,而且这种解决方法没有用。

4

0 回答 0