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

Posted

技术标签:

【中文标题】使用蓝牙耳机在奥利奥录音问题【英文标题】:Audio recording issue in Oreo using Bluetooth headset 【发布时间】: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,这是我在尝试从蓝牙耳机录制音频时遇到的问题。我已经编辑了我的问题,希望现在更清楚。谢谢。 【参考方案1】:

Android 已更改通过蓝牙进行通信的数据长度。查看https://developer.android.com/about/versions/oreo/android-8.0-changes

要解决此问题,许多 OEM 建议您可能需要擦除设备缓存。 https://forums.oneplus.com/threads/bluetooth-audio-is-ruined-after-oreo-update.699589/

查看此快速修复指南https://www.theandroidsoul.com/fix-android-oreo-bluetooth-issues/

Android oreo 问题的 10 个常见修复。 https://www.gottabemobile.com/android-oreo-problems-fixes/

以安全模式重新启动。 https://support.google.com/android/answer/7665064?hl=en&ref_topic=6023296&visit_id=1-636636939996434821-3584672143&rd=1

如果这有帮助,请告诉我。

【讨论】:

感谢 Mohit Ajwani,第一个链接与 ScanRecord 长度有关。与录制无关 不可能告诉所有用户擦除缓存,因为它只是一个应用程序。尝试了许多设备,但总是从电话麦克风捕获音频。其他链接也基于用户的观点。所以它也没有帮助。 我为同样的@Sujith 道歉。我会看看能否找到更多相关信息并回复您。【参考方案2】:

我的华为荣耀9i也有这个问题。 我也发现从手机麦克风而不是蓝牙设备麦克风录音,但是当我打开一个音乐应用程序在后台播放音乐时,蓝牙麦克风工作。 所以我尝试在启动录音机时播放空白背景音乐,效果很好。

【讨论】:

以上是关于使用蓝牙耳机在奥利奥录音问题的主要内容,如果未能解决你的问题,请参考以下文章

无法为奥利奥通知启用闪烁灯并禁用通知声音

N从耳机录音

win10 插入16k采样的耳机无法播放和录音的问题定位

奥利奥和派的后台服务问题

画中画模式是不是支持奥利奥?

安卓的进化,用户的阵痛?从奥利奥与奥利粤说起