【发布时间】:2018-05-23 06:21:52
【问题描述】:
在我的应用程序中录制在前台服务中的音频。我在连接蓝牙 SCO 后开始录制。它从 Android KitKat 到 Nougat 工作正常。但是当我尝试使用华为荣耀 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();
录音配置
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);
【问题讨论】:
-
如果我在最初的问题中回答“否”,那么它就会得到回答。你还想要什么?请在您的问题中澄清。
-
@tiagoperes,这是我在尝试从蓝牙耳机录制音频时遇到的问题。我已经编辑了我的问题,希望现在更清楚。谢谢。
标签: android bluetooth audio-recording android-8.0-oreo