首页 文章

奥利奥使用蓝牙耳机录音的问题

提问于
浏览
-3

在我的应用程序音频记录在Foreground服务中 . 连接蓝牙SCO后我开始录制 . 它的工作正常Android KitKat到Nougat . 但是当我尝试使用华为Honor 8(Android Oreo)时,音频是通过手机麦克风而不是蓝牙耳机麦克风录制的 . 当我尝试使用Google pixel 2时,录制功能根本无法使用 .

启动蓝牙SCO

am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
registerReceiver(new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        int state = intent.getIntExtra(AudioManager.EXTRA_SCO_AUDIO_STATE, -1);
        Log.d(TAG, "Audio SCO state: " + state);
        if (AudioManager.SCO_AUDIO_STATE_CONNECTED == state) { 
            am.setBluetoothScoOn(true);
            unregisterReceiver(this);
            startRecord();
        }
    }
}, new IntentFilter(AudioManager.ACTION_SCO_AUDIO_STATE_CHANGED));
am.startBluetoothSco();

AudioRecord配置

final int RECORDER_SAMPLERATE = 8000;
final int RECORDER_CHANNELS = AudioFormat.CHANNEL_IN_MONO;
final int RECORDER_AUDIO_ENCODING = AudioFormat.ENCODING_PCM_16BIT;

int bufferSize = AudioRecord.getMinBufferSize(RECORDER_SAMPLERATE,
        RECORDER_CHANNELS, RECORDER_AUDIO_ENCODING);
recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,
        RECORDER_SAMPLERATE, RECORDER_CHANNELS, RECORDER_AUDIO_ENCODING, bufferSize);

1 回答

相关问题