首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android AudioTrack全程写块

Android AudioTrack全程写块
EN

Stack Overflow用户
提问于 2016-07-10 19:41:11
回答 0查看 1.6K关注 0票数 0

我正在使用AudioTrack类播放原始声音数据流:

代码语言:javascript
复制
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();

然后在一个单独的线程上:

代码语言:javascript
复制
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个样本)相同,而且在播放过程中手机没有响应,主踏板几乎不能做任何人可以帮助的事情……

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38291469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档