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

AudioTrack 으로 pcm 데이타 오디오재생할때

0 추천
AudioTrack 으로 pcm 데이타 오디오재생할때

2개이상의 소리를 한번에 재생할수있나요?

피아노앱에서 화음소리낼때 3개의 음을 동시에 내려면

AudioTrack 객체를 3개만들어야되는건지

하나의 객체로 3가지소리를 낼수있는지 궁금합니다
잡부 (5,060 포인트) 님이 2019년 1월 15일 질문

2개의 답변

+1 추천
 
채택된 답변
AudioTrack.write 호출 시  AudioSink를 통해 출력 디바이스에 write 합니다. 출력 디바이스가 한개다 보니, 여러개 출력시 짦은 시간에 번갈아가며 write 하는 방식으로 소리가 출력됩니다.

예를 들어 설명 드리면 첫번째 AudioTrack은 1만 적고 두번째는 2, 세번째는 3이라면 실제론 123123 같은 순으로 번갈아 출력하지만 사람 귀로 듣는데는  한개로 합쳐서 나오는 것 같이 들립니다.(내부적으로 지터 버퍼 같은 것을 둬서 합칠 경우도 있긴 합니다.)
 

 PCM 특성상, 샘플링레이트, 채널카운트, 채널당 비트(ex. ENCODING_PCM_16BIT) 값이 전부 동일하다면,

1+2+3  로 merge 한  6을    ( 더한 값이 peak 값을 벗어날 경우 peak 값으로 맞춰줘야 잡음이 안납니다.)
 AudioTrack에 write 하면 한 소리로 출력이 가능하긴 합니다.

https://stackoverflow.com/questions/5126169/programmatically-merging-two-pieces-of-audio/5126209#5126209
익명사용자 님이 2019년 1월 15일 답변
2019년 1월 21일 수정
+1 추천
track 당 하나의 소리만 낼 수 있을 거에요.

동시에 여러 track이 도는지는 잘 모르겠네요.
쎄미 (162,410 포인트) 님이 2019년 1월 15일 답변
...