Android中实现蓝牙录放音
来源:互联网 发布:js获取svg元素属性值 编辑:程序博客网 时间:2024/05/17 12:06
环境:Android4.2.2
基层应用:SoundRecorder
蓝牙一般有两种语音相关的模式是A2DP和SCO,前者是高质量音乐播放(俗称:只进不出),后者是语音通话(俗称:有进有出)。要实现语音从蓝牙进,那么它一字得处于SCO模式下,也是通话模式下。另外是一个问题是如果使用MediaPlayer播放音乐,会被重新切回到A2DP模式下,那么就会模式错乱。所以使用AudioPlayer是一个不错的选择。总体的工作有两个调整模式,使用AudioPlayer播放音频。就可以实现同时从蓝牙音频进出了。
输出到蓝牙耳机:
AudioManager mAm = ( AudioManager ) getSystemService(Context.AUDIO_SERVICE);
mAm.setMode(AudioManager.MODE_IN_CALL);
mAm.setBluetoothScoOn(true);
mAm.startBluetoothSco();
从蓝牙耳机输入
再次整理需求:
1.入口:蓝牙连接状态android HEADSET onServiceConnected
状态改变(只更改 配置文件 不会发送状态改变广播) ->
根据蓝牙名字或者MAC地址以及是否支持sco需要处理
->
连接上:开启录放
断开:关闭录放
只监听SCO:
AndroidManifest.xml
android.bluetooth.headset.profile.action.CONNECTION_STATE_CHANGED
BTBroadcastReceiver.java
private int mBluetoothHeadsetState = 0;
@Override
public void onReceive(Context context, Intent intent) {
mContext = context;
Log.e(LOG_TAG, "BT connect changed!");
if(intent.getAction().equals(BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED)) {
mBluetoothHeadsetState = intent.getIntExtra(BluetoothHeadset.EXTRA_STATE,
BluetoothHeadset.STATE_DISCONNECTED);
Log.d(LOG_TAG, "==> new state: " + mBluetoothHeadsetState);
updateBluetoothIndication(); // Also update any visible UI if necessary
}
}
public void updateBluetoothIndication() {
if (mBluetoothHeadsetState == BluetoothProfile.STATE_CONNECTED) {
Log.i(LOG_TAG, "BluetoothProfile.STATE_CONNECTED");
} else if (mBluetoothHeadsetState == BluetoothProfile.STATE_DISCONNECTING) {
Log.i(LOG_TAG, "BluetoothProfile.STATE_DISCONNECTING");
} else {
Log.i(LOG_TAG, "BluetoothProfile.OTHER");
}
}
from packages/apps/Phone/src/com/android/phone/PhoneGlobals.java:1449
总合来说就是:切换蓝牙模式+Android边录边播应用 =BTScoPlayback。
- Android中实现蓝牙录放音
- Android中实现蓝牙录放音
- Linux实现音频录放
- Linux实现音频录放
- windows下的录放音
- QT---高品质录放音
- Android中蓝牙通信的实现
- S3C2440 IIS操作 uda134x录放音
- Android 蓝牙连接实现
- Android 蓝牙客户端实现
- Android 蓝牙服务端实现
- Android中使用蓝牙
- Android中蓝牙介绍
- Android中蓝牙开发
- 在android中使用PrinterShare实现蓝牙打印功能
- android中使用PrinterShare实现蓝牙打印功能
- Android中如何实现蓝牙的配对与连接
- Android蓝牙基础(3)-实现蓝牙聊天
- libcrypto.so.10: cannot open shared object file: No such file or directory
- Android:自定义ProgressBar
- HtmlTextWriter学习笔记
- hash入门题
- C++Primer学习笔记《5》
- Android中实现蓝牙录放音
- 马云清华经管毕业典礼演讲:世界正在从IT走向DT
- Qt编码风格
- (驱动)简单定时器编写练习(2014/8/23)
- 取消Linux下VIM和gedit的自动备份功能
- 互联网时代的四个关键词
- 一个很难明白的题目
- nginx: [alert] mmap(MAP_ANON|MAP_SHARED, 536870912) failed (12: Cannot allocate memory)解决方法
- 自实现json解析库