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_音频处理芯片的PPT

  • 2017-08-16 11:40
  • 693KB
  • 下载

音频设备的3种硬件接口--PCM,IIS和AC97

音频设备的3种硬件接口--PCM,IIS和AC97   一些Audio Codec中总是出现PCM字样,一直以为它是一种音频数据编码格式,但是越看Spec觉得越不像,赶紧到网上查了下,发现它是一种...

音频的三种硬件接口

音频的三种硬件接口: 分别是PCM(脉冲编码调制),IIS和AC97 PCM脉冲编码调制是最简单的音频接口,也是最容易实现的。=该接口主要包括时钟脉冲(BCLK),帧同步信号(FS),以及数据接收...

VR系列——Oculus Audio sdk文档:二、Oculus音频SDK指南(6~8)——平台笔记,中间设备支持以及Oculus硬件功能

Oculus Audio SDK目前支持Windows7+,安卓(Gear VR),MAC OS X,和Linux。这部分涵盖了可能出现的问题在不同的版本中。   The Oculus Audio ...

Linux内核工程导论——硬件:音频子系统

音频子系统 音频框架 音频设备是非常常用,但又最容易在linux下出现问题的设备之一。音频设备种类和芯片繁多,所以必须提供足够多的驱动,并且有内核有足够的驱动与设备的匹配能力。也正是由于多样性,内...

Android Developers:存储选项

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

Android Developers:传感器概述

大多数Android设备有内置的传感器,来测量运动,方向和各种环境条件。这些传感器能提供高精度和准确度的原始数据,如果你想监控设备三维运动或者位置,或者你想监控设备周围的环境变化,是非常有用的。例如,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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