首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MediaController方法adjustVolume和MediaSession

MediaController方法adjustVolume和MediaSession
EN

Stack Overflow用户
提问于 2015-01-19 22:58:44
回答 1查看 1.9K关注 0票数 2

我正在实现一个音频播放器,它使用MediaController和MediaSession类。我已经实现了传输控制(播放,暂停,倒带.)使用示例代码并实现MediaSession.Callback类来处理MediaController.TransportControls。还请注意,我是相对较新的Android开发。

我已经开始研究如何处理音频命令,并注意到MediaController已经定义了adjustVolume()和setVolumeTo()方法。

我的问题是:为什么没有音量命令(可能还有其他音频命令,比如BTBF,EQ设置.)以类似于传输命令的方式处理?换句话说,为什么没有一个MediaController.AudioControls类可以由MediaSession回调来处理呢?

我看到有一个MediaController.PlaybackInfo类,它提供有关音频的各种信息。在sendCommand类中还有一个MediaController ()方法,它由MediaSession.Callback中的onCommand()回调处理。类似地,在MediaController.TransportControls中定义了MediaController.TransportControls()方法,该方法由MediaSession.Callback中的onCustomAction()处理。我很想使用这些命令来调整音频播放的各个方面,但是我想确保我没有忽略那些实现这一点的类。看起来MediaSession类可能有额外的方法(额外的嵌套类?)要以类似于传输控件的方式处理音频控件,请执行以下操作。提前谢谢。吉姆

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-20 22:50:09

MediaController公开的API或控件是与来自锁定屏幕、通知或耳机媒体按钮的远程控制有关的最常见的情况。

  1. MediaController#sendCommand(String命令,Bundle args,ResultReceiver cb)是为应用程序UI和管理MediaSession的服务之间的特定自定义命令设计的。这非常适合于您心目中的w.r.tEQ设置中的特定用途。
  2. 另一方面,MediaController.TransportControls#sendCustomAction(...)适用于其他应用程序可以显示的任何PlaybackState.CustomAction。CustomAction的一个例子就是将一个项目标记为一个最喜欢的项目。(您可以看到这是如何在MusicService示例中的MediaBrowserService类中实现的)

还请注意,可以在会话上设置一个VolumeProvider类来接收有关更改/ set的回调。如果没有此操作,则会话将处理卷的更新。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28034982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档