我想知道Audiotrack是如何工作的,所以我產生長度爲60000的隨機短陣,並試圖AudioTrack發揮它:打隨機短陣中AudioTrack導致什麼
public short[] generatedNoise=new short[60000];
for(int i=0;i<=59999;i++){
generatedNoise[i]=(short) random.nextInt(Short.MAX_VALUE + 1);
}
AudioTrack at=new AudioTrack(AudioManager.STREAM_MUSIC, 48000, AudioFormat.CHANNEL_OUT_MONO,
AudioFormat.ENCODING_PCM_16BIT, 48000*7 /* 1 second buffer */,
AudioTrack.MODE_STREAM);
at.write(generatedNoise, 0, generatedNoise.length);
at.play();
但揚聲器輸出什麼也沒有,並且我的控制檯中沒有錯誤消息。我嘗試使用這種方法播放一個WAV文件,它的作品完美,有人可以告訴我的原因嗎?我的目標是從揚聲器輸出一些噪音。
更新:我剛剛生成短陣喜歡用下面的代碼,仍然可以得到不輸出:
short[] wave=new short[100000];
int i=0;
while(i<=99997){
wave[i]=32767;
wave[i+1]=0;
wave[i+2]=-32767;
wave[i+3]=0;
i=i+4;
}
你等了多久,看看有沒有發生? 60,000是很多迭代。也許你應該在循環完成後添加一些日誌輸出,以確保它實際上完成。 –
是的,我沒有打印出b4播放 –