Запись голоса через гарнитуру Bluetooth при звонке - PullRequest
0 голосов
/ 31 августа 2018

Как мы знаем, мы могли бы записывать голос через гарнитуру Bluetooth, мы должны использовать ссылку SCO, но при поступлении вызова система теряет связь SCO, поэтому я не могу получить данные PCM по ссылке SCO. как это решить. Я бы попробовал этот код, но он не работает.

    AudioManager am = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
    am.setMode(AudioManager.MODE_IN_COMMUNICATION);
    am.startBluetoothSco();
    am.setBluetoothScoOn(true);

когда звонит телефон, могу ли я записывать из SCO?

1 Ответ

0 голосов
/ 31 августа 2018

Android меняет маршрутизацию звука в зависимости от своих потребностей, и когда телефон звонит (и / или когда на звонок отвечают), звук перенаправляется на целевое устройство (наушник, наушники, BT и т. Д.). Невозможно запустить один объект записи и получить все данные (данные до, текущий и будущий голос во время связи), но вам необходимо отслеживать состояние голосового вызова (или текущее состояние маршрутизации звука) и закрыть предыдущий объект записи, а затем создайте новый, используя другие настройки.

Если вас интересует ТОЛЬКО ваш голос во время звонка телефона, вы можете сделать это, записав эти данные, используя UPLINK в качестве объекта AudioSource of Recording.

...