마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

AudioRecord 녹음 실시간 파형 질문드립니다

0 추천
안녕하세요(내용이 깁니다 ㅠㅠ.. 삽질했던 과정이. 적혀있다보니..)

현재 녹음기를 만들고 있습니다.

기본적인 기능은 다 완료가 되었는데

 

요즘 녹음 앱들 보면 녹음 하는 도중 목소리 높낮이에 따라

파형이라던가 데시벨모양이라던가 실시간 변화가 나오잖아요

여기서 저는 간단한 데시벨 모양보다는 뭔가 더 분석적인?

파형 모양으로 나타내고 싶습니다..

 

간단하게 나타내는 것이면, MediaRecorder의 getMaxAmplitude를 이용해서

캔버스에 그리거나 이미지 30~50장 정도로 바꿔주면서 나타내면 될 것 같긴한데

(예제 따와서 그려보긴 했는데 생각했던 모양이 안나오더라구여)

 

그래서 AudioRecorder를 이용해서 실시간 byte값으로 파형을 나타내려고합니다

MediaRecorder에서 AudioRecorder로 전부 코드를 싹 바꾸는데 성공했고. 녹음된 것을

Visualizer와 연결해서 화면에 보여주는데에도 성공했습니다. 아주 분석적으로 잘 나오더군요...

 

그런데 문제는 녹음중에 실시간으로 그려주는 부분입니다..

실시간으로 byte값을 얻긴 하는데, 이걸 Visualizer와 연결하기 위해서는

Viesualizer의 getAudioSessionId와 연결을 해야 하는데 audioRecorder와는 직접 연결이 안되서

AudioTrack을 사용중에 있습니다.

 

AudioTrack을 사용하니 실시간 목소리에 따라 파형이 잘 변하긴 하는데...

사용해 보니 소리가 마이크처럼 울립니다.. 제 목소리가 들립니다 녹음중에..

소리를 바깥으로 내주면서 그 소리를 다시 파형으로 그려주는식인것 같습니다..

 

문제해결하기 위해 AudioTrack의 음소거, 에코제거 같은것을 찾아봤으나.

작동하긴 하는데 결국 소리가 안나다 보니 파형에 변화가 없습니다...

 

여기서 지금 멘붕상태입니다..

다른 녹음앱들은 어떤것을 사용해서 나타내는지 궁금합니다..
익명사용자 님이 2016년 12월 14일 질문
AudioRecord getAudioSessionId 로도 연동이 될텐데.. 안된다는 말씀이신가요?

https://developer.android.com/reference/android/media/AudioRecord.html#getAudioSessionId()

1개의 답변

0 추천

AudioRecord getAudioSessionId 로도 연동이 될텐데.. 안된다는 말씀이신가요?

https://developer.android.com/reference/android/media/AudioRecord.html#getAudioSessionId()

 

글 목록에서만 확인중이어서 댓글달린것을 몰랐었네요..

 

Visualizer가 mediarecorder랑 audiotrack으로만 연결이 가능하다고 하네요..

, the visualizer will be attached to the MediaPlayer or AudioTrack in the same audio session.

 

저도 처음에는 될 줄 알고 AudioRecorder를 이용한것인데

AudioRecorder.getAudioSessionId로 연결하면 crash가 나네요.ㅠㅠ

stackover를 다 뒤져봤는데도 전부다 recorder로는 불가능하고

audioTrack를 사용하라는 얘기뿐이어서

AudioTrack으로 해결가능할거라 생각했는데.. 또 문제가 생기네요..ㅠㅠ

 

익명사용자 님이 2016년 12월 14일 답변
...