【Android开发Wiki】进阶篇音频管理(一):控制应用程序音量和播放.pdfVIP

【Android开发Wiki】进阶篇音频管理(一):控制应用程序音量和播放.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【Android开发Wiki】进阶篇音频管理(一):控制应用程序音量和播放

eoe 移动开发者社区 / 原文链接: /training/managing-audio/volume-playback.html 好的用户体验是可预知的。如果您的应用能够播放媒体文件,让用户使用硬件或者软件设备、 蓝牙耳机、手机来控制音量是非常重要的。 同样,在适当和有效的应用使用的音频流上、播放、停止、暂停、快进和快退媒体录放控制 按键需要执行各自的动作。 确认使用的是哪个音频流 创建可预知的音频体验第一步是理解应用使用的音频流。 Android 为播放音乐、警报、通知、电话铃声、系统声音、通话音量、双音多频音维护了单 独的音频流。首先允许用户控制每个单独流的音量。 大部分的流被系统消息限制,除非您的应用是警告铃声,大部分时候使用STREAM_MUSIC 流来 播放音频。 使用硬件音量键控制应用音频音量 默认情况下,按音量控制键会改变实际的音频流的音量。如果您的应用当前没有播放任何东 西、按音量键会调整电话音量。 如果你有个游戏或者音乐应用,尽管当前在歌曲连接处和当前游戏中没有声音,当用户按音 量键控制游戏或者音乐的音量也是可以的。或许你会用这个方法进行尝试、听取音量按键按 下和修改音频流音量。抵制这个强烈要求。Android 提供了便利的setVolumeControlStrea m()方法让音量按键直接处理你指定的音频流。 确定了应用使用的音频流之后,需要将音频流设置为音量流目标。在应用生命周期中应该尽 早调用--因为您只需要在activity 生命周期中调用一次,最典型的是onCreate()方法中调 用(在Activity 或控制媒体的Fragment).这保证了不管应用是否可见,音量控制功能仍 然像用户期待的。 1. setVolumeControlStream(AudioManager.STREAM_MUSIC); 复制代码 eoe 移动开发者社区 / 使用硬件播放键来控制音频播放 在许多手机,有线和无线耳机上都有媒体播放按键,如播放、暂停、停止、快进和快退.当用 户操作这些键时,系统会广播一个含有font color=greenACTION_MEDIA_BUTTON/font 动作的intent。 为了响应媒体按键,需要在manifest 里面注册一个BroadcastReceiver,用来监听如下所示 广播. 1. receiver android :name=.RemoteControlReceiver 2. intent-filter 3. action android:name=ent.action.MEDIA_BUTTON / 4. /intent-filter 5. /receiver 复制代码 在receiver 实现里面,需要获的触发广播的按键。Intent 在EXTRA_KEY_EVENT 里面包含了 按键,KeyEvent 类包含了一个KEYCODE_MEDIA_* 静态常量列表,每项代表了各种媒体按键, 如KEYCODE_MEDIA_PLAY_PAUSE (暂停)和KEYCODE_MEDIA_NEXT (下一个)。 接下来的代码显示了如何获取按下的媒体按键、以及相应的如果影响媒体按键. 1. public class RemoteControlReceiver extends BroadcastReceiver { 2. @Override 3. public void onReceive (Context context, Intent intent) { 4. if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction ())) { 5. KeyEvent event = (KeyEvent)intent.getParcelableExtra (Intent.EXTRA _KEY_EVENT); 6. if (KeyEvent.KEYCODE_MEDIA_PLAY == event.g

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档