2011-04-27 2 views
0

Hallo, AudioTrackAudioTrack을 인식하는 방법이 중지되었습니다.

audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, 
    sampleRate, AudioFormat.CHANNEL_CONFIGURATION_MONO, 
    AudioFormat.ENCODING_PCM_16BIT, numSamples, 
    AudioTrack.MODE_STATIC); 
audioTrack.write(generatedSnd, 0, numSamples) ; 
audioTrack.play(); 

audioTrack이 중지되었는지 인식 할 수있는 방법이 있습니까?

while(audioTrack.getPlayState() == AudioTrack.PLAYSTATE_PLAYING){ 
    i++; 
    System.out.println(i); 
} 

가 작동하지 않습니다.

인사말

+0

while 루프에 도달했을 때 트랙이 PLAYSTATE_PLAYING에 있는지 확인 하시겠습니까? – Torben

답변

-1

play() 귀하의 전화는 아마 백그라운드 스레드에 있어야합니다. 그러면 getPlayState()이 호출 될 수 있습니다. 이것은 play()이 차단 호출이라고 가정합니다.

+0

차단 호출이 아닙니다. – Torben

0

정적 트랙을 재생 중이므로 getPlaybackHeadPosition()을 사용하고 반환 된 값을 오디오의 총 샘플 수 (메모가 아닌 샘플이며 메모가 아닌 숫자 여야 함)와 비교합니다.

관련 문제