Сохранение вывода с использованием FMOD без воспроизведения - PullRequest
0 голосов
/ 29 сентября 2011

Мне нужно реализовать воспроизведение отдельных аудиофайлов по N каналам, файлы могут воспроизводиться последовательно или параллельно.Мне нужно реализовать это на Android.

Временная шкала:

| файл a ... | файл d .... | файл b ... | ...... | filek | ....

| ..... | файл g | файл c .. | файл p. | ....

Я думаю о двух вариантах, один из которыхFMOD для распаковки файлов и воспроизведения их одновременно.Я исследовал, и FMOD, кажется, подходит хорошо и намного проще, чем играть вручную с помощью AudioTrack.Однако я не могу понять, позволит ли FMOD сохранить весь объединенный вывод без его воспроизведения.

Я знаю, что с помощью решения здесь мы можем перенаправить вывод в файл wav,но возможно ли просто создать окончательный вывод и сохранить его с помощью FMOD?Или мне все равно придется вручную объединять PCMS в один поток ..

Спасибо.

1 Ответ

1 голос
/ 30 сентября 2011

Важный вопрос здесь - зачем вам сохранять файлы, если это можно сделать в автономном режиме, тогда это будет намного проще. Если вам необходимо записать объединение нескольких файлов (включая другие, воспроизводимые параллельно), это вполне возможно с FMOD.

Один из способов - использовать режим вывода wave-writer-nrt, который позволяет выводить файл wav на основе вызовов воспроизведения FMOD быстрее, чем в реальном времени.

Другой способ - использовать собственный DSP для доступа к потоку данных любого субмикса во время его воспроизведения, что полезно, если вы хотите, чтобы одновременно воспроизводились другие звуки.

Другой способ - просто создать звуковые объекты, а затем использовать Sound :: lock для доступа к данным PCM, которые вы можете объединить самостоятельно с пунктом назначения. Имейте в виду, что все звуки должны иметь одинаковую частоту дискретизации и каналы, иначе вам придется выполнять обработку. Также имейте в виду, что вы не можете сделать это для параллельных звуков, если не хотите микшировать звук самостоятельно.

...