0

我正在使用这样的 exo-player 和媒体会话扩展。

mediaSessionCompat = new MediaSessionCompat(activity, activity.getPackageName());
MediaSessionConnector sessionConnector = new MediaSessionConnector(mediaSessionCompat);
sessionConnector.setPlayer(exoPlayer);
mediaSessionCompat.setActive(true);

当我进入 PIP 窗口时,它会显示 3 个控制按钮(播放/暂停、跳到下一个、跳到上一个)。我只想要播放/暂停按钮,并想删除跳到下一个和跳到上一个按钮。

我该怎么做?

4

1 回答 1

0

虽然我不太熟悉 PIP 显示支持的操作的方式,但您可能希望准确查看 MediaSession 报告的操作。

对于某些背景,我提供了一个片段,用于在我的 MediaSession codelab 中声明支持的操作

在您的情况下, MediaSessionConnector 似乎已经发现有一个播放队列。您可能想要查看您的队列内容是如何被提供到 ExoPlayer 的媒体源中的。

有两种方法可以验证 MediaSession 仅包含正确的操作:

  • Media Controller Test是一款移动应用程序,可让您查看报告了哪些操作并在漂亮的 UI 中对其进行测试。
  • 您可以改为检查以下输出adb shell dumpsys media_session: 请注意,在 YouTube 的此示例中,播放队列包含 5 个项目,因此动作 ACTION_SKIP_TO_NEXT 包含在按位掩码中: 有关这些动作常量的详细信息,我建议阅读有关动作的更多信息在 PlaybackState 中声明检查 adb 输出
    PlaybackState 动作分析

一旦您确认 MediaSession 正在报告正确的操作,PIP 显示不应再显示跳过下一个和上一个。

于 2021-02-09T10:48:50.633 回答