Изменить высоту звука во время воспроизведения на iPhone
Каков наилучший способ сделать это?
Из того, что я прочитал до сих пор, кажется, вам нужно настроить IO Remote (что само по себе является болью). Вам нужно сделать БПФ? Есть ли там примеры?
Могу ли я просто ускорить / замедлить воспроизведение?
Спасибо
2 ответа
OpenAL позволяет сдвигать высоту тона с помощью свойства источника AL_PITCH. Может быть, вы можете запустить аудио через OpenAL и использовать это.
Я никогда не разрабатывал iPhone, но если у вас есть достаточный контроль над буфером, отправляемым на аудиоустройство, вы можете сделать следующее:
Допустим, у вас есть буфер чтения из аудиофайла, если вы отправляете на аудиоустройство только каждый четный сэмпл (возможно, поместите в какой-то другой буфер, который передается какой-либо функции), то он удвоит частоту и увеличит половину времени воспроизведения файла.
Если вы хотите что-то промежуточное, вам нужно вычислить между выборками или заново сэмплировать аудиофайл = интерполировать значения между последовательными выборками.