3

안드로이드 어플리케이션의 녹음 된 마이크 사운드를 분석하고 싶습니다.안드로이드에서 AudioTrack 분석 (비주얼 라이저의 대안)

불행히도 Visualizer은 현재 재생중인 AudioTrack에서만 작동합니다. 현재 AudioRecord으로 녹음 중이며 비주얼 라이저가 듣고있는 AudioTrack에 데이터를 복사합니다. 그러나이 아키텍처는 끔찍한 재생 기록 루프를 야기합니다.

한 가지 해결 방법은 녹음하는 동안 AudioTrack의 볼륨을 가능한 한 가장 낮은 레벨로 낮추는 것이지만, 이는 좋은 해결책으로는 들리지 않습니다.

녹음 된 트랙에서 FFT 데이터를 캡처하는 방법을 제공하는 Visualizer 클래스에 대한 대안이 있습니까?

+0

'AudioRecord' 객체의 오디오 세션 ID를'Visualizer '에 전달하면 어떻게 될까요? 'Visualiser mVisualizer = new Visualizer (mAudioRecord.getAudioSessionId()); ' –

+0

'AudioRecord'는'getAudioSessionId()'와 같은 메소드를 제공하지 않습니다. 임시 해결 방법의 또 다른 문제점은 장치의 볼륨을 낮추면 audioTrack이 음소거되어 더 이상 분석이 진행되지 않는다는 것입니다. –

+0

docs (http://developer.android.com/reference/android/media/AudioRecord.html#getAudioSessionId())에 따르면 API 레벨 16 이상에서만 사용할 수있는 getAudioSessionId()가 있습니다. –

답변

0

추가. "잘못된 스레드에서 만든 검색 한 후 -22

: AudioFlinger 효과, 상태를 만들 수 없습니다 : 그것은 잘못된 스레드 유형에 3 AudioEffect 세트를 생성

AudioFlinger createEffect_l() 효과를 시각화 (플래그 00000008)가() 말한다 입력 신호를 시각화하는 데 문제가 있음을 발견했습니다. 나는 지금까지 어려움을 겪었지만 효과가 없었다.