2

我目前正在尝试为音频应用程序开发一个小部件。该小部件包括跳到上一个、播放和跳到下一个按钮,如下图所示。

在此处输入图像描述

我已经遵循了这个推荐的方法,并且play_pause 按钮​​可以正常工作,但目前只有在播放开始的情况下。

要开始播放,用户必须 1) 打开应用程序。2) 选择一个播客。3) 选择要播放的剧集。4) 等待缓冲完成

只需将正确的 PendingIntent 设置为 play_pause 按钮​​即可。因此,当单击此按钮时,MediaSession.Callback.onPlay()将调用我的方法。

不幸的是,skip_to_nextskip_to_previous按钮并非如此。MediaSession.Callback.onSkipToNext()我想在单击要调用的 skip_to_next 小部件按钮时。

这是我的AppWidgetProvider类和MediaBrowserService

4

1 回答 1

2

我不确定这是否是完整的解决方案,但似乎没有注册上一个和下一个按钮?

我之前并没有真正使用过MediaButtonReceiver,所以我猜,但我现在添加ACTION_SKIP_TO_PREVIOUS到代码确实接收getPlaybackStateFromPlayerStatePlayBackUtils上一个事件并且实际上也更改为上一个轨道。

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();
于 2018-07-17T16:40:13.820 回答