我正在创建一个使用蓝牙耳机同时记录和流式传输的Android应用。
在使用蓝牙耳机麦克风录制时流式传输音频时,它会流式传输到蓝牙耳机以外的设备扬声器。 (网络视图中的音频流)
我想在使用蓝牙耳机录音时通过蓝牙耳机流式传输音频。
我的示例代码如下所示。
连接蓝牙耳机:
private BroadcastReceiver mBluetoothScoReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
int state = intent.getIntExtra(AudioManager.EXTRA_SCO_AUDIO_STATE, -1);
Log.i(LOG_TAG, "ANDROID Audio SCO state: " + state);
if (AudioManager.SCO_AUDIO_STATE_CONNECTED == state) {
Log.i(LOG_TAG, "bluetooth connected.");
}
}
};
public void setBluetoothMic(Context context){
IntentFilter intentFilter = new IntentFilter(AudioManager.ACTION_SCO_AUDIO_STATE_UPDATED);
context.registerReceiver(mBluetoothScoReceiver, intentFilter);
audioManager = (AudioManager) context.getSystemService(context.AUDIO_SERVICE);
audioManager.setMode(audioManager.MODE_NORMAL);
audioManager.setBluetoothScoOn(true);
audioManager.startBluetoothSco();
audioManager.setSpeakerphoneOn(false);
}
录音:
AudioRecord record =
new AudioRecord(
MediaRecorder.AudioSource.MIC,
SAMPLE_RATE,
AudioFormat.CHANNEL_IN_MONO,
AudioFormat.ENCODING_PCM_16BIT,
bufferSize);
record.startRecording();
在webview中流音频:
运行audioManager.stopBluetoothSco()代码时,音频将传输到耳机。 但是audioManager.startBluetoothSco()代码运行,音频流传输到设备扬声器。
是否可以将音频流传输到蓝牙耳机并与蓝牙耳机同时录制?
谢谢阅读。