Вы хотите использовать метод setPlaybackRate
для этого:
http://developer.android.com/reference/android/media/AudioTrack.html
в сочетании с setLoopPoints
. Тем не менее, я полагаю, что, возможно, существует предел того, насколько вы можете ускорить «естественную» скорость воспроизведения файла, и этот предел, вероятно, составляет 48 кГц (хотя я не уверен, и это может зависеть от устройства).
Итак, если у вас есть файл, который был записан, скажем, с частотой 8000 Гц, чтобы получить желаемый эффект, вы должны установить счетчик циклов на 4 (чтобы он воспроизводился 5 раз подряд) и установить скорость воспроизведения. до 40 000 (5 * 8000).
Поскольку существует (возможно) верхний предел скорости воспроизведения, лучше всего вместо этого записать исходный звук на высокой частоте и замедлить воспроизведение по мере необходимости для достижения желаемого эффекта.
Обновление: setLoopPoints позволяет вам указать два произвольных местоположения в файле, так что, когда воспроизведение достигнет конца повторного воспроизведения, звуковой движок вернется к начальному повторному назначению. Чтобы зациклить весь файл, вы должны установить начальную петлю, равную 0, а конечную петлю - на последний кадр в файле (размер каждого кадра зависит от формата файла - поэтому стереофайл, использующий 2 байта на семпл, будет иметь размер кадра 4, поэтому последний кадр - это просто размер аудиоданных в байтах, деленный на 4).
Чтобы получить 5 последовательных воспроизведений вашего файла, вы должны установить количество циклов равным 4 (loopcount, равное 0, означает, что файл воспроизводится один раз; -1 означает, что он будет зацикливаться вечно).
Обновление 2: просто прочитайте документы еще немного - верхний предел для setPlaybackRate
задокументирован как удвоенная скорость, возвращаемая getNativeOutputSampleRate
, что для большинства устройств составляет, вероятно, 44 100 или 48 000 Гц. Это означает, что стандартный WAV-файл качества CD можно воспроизводить только с удвоенной скоростью. Файл с частотой 22 050 Гц может воспроизводиться со скоростью, в 4 раза превышающей его обычную скорость и т. Д.