我试图使用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,并用aplay播放。它看起来很完美。没有中断。在使用audioTrack时报告的代码中是否有错误?或者只是数据没有及时到达? 谢谢!
我试图流式传输一个文件,并完美地工作。没有中断。但是,我应该通过计算吞吐量来得出结论吗?谢谢你的帮助。 – 2011-02-28 15:21:16
我不知道你从哪里得到你的数据,但似乎AudioTrack比你收到它更快地消费数据。 – 2011-02-28 15:34:52