Android 小部件:skip_to_next 和 skip_to_previous 按钮不起作用
Android Widget: skip_to_next and skip_to_previous buttons don't work
我目前正在尝试为音频应用程序开发一个小部件。该小部件包括一个跳到上一个、一个播放和一个跳到下一个按钮,如下图所示。
我已经按照这个 和 play_pause 按钮正常工作,但目前只有在播放开始时才有效。
To start the playback the user must 1) Open the app. 2) Choose a
podcast. 3) Choose an episode to play. 4) Wait for the buffering to
complete
只需将正确的 PendingIntent 设置到 play_pause 按钮即可。所以当这个按钮被点击时,我的 MediaSession.Callback.onPlay()
方法被调用。
不幸的是,skip_to_next 和 skip_to_previous 按钮不是这种情况。我希望在单击 skip_to_next 小部件按钮时调用 MediaSession.Callback.onSkipToNext()
。
这也是我的AppWidgetProvider class and the MediaBrowserService。
我不确定这是否是完整的解决方案,但似乎没有注册上一个和下一个按钮?
我之前没有真正使用过 MediaButtonReceiver
所以我猜,但是我在 PlayBackUtils
中将 ACTION_SKIP_TO_PREVIOUS
添加到 getPlaybackStateFromPlayerState
现在代码确实收到了上一个事件,实际上也更改为上一个曲目。
case STARTED:
return stateBuilder
.setState(PlaybackStateCompat.STATE_PLAYING,
currentPosition, playbackSpeed)
.setActions(PlaybackStateCompat.ACTION_PAUSE |
PlaybackStateCompat.ACTION_PLAY_PAUSE |
PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS |
PlaybackStateCompat.ACTION_STOP |
PlaybackStateCompat.ACTION_SEEK_TO |
PlaybackStateCompat.ACTION_PLAY)
.build();
我目前正在尝试为音频应用程序开发一个小部件。该小部件包括一个跳到上一个、一个播放和一个跳到下一个按钮,如下图所示。
我已经按照这个
To start the playback the user must 1) Open the app. 2) Choose a podcast. 3) Choose an episode to play. 4) Wait for the buffering to complete
只需将正确的 PendingIntent 设置到 play_pause 按钮即可。所以当这个按钮被点击时,我的 MediaSession.Callback.onPlay()
方法被调用。
不幸的是,skip_to_next 和 skip_to_previous 按钮不是这种情况。我希望在单击 skip_to_next 小部件按钮时调用 MediaSession.Callback.onSkipToNext()
。
这也是我的AppWidgetProvider class and the MediaBrowserService。
我不确定这是否是完整的解决方案,但似乎没有注册上一个和下一个按钮?
我之前没有真正使用过 MediaButtonReceiver
所以我猜,但是我在 PlayBackUtils
中将 ACTION_SKIP_TO_PREVIOUS
添加到 getPlaybackStateFromPlayerState
现在代码确实收到了上一个事件,实际上也更改为上一个曲目。
case STARTED:
return stateBuilder
.setState(PlaybackStateCompat.STATE_PLAYING,
currentPosition, playbackSpeed)
.setActions(PlaybackStateCompat.ACTION_PAUSE |
PlaybackStateCompat.ACTION_PLAY_PAUSE |
PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS |
PlaybackStateCompat.ACTION_STOP |
PlaybackStateCompat.ACTION_SEEK_TO |
PlaybackStateCompat.ACTION_PLAY)
.build();