我正在尝试生成并播放方波.我正在生成信号,然后使用
track = new AudioTrack(AudioManager.STREAM_MUSIC,
sampleRate, AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT, minSize,
AudioTrack.MODE_STREAM);
track.write(signal, 0, signal.length);
Run Code Online (Sandbox Code Playgroud)
然后调用track.play().问题是它只播放一次.看起来有一种设置循环点的方法,但我不知道要为帧添加什么.
我也尝试在while循环中调用track.write()然后调用track.play(),但是有一个短暂的延迟,我不认为这是正确的方法.
什么是无缝循环的正确方法?
有一个非常相似的问题:https://stackoverflow.com/questions/4241724/androidaudiotrack-setlooppoint-issue
如果我正确阅读了Android文档,那么您使用的是16位样本,因此signal.length/2是样本数.我试试:
track.setLoopPoints(0, signal.length/2, -1);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4822 次 |
| 最近记录: |