【发布时间】:2016-07-10 11:41:11
【问题描述】:
我正在使用AudioTrack 类播放原始声音数据流:
AudioTrack audioTrack;
int sampleRate = 11025;
int channelConfigIn = AudioFormat.CHANNEL_IN_MONO;
int channelConfigOut = AudioFormat.CHANNEL_OUT_STEREO;
int audioFormat = AudioFormat.ENCODING_PCM_16BIT;
.....
int bufferSize = AudioTrack.getMinBufferSize(sampleRate,channelConfigOut,audioFormat);
audioTrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL,sampleRate,channelConfigOut,audioFormat,bufferSize,AudioTrack.MODE_STREAM);
audioTrack.play();
然后在一个单独的线程上:
while(true)
{
short [] buffer = new short[14500];
//fill buffer with sound data
long time = System.currentTimeMillis();
audioTrack.write(buffer,0,14500);
Log.i("time",(System.currentTimeMillis() - time) + "");
}
我的问题是日志总是显示write方法阻塞大约0.6秒,与播放的声音长度(14500个样本)相同,而且手机在播放过程中没有响应,主线程几乎不能做任何任何人都可以帮助的事情......
【问题讨论】:
-
this 工作正常
标签: android audio audiotrack