蓝牙耳机音频流并同时录制

时间:2019-03-10 12:09:56

标签: android bluetooth wireless headset

我正在创建一个使用蓝牙耳机同时记录和流式传输的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中流音频:

<audio controls id="myAudio">
    <source src="001.mp3" type="audio/mpeg">
</audio>

运行audioManager.stopBluetoothSco()代码时,音频将传输到耳机。 但是audioManager.startBluetoothSco()代码运行,音频流传输到设备扬声器。

是否可以将音频流传输到蓝牙耳机并与蓝牙耳机同时录制?

感谢阅读。

0 个答案:

没有答案