2017-12-19 7 views
2

그래서 블루투스 헤드셋에서 웨이브 파일을 녹음하려고합니다. Nougat에서 블루투스 헤드셋 오디오 녹음하기

내가

recorder = AudioRecord(MediaRecorder.AudioSource.VOICE_COMMUNICATION, 
       8000, 
       AudioFormat.CHANNEL_IN_MONO, 
       AudioFormat.ENCODING_PCM_16BIT, 
       BUFFER_SIZE) 

를 기록하는 데 사용 및 녹화를 시작하기 전에 내가 시작하고있어 안드로이드 6 녹음 할 때, 그것은 경이를 작동 헤드셋 오디오 통신이

var am = getSystemService(Context.AUDIO_SERVICE) as AudioManager 
am!!.mode = 0 
am!!.isBluetoothScoOn = true 
am!!.startBluetoothSco() 
am!!.mode = AudioManager.MODE_IN_COMMUNICATION 

음을 사용하는 것입니다 (marshmallow)이지만 안드로이드 7 (nougat)에서 녹음 할 때 블루투스 헤드셋이 아닌 내 폰의 마이크에서 녹음을 계속합니다. 설명서를 보면 버전 간 블루투스 SCO의 변경 사항을 찾지 못했습니다. 그래서 .... 나는 무엇을 놓치고 있습니까?

답변

0

Bluetooth 음성 통화를 녹음 할 때 비슷한 문제가있었습니다. 문제는 응용 프로그램이 나가는 호출의 전화 통신 브로드 캐스트를 수신하자마자 녹음을 시작했지만 호출이 시작된 후 Bluetooth 인터페이스가 몇 밀리 초만 연결된다는 것입니다. 우리는 결국 기록을 시작하기 전에 간단한 절전 모드를 적용하여이 문제를 해결했으며 이로 인해 문제가 해결되었습니다.

+0

우리는 응용 프로그램의 시작 부분에 telfone 마이크에서 기록한 문제가있었습니다. 우리는이 문제를 수신기 registerReceiver (mBluetoothScoReceiver, IntentFilter (AudioManager.ACTION_SCO_AUDIO_STATE_UPDATED))를 사용하여 해결했으며 오디오 녹음 상태를 시작하는 것은 AudioManager.SCO_AUDIO_STATE_CONNECTED였습니다. 그러나 우리는 누가 (nougat)에 소켓 연결 만 할 수 있지만 오디오 연결은 할 수 없으므로 문제를 해결하는 데 어려움을 겪습니다. –