AudioTrack 클래스를 사용하여 PCM 스트림을 재생하려고합니다. 다음 코드입니다.AudioTrack을 사용하여 Android의 소켓에서 오디오 스트리밍
AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, 44100, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT, 20000, AudioTrack.MODE_STREAM);
audioTrack.play();
// Reading data.
byte[] data = new byte[200];
int n = 0;
try {
while ((n = s.getInputStream().read(data)) != -1)
audioTrack.write(data, 0, n);
}
catch (IOException e) {
return;
}
불행히도 오디오가 계속 끊어집니다. 나는 audioTrack에 쓰는 대신에 파일에 데이터를 기록하려고 애쓰는 것으로 재생했다. 그것은 완벽하게 보인다. 중단 없음. audioTrack을 사용할 때 내가보고 한 코드에 문제가 있습니까? 아니면 단순히 데이터가 시간에 도착하지 않고 있을까요? 감사합니다.
나는 파일을 스트리밍 해 보았고 완벽하게 작동했다. 중단 없음. 하지만 처리량을 계산하면 어떻게됩니까? 당신의 도움을 주셔서 감사합니다. –
어디에서 데이터를 가져올 지 모르지만 AudioTrack이 데이터를 더 빨리 소비하고있는 것 같습니다. –