iPhone: Измените скорость воспроизведения с Аудиоустройствами

Что различные пути состоят в том, чтобы изменить скорость воспроизведения аудио на iPhone при использовании Аудиоустройств? Каковы преимущества / недостатки каждого решения?

У меня есть единица микшера и единица IO. Я должен добавить другую единицу (например, преобразователь)? Какие параметры аудиоустройства я должен установить, на который (ввод или вывод) шина на который аудиоустройство (аудиоустройства)?

Моя текущая установка:

       -------------------------              -------------------------
       |      mixer unit       | -----------> |        IO unit        |
       -------------------------              -------------------------
7
задан Tom Ilsinszki 4 August 2010 в 15:53
поделиться

1 ответ

Все приведенные ниже решения изменят высоту звука (вместе со скоростью воспроизведения). Чтобы исправить высоту звука звука после изменения скорости воспроизведения, вам необходимо использовать стороннюю аудиотеку (например, SoundTouch , которая имеет лицензию LGPL, чтобы вы могли использовать ее в своем приложении, не делая его открытым, или DiracLE или бесплатный smbPitchShift ). Существует аудиоблок ( AUPitch ), который может изменять высоту звука, но он недоступен для iPhone ; только для Mac.

Все приведенные ниже решения протестированы и работают ...

Решение №1 [Лучшее решение]

Блок 3D-микшера: Вместо многоканального микшера используйте 3D Mixer и установите k3DMixerParam_PlaybackRate в области ввода.

Преимущества: k3DMixerParam_PlaybackRate можно установить в режиме реального времени, пока вы воспроизводите звук, без каких-либо звуков отсечения или других побочных эффектов. Это также легко реализовать, если у вас есть аудиоустройства.

Недостатки: Влияет на высоту звука, но разница в высоте не заметна, если вам нужно всего лишь изменить скорость воспроизведения на +/- 8%.

Решение №2

Изменение частоты дискретизации: Измените частоту дискретизации на выходной шине микшерного пульта. Изменение частоты дискретизации очень похоже на добавление и удаление образцов.

Преимущества: Хорошо работает, если вы хотите умножить скорость воспроизведения на долю целого числа (например, 1,2x).

Недостатки: Изменение частоты дискретизации выхода микшера невозможно установить «на лету»; только при инициализации смесительного устройства. Влияет на высоту звука вашего звука, но разница в высоте звука не очень заметна, если вам нужно всего лишь изменить скорость воспроизведения на +/- 8%.

audioDescriptionMixerOutput.mSampleRate = 1.2*kGraphSampleRate;

Решение №3

Добавить / удалить образцы: Передавать только каждый второй, третий, ... аудиосэмпл на вход вашего аудиоустройства (микшерный пульт в моем случае) в вашей функции обратного вызова рендеринга.

Преимущества: Хорошо работает, если вы хотите ускорить или замедлить воспроизведение звука в 2 раза, 3 раза, 4 раза и т. Д. Это также легко реализовать.

Недостатки: Вы можете умножить скорость воспроизведения только на целочисленный коэффициент. Например, невозможно увеличить скорость воспроизведения звука в 1,2 раза путем добавления или удаления сэмплов. Влияет на высоту звука.

9
ответ дан 7 December 2019 в 03:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: