循环播放音频文件

Mat*_*att 2 audio android

我正在尝试生成并播放方波.我正在生成信号,然后使用

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(),但是有一个短暂的延迟,我不认为这是正确的方法.

什么是无缝循环的正确方法?

Fem*_*emi 6

有一个非常相似的问题: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)