Для этого вы хотите использовать метод 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 (счетчик циклов 0 означает, что файл воспроизводится один раз; -1 означает, что он будет повторяться вечно).
Обновление 2: просто прочтите еще немного документации - верхний предел для setPlaybackRate
задокументирован как удвоенная частота, возвращаемая getNativeOutputSampleRate
, которая для большинства устройств составляет, вероятно, 44 100 или 48 000 Гц. Это означает, что WAV-файл стандартного качества CD может воспроизводиться только со скоростью, вдвое превышающей обычную. Файл с частотой 22050 Гц можно было воспроизвести со скоростью, в 4 раза превышающей обычную, и т. Д.
person
MusiGenesis
schedule
22.02.2011