最近在做APP的蓝牙相关功能,想记录一下蓝牙的有关知识。俗话说的好呀,“好记忆,不如烂笔头”,关键我好像记性还不太好,哈哈哈~~
蓝牙耳机连接之后,发现音频发声的还是终端,并没有转换到蓝牙耳机发声。网上搜索相关资料,发现是蓝牙耳机需要建立链路来播放音频。
简单介绍下蓝牙耳机的两种链路:A2DP(异步链路)及SCO(同步链路)。A2DP是一种单向的高品质音频数据传输链路,通常用于播放立体声音乐;而SCO则是一种双向的音频数据的传输链路,该链路只支持8K及16K单声道的音频数据,只能用于普通语音的传输。我试过建立SCO连接后播放音乐效果一般。SCO主要用来传输对时间要求很高的数据通信,可以录音也能播放。A2DP只能播放。我做的app是关于语音对讲的,设置SCO就可以了。
设置SCO的相关AudioManager接口
1.AudioManager简介
AudioManager 音频管理器,该类位于Android.Media包下。提供了音量控制与铃声模式相关操作。
//获得AudioManager对象实例
AudioManager am = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
2.具体接口
当蓝牙耳机连接后,将音频从终端转换到蓝牙耳机。蓝牙耳机断开后,将音频从蓝牙耳机转换到终端。
2.1打开SCO
/**
* 进入SCO模式
*/
public void enterScoMode(){
if(isBTConnected()){ //确保蓝牙连接
AudioManager mAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
mAudioManage

本文介绍了在APP蓝牙功能开发中遇到的音频转换问题,重点讲解了AudioManager如何设置蓝牙SCO连接,以实现音频从终端切换到蓝牙耳机。讨论了A2DP和SCO的区别,SCO主要用于语音对讲,适合时间敏感的数据通信。并列举了AudioManager的相关接口,如打开和关闭SCO,判断蓝牙SCO使用状态及耳机连接状态。
最低0.47元/天 解锁文章
4836





