您要使用的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