Also, ich versuche, eine Wave-Datei von und Bluetooth-Headset aufzunehmen.Aufnahme von Bluetooth-Headset-Audio in Nougat
Dies ist, was ich
recorder = AudioRecord(MediaRecorder.AudioSource.VOICE_COMMUNICATION,
8000,
AudioFormat.CHANNEL_IN_MONO,
AudioFormat.ENCODING_PCM_16BIT,
BUFFER_SIZE)
aufnehmen Gebrauch und vor dem Aufnahmestart Ich fange an und Audio-Kommunikation mit meinem Headset
var am = getSystemService(Context.AUDIO_SERVICE) as AudioManager
am!!.mode = 0
am!!.isBluetoothScoOn = true
am!!.startBluetoothSco()
am!!.mode = AudioManager.MODE_IN_COMMUNICATION
Nun verwenden, es wirkt Wunder, wenn in Android Aufnahme 6 (Marshmallow), aber wenn ich in Android 7 (Nougat) aufnehme, nimmt es weiterhin vom Mikrofon meines Telefons und nicht vom Bluetooth-Headset auf. Ich habe in der Dokumentation nichts über Änderungen in Bluetooth SCO zwischen Versionen gefunden. Also .... was vermisse ich?
Wir hatten das Problem, dass wir am Anfang unserer Anwendung vom Telfone-Mikrofon aufgenommen haben. Wir lösten dieses Problem mit einem Empfänger RegisterReceiver (mBluetoothScoReceiver, IntentFilter (AudioManager.ACTION_SCO_AUDIO_STATE_UPDATED)), und starten Sie einfach die Aufnahme, wenn Audio-Status war AudioManager.SCO_AUDIO_STATE_CONNECTED. Es wird jedoch nicht angezeigt, um das Problem zu lösen, da wir nur eine Socket-Verbindung in Nougat, aber keine Audioverbindung herstellen können. –