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工场”微信服务号,时刻关注我们的最新的技术讯息!(甭客气!尽情的扫描或者长按!)

音频基础 DAI:Digital Audio Interfaces(音频设备的硬件接口 codec android)

1 PCM接口     针对不同的数字音频子系统,出现了几种微处理器或DSP与音频器件间用于数字转换的接口。最简单的音频接口是PCM(脉冲编码调制)接口,该接口由时钟脉冲(BCLK)、帧同步信号(FS...
  • zgyrelax
  • zgyrelax
  • 2013年12月16日 10:11
  • 1337

Android---处理音频输出的硬件

用户在使用Android设备来播放音频时,可以有很多选择。大多数设备都有内置的扬声器、有线的耳机、以及很多支持蓝牙连接和A2DP音频的设备。 检查使用的音频播放硬件 你的应用程序行为会受到...
  • yjcyjy
  • yjcyjy
  • 2014年01月27日 10:03
  • 340

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

原文地址:http://android.xsoftlab.net/training/managing-audio/audio-output.html当用户使用Android设备享受音频时,它有多重的可...
  • u011064099
  • u011064099
  • 2016年04月16日 15:52
  • 992

蓝牙的音频通路

如上图: 音频通路1:Audio->L2CAP->ACL->HCI->Baseband,a2dp音频走这种方式; 音频通路2:Audio->Voice->SCO/eSCO->HCI->Baseba...
  • zjli321
  • zjli321
  • 2016年09月22日 19:42
  • 1113

windows代码设置默认音频输出设备

1.windows音频输入设备与输出设备 1)windows中音频输入设备是指麦克风,如下图: 2)windows中音频输出设备是指扬声器,如下图: 2.有些时候,windows音频播放设...
  • wangkui1331
  • wangkui1331
  • 2017年11月24日 11:14
  • 395

Android音频焦点处理相关的方法

有这么一种场景:你打开qq音乐、优酷客户端、视频播放的时候。这个时候突然来电显示了,此时所有的MediaPlayer相关的服务或者响应都进入“休眠”状态。那么,这个功能是怎么实现的呢?看到这篇文章的时...
  • qq_32059827
  • qq_32059827
  • 2016年11月12日 15:04
  • 596

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

How to notice when the volume controls change, the headphones are unplugged, and some other apps wan...
  • worst_hacker
  • worst_hacker
  • 2017年11月15日 14:53
  • 150

Android音频输出切换

扬声器输出和耳机输出是音频系统最基本的音频输出通路,实际应用中用户可根据自己需要随意切换,具体表现是通过插入耳机选择耳机输出,拔出耳机选择默认的扬声器输出。 图5-13 耳机插拔检测 如图5-1...
  • lindonghai
  • lindonghai
  • 2013年08月20日 17:36
  • 5197

Android 音频 Framework层 音频输出 Java API

本文将介绍Android Framework 层 Java API音频输出. Java层API 在SDK 坏境下就可以使用,并不详细讲API。...
  • liuhaitao_share
  • liuhaitao_share
  • 2014年11月17日 18:30
  • 1948

WINDOWS下对音频的处理过程

WINDOWS下对音频的处理,大致可分为两部分,即音频的输入、输出,和ACM压缩处理。  一般情况下在WINDOWS下可以调用诸如sndPlaySound等API(MCI)来播放一个WAV文件,但那显...
  • vavale
  • vavale
  • 2005年03月01日 14:19
  • 1920
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android Developers:处理音频输出的硬件
举报原因:
原因补充:

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