android - 循环播放音频文件

标签 android audio

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

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);

然后调用 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);

关于android - 循环播放音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5797997/

相关文章:

java - Android READ_EXTERNAL_STORAGE 权限不起作用

android - 在防火墙后接收回复

java - Android - 保留 headless fragment

c# - 为内存中的流创建有效的 wav 文件头

android - 如何以正确的方式将 jwt 存储在 android 应用程序中?

android - 在 Android View 中检测后退按钮按下

ios - MTAudioProcessingTap - 产生更多的输出样本?

c# - ASP.Net字符串转换为音频

c# - 如何通过魔数(Magic Number)检测查看 WMA 和 WMV 文件之间的差异?

javascript - JavaScript 音频播放延迟