Пропускать между несколькими файлами во время воспроизведения звука на iPhone iOS - PullRequest
1 голос
/ 05 марта 2012

Для проекта мне нужно обработать звук в приложении для iPhone, и я надеюсь, что кто-нибудь укажет мне правильное направление.

Допустим, у вас есть фиксированный набор до тридцати аудиофайлов одинаковой длины (2-3 секунды, без сжатия). Во время воспроизведения очереди из одного аудиофайла она должна иметь возможность обновлять параметры, позволяющие продолжить воспроизведение с другого аудиофайла с той же отметки времени, что предыдущий аудиофайл завершил воспроизведение. Если разные аудиофайлы - это разные версии тяжело отфильтрованного звука, должна быть возможность «скользить» между ними, чтобы создать впечатление, что вы применили фильтр напрямую. Фильтрация в настоящий момент невозможна в режиме реального времени на iPhone, поэтому предварительно отредактированные файлы.

Если A B и C - это разные аудиофайлы, я хотел бы иметь возможность:

Играть А без перерыва:

Старт АААААААААААА Стоп

Или начните игру A и продолжите игру снова в B, а затем в C, начав игру во время игры

Старт AAABBBBBBBBCC Стоп

В идеале должно быть возможно сыграть еще два квеста одновременно. Задержка не так важна, но пропуск между файлами в идеале не должен вызывать щелчки или задержки.

Я рассмотрел использование Audio Queue Services (которые выглядят как ад, чтобы погрузиться) и понюхал OpenAl. Может ли кто-нибудь дать мне краткий обзор и общее направление, в котором я могу провести следующие дни, похороненные?

Ответы [ 2 ]

1 голос
/ 24 марта 2012

Мне удалось сделать это с помощью FMOD Designer. FMOD (http://www.fmod.org/) - это основа звукового дизайна для разработки игр, поддерживающая разработку для iOS. Я провел мультитрек-событие в FMOD Designer с различными слоями для каждого аудиоклипа. Добавьте параметр в горизонтальную полосу, который позволяет вам контролировать какой звуковой клип воспроизводить в реальном времени. Хитрость заключается в том, чтобы позволить каждому звуковому клипу продолжаться по всей полосе и контролировать, какой звук будет слышен, используя эффект громкости (0-100%), как на прилагаемом изображении. гарантированно, что пропуск между файлами повторяется по одному и тому же временному коду. Я успешно пробовал до тридцати слоев, но несколько раз проигрывал. Казалось, исчезнет, ​​если я урежу число до пятнадцати.

Должно быть возможно использовать API iOS Audio Unit, если вам это удобно, но для тех из нас, кому нравится самое простое решение, FMOD вполне хорош :) Спасибо Эллен S за решение чаевые!

Снимок экрана мультитрекового события в FMOD Designer: https://plus.google.com/photos/106278910734599034045/albums/5723469198734595793?authkey=CNSIkbyYw8PM2wE

1 голос
/ 06 марта 2012

Попробуйте использовать API аудиоустройства iOS, особенно микшерный пульт, подключенный к RemoteIO для вывода звука.

...