您要使用的setPlaybackRate
方法是:
http://developer.android.com/reference/android/media/AudioTrack.html
与setLoopPoints
结合。不过,我相信可能会有多少限制,可以加快文件的“自然”播放速度,而限制可能是48 kHz(但我不确定,但可能取决于设备)。
因此,如果您有一个以8000Hz记录的文件,以获得您想要的效果,您可以将循环计数设置为4(以便它连续播放5次),并设置播放费率为40,000(5 * 8000)。
由于回放速率有(可能)上限,所以最好的方法可能是以高频率录制原始声音,并根据需要放慢播放速度以实现所需效果。
更新: setLoopPoints允许您在文件中指定两个任意位置,以便当播放到达结束循环时,音频引擎将绕回到开始循环点。要循环整个文件,你需要将开始循环点设置为0,并将结束循环点设置为文件的最后一帧(每帧的大小取决于文件的格式),因此每个样本使用2个字节的立体文件会有一个帧大小为4,所以最后一帧就是音频数据的大小(以字节除以4)。
要让文件连续播放5次,您需要将循环计数设置为4(loopcount为0表示该文件播放一次; -1表示该文件将永久循环播放)。
更新2:只是阅读一些的文档 - 为setPlaybackRate
上限被记录为通过返回的速度的两倍,这对于大多数的设备可能是44,100或48000赫兹。这意味着标准的CD质量WAV文件只能以其正常速度的两倍播放。一个22,050赫兹的文件可以高达其正常速度的4倍播放,等等。
谢谢你的提示和详细的回复 - 我会试试这个! – Shani 2011-02-22 23:14:07
没问题 - 无论如何,学习这些东西都在我的TODO列表中。我知道Windows中的所有音频,但我是Android新手。你很幸运:'AudioTrack'是一个非常合理的API,它的使用相对简单直接。 – MusiGenesis 2011-02-22 23:19:36