我正在嘗試使用AudioTrack流式傳輸音樂。 曲目播放,但音頻以一半的速度播放。就像這首歌變成慢動作一樣。Android AudioTrack慢速播放
try{
AudioTrack track= new AudioTrack(AudioManager.STREAM_MUSIC,
44100,
android.media.AudioFormat.CHANNEL_CONFIGURATION_MONO,
android.media.AudioFormat.ENCODING_PCM_16BIT,
android.media.AudioTrack.getMinBufferSize(44100,
android.media.AudioFormat.CHANNEL_CONFIGURATION_STEREO,
android.media.AudioFormat.ENCODING_PCM_16BIT),
AudioTrack.MODE_STREAM);
System.out.println("Min buffer: " + android.media.AudioTrack.getMinBufferSize(44100,
android.media.AudioFormat.CHANNEL_CONFIGURATION_STEREO,
android.media.AudioFormat.ENCODING_PCM_16BIT));
int cnt;
int totalWrite = 0;
boolean play = true;
byte buff[]=new byte[16384];
while((cnt=CircularByteBuffer.getInstance().getInputStream().read(buff))>0){
totalWrite += cnt;
System.out.println("Writing: " + cnt);
track.write(buff, 0, cnt);
if (totalWrite > 60000 && play){
track.play();
play = false;
}
}
}catch (Exception e)
{
}//end catch
在CircularByteBuffer中,這些字節正在寫入另一個線程並在此線程上讀取。這首歌持續不間斷地播放,但播放速度很慢。我不知道它會是什麼。有任何想法嗎?
什麼是你的輸入源玩?它也是44khz立體聲嗎? – Tim
你確定44100是正確的採樣率嗎? –
是的,我抓住流頭信息,當我打印速度,它打印「44100」 – cmakthat