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_nextskip_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();