Android媒体应用(七)--处理音频输出的变化
来源:互联网 发布:mac ae2017百度云盘 编辑:程序博客网 时间:2024/06/05 10:01
原文地址:https://developer.android.google.cn/guide/topics/media-apps/volume-and-earphones.html
除了响应您的用户界面控件和媒体按钮,音频应用程序还应该对可能影响其声音的其他Android事件做出反应。
本页介绍如何处理这些情况:
- 用户调整硬件音量控制时更改音量
- 如果耳机在使用中断开,请停止播放
尊重音量控制
当用户在游戏或音乐应用程序中按下音量键时,音量应该改变,即使播放器在歌曲之间暂停或当前游戏位置没有音乐。Android使用单独的音频流播放音乐,闹钟,通知,来电铃声,系统声音,通话音量和DTMF铃声。这允许用户独立地控制每个流的音量。
默认情况下,按音量控制可以修改活动音频流的音量。如果您的应用程序当前没有播放任何内容,请按音量键调整铃声音量。
除非您的应用程序是更换闹钟,否则您可能使用STREAM_MUSIC流播放音频。
为了确保音量控制调整正确的流,你应该调用setTransactionStream()传入AudioManager.STREAM_MUSIC。
setVolumeControlStream(AudioManager.STREAM_MUSIC);
在应用程序的生命周期中尽早调用此调用,通常来自控制媒体的活动或片段的onCreate()方法。只要目标活动或片段可见,就会将音量控件连接到STREAM_MUSIC。
不要吵闹
当用户从Android设备上欣赏音频时,用户有很多选择。大多数设备都具有内置扬声器,用于有线耳机的耳机插孔,还有许多设备具有蓝牙连接并支持A2DP音频。拔下耳机或断开蓝牙设备时,音频流会自动重新路由至内置扬声器。如果你听大音量的音乐,这可能是一个嘈杂的惊喜。
幸运的是,当这种情况发生时,系统广播一个ACTION_AUDIO_BECOMING_NOISY意图。无论何时播放音频,都应该创建一个BroadcastReceiver来监听这个意图。在音乐播放器的情况下,用户通常期望播放暂停。对于游戏应用程序,您可以选择显着降低音量。你的接收器应该是这样的:
private class BecomingNoisyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (AudioManager.ACTION_AUDIO_BECOMING_NOISY.equals(intent.getAction())) { // Pause the playback } }}
开始播放时注册接收器,停止时取消注册。 如果您按照本指南中的描述设计应用程序,则这些调用应显示在onPlay()和onStop()媒体会话回调中。
private IntentFilter intentFilter = new IntentFilter(AudioManager.ACTION_AUDIO_BECOMING_NOISY);private BecomingNoisyReceiver myNoisyAudioStreamReceiver = new BecomingNoisyReceiver();MediaSessionCompat.Callback callback = newMediaSessionCompat.Callback() { @Override public void onPlay() { registerReceiver(myNoisyAudioStreamReceiver, intentFilter); } @Override public void onStop() { unregisterReceiver(myNoisyAudioStreamReceiver); }}
阅读全文
0 0
- Android媒体应用(七)--处理音频输出的变化
- Android媒体应用(四)--构建音频应用程序
- Android---处理音频输出的硬件
- Android Developers:处理音频输出的硬件
- Android---处理音频输出的硬件
- 【Android应用开发技术:媒体开发】音频
- Android 绘制变化的音频
- 管理媒体播放(3)处理媒体硬件输出
- Android媒体应用(一)
- Android音频子系统,音量的调节控制(七)
- Android 媒体 V-音频捕捉
- android开发笔记之多媒体—播放音频(音乐)
- Android官方开发文档Training系列课程中文版:管理音频播放之音频输出硬件的处理
- Android媒体应用(三)--使用媒体会话
- Android媒体应用(六)--响应媒体按钮
- android自带的媒体数据库应用
- 收集的20个媒体转换软件|视频处理|音频处理(有图哦)
- Android媒体应用(二)--综述
- LoRa Server Project 01 概览
- NFS挂载错误解决
- 使用 Visual VM工具
- 今年黑科技趋势最具的五个看点
- DrawerLayout使用
- Android媒体应用(七)--处理音频输出的变化
- 几种距离计算公式在数据挖掘中的应用场景分析
- Merge into 介绍
- Ubuntu 14.04中设置关闭按钮放到标题栏右边的方法
- 页面静态化
- 使用多级分组报表展现分类数据
- java中使用JDBC连接mysql数据库查询数据
- 简单介绍一下Vue2.0
- 关于Mysql的死锁问题(未完待续)