Android Developers:处理音频输出的硬件

翻译 2013年12月05日 10:09:37

用户用很多选择,当它开始享受Android设备中的音频的时候。许多设备有一个内嵌扬声器,有线耳机的耳机插孔,和一些蓝牙连接和支持A2DP音频。 

 

检查什么设备正在被使用 

———————————————————————————————————————————————————————————————— 

你的应用程序的行为如何被哪个硬件输入被使用影响 

 

你能查询AudioManager类确定音频是否被正确的路由到设备的扬声器,有线耳机,或者连接的蓝牙设备。如下面的代码块所示 

if (isBluetoothA2dpOn()) { 
   // Adjust output for Bluetooth. 
} else if (isSpeakerphoneOn()) { 
   // Adjust output for Speakerphone. 
} else if (isWiredHeadsetOn()) { 
   // Adjust output for headsets 
} else {  
   // If audio plays and noone can hear it, is it still playing? 
} 

处理音频输出硬件的改变 

—————————————————————————————————————————————————————————————————
当一个耳机被断开,或者一个蓝牙设备失去连接,音频流自动路由到内置的扬声器。如果你听音乐在在能做到的最大的声音,那肯定是一个嘈杂的惊喜。 

 

幸运的是当这个种情况发生的时候,系统广播一个ACTION_AUDIO_BECOMING_NOISY意图。无论你什么时候播放音频,注册一个BroadcastReceiver来监听这个意图是一个好的实践。在播放音乐的情况下,用户通常期望播放被暂停—然而对于游戏你可能会选降低音量 

private class NoisyAudioStreamReceiver extends BroadcastReceiver { 
   @Override 
   public void onReceive(Context context, Intent intent) { 
       if (AudioManager.ACTION_AUDIO_BECOMING_NOISY.equals(intent.getAction())) { 
           // Pause the playback 
       } 
   } 
} 
 
private IntentFilter intentFilter = new IntentFilter(AudioManager.ACTION_AUDIO_BECOMING_NOISY); 
 
private void startPlayback() { 
   registerReceiver(myNoisyAudioStreamReceiver(), intentFilter); 
} 
 
private void stopPlayback() { 
   unregisterReceiver(myNoisyAudioStreamReceiver); 
} 

新技术,新未来!欢迎大家关注“1024工场”微信服务号,时刻关注我们的最新的技术讯息!(甭客气!尽情的扫描或者长按!)

Android官方开发文档Training系列课程中文版:管理音频播放之音频输出硬件的处理

原文地址:http://android.xsoftlab.net/training/managing-audio/audio-output.html当用户使用Android设备享受音频时,它有多重的可...

Android Developers:处理在电视上不支持的功能

电视远不同于其它Android设备:  它们不是移动电话。  处于习惯,用户使用很少它们观看媒体,或者没有交互。  任何在一定距离外和它们进行交互。      因为电...

Android媒体应用(七)--处理音频输出的变化

How to notice when the volume controls change, the headphones are unplugged, and some other apps wan...

Android Developers:控制你的应用程序音量和播放

好的用户体验是可以预测的。如果你的应用程序播放音频,你的用户能使用硬件或者软件音量控制,来控制他们设备,蓝牙耳机,或者听筒的音量是非常重要的。    相似的,在适当的地方可用,播放,停止,...

Android Developers:针对电视优化布局

当你的应用程序运行在一个电视上的时候,你应该假设用户坐在距离屏幕大约10英寸远的地方。这样的用户环境被作为10-foot UI被引用。为了给你的用户提供一个舒适和愉快的体验,你应该相应的设计和定制你的...

Android Developers:存储选项

Android 提供了多种方式去保存持久化应用数据。你所选择的解决法取决于你的特殊需求,例如数据对于你的程序是私有或者允许其他程序(和用户)访问,和你的数据需要多大的存储空间。    如下是你的...

Android Developers:传感器概述

大多数Android设备有内置的传感器,来测量运动,方向和各种环境条件。这些传感器能提供高精度和准确度的原始数据,如果你想监控设备三维运动或者位置,或者你想监控设备周围的环境变化,是非常有用的。例如,...

初识蓝牙——翻译自android developers API Guides

android平台包含对蓝牙网络的支持,即允许设备无线地与其他蓝牙设备交换数据。应用框架系统地 提供了对蓝牙设备的操作的api。这些APIs允许应用程序无线连接其他蓝牙设备,包括点对点和多点 的特...

Android Developers:在Eclipse的ADT中管理你的项目

Eclipse和ADT插件提供了GUI和向导来创建所有三种类型的项目(Android项目,库项目,和测试项目):  Android项目包含了所有的文件和资源,它们是构建一个项目成用于安装的apk...

Android N For Developers 笔记(二)

上篇介绍了多窗口模式与消息推送的相关内容。这篇继续往下note: Profile-guided JIT/AOT compilation     Android N系统在ART中加入了JIT(Just ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android Developers:处理音频输出的硬件
举报原因:
原因补充:

(最多只允许输入30个字)