- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- DIN 9830 冲压件切割毛边高度.pdf VIP
- 2024-2025学年广东省深圳市红岭中学九年级上学期开学考数学试题及答案.pdf VIP
- 2020秋部编人教版语文二年级上册全册课件.pptx VIP
- 古建筑传统瓦工(砧刻工砌花街工泥塑工古建瓦工)施工机械用电管理详细措施.docx VIP
- (高清版)DB51∕T 2997-2023 四川省水文数据通信传输指南 .pdf VIP
- 二升三年级数学暑假作业完整版25天.pdf VIP
- 统编《世界历史》九年级上册教材分析与建议.doc VIP
- 沪教牛津版八年级英语上册词汇表.docx VIP
- 2025年全国翻译专业资格(水平)考试西班牙语二级口译试卷.docx VIP
- GB∕T 5796.1-2022 梯形螺纹 第1部分:牙型.pdf
文档评论(0)