Проблемы с записью звука в Oreo при использовании гарнитуры Bluetooth - PullRequest
0 голосов
/ 23 мая 2018

В моем приложении аудио записано в сервисе Foreground.Я начинаю запись после подключения Bluetooth SCO.Работает отлично от Android KitKat до Nougat.Но когда я попробовал с Huawei Honor 8 (Android Oreo), звук записывается с микрофона телефона вместо микрофона гарнитуры Bluetooth.Когда я попробовал на Google pixel 2, запись не работает вообще.

Запуск Bluetooth 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);

Ответы [ 2 ]

0 голосов
/ 03 июня 2019

У меня такая проблема есть и в Huawei Honor 9i.Я также нашел запись с микрофона телефона вместо микрофона устройства Bluetooth, но когда я открыл музыкальное приложение, воспроизводившее музыку в фоновом режиме, микрофон Bluetooth работал.Поэтому, когда я запускаю рекордер, я пытаюсь воспроизвести чистую фоновую музыку, она работает хорошо.

0 голосов
/ 04 июня 2018

Android изменил длину данных для связи через Bluetooth.Проверьте 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/

10 распространенных исправлений для проблем с Android и oreo.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

Дайте мне знать, если это поможет.

...