Fmod: читать аудиофайлы, добавлять эффекты, а затем сохранять результат int в файлы - PullRequest
1 голос
/ 07 августа 2011

Я использую FMOD для воспроизведения некоторых звуков из файлов и добавляю некоторые эффекты. Я хочу просмотреть добавленные к нему эффекты и сохранить результат на диск. Я попытался с помощью SetOutput и Init, а затем создатьSound, PlaySound но я не слышу звук, и файл, сохраненный на диске, кажется неправильным!

Если я не использую setOutput и систему инициализации с 4-м параметром 0, я могу услышать звук.

добавив мой код:

result = FMOD_System_SetOutput(gSystem,FMOD_OUTPUTTYPE_WAVWRITER);
result = FMOD_System_Init(gSystem, 32,FMOD_INIT_NORMAL,"/sdcard/wav.wav");
result = FMOD_System_CreateSound(gSystem, filename, FMOD_SOFTWARE | FMOD_LOOP_NORMAL, 0, &gSound);
result = FMOD_System_PlaySound(gSystem, FMOD_CHANNEL_FREE, gSound, 0, &gChannel);

Надеюсь, вы можете мне помочь!

Спасибо

1 Ответ

0 голосов
/ 08 августа 2011

Если вы используете setOutput с WavWriter, аудио будет идти в файл, а не в динамики. Если это не то, что вы ищете, возможно, вам следует попробовать захватить звук с помощью специального DSP.

Основная идея заключается в том, что вы следуете примеру dsp_custom, создаете пользовательский DSP, а затем в обратном вызове чтения DSP записываете данные на диск. Вы также должны скопировать данные, поступающие в DSP, в выходной буфер (direct memcpy), чтобы позволить аудио проходить через динамики. Вы можете разместить DSP в любом месте сети DSP, в которую хотите записывать звук. Если вас интересует только финальный микс, просто используйте System :: addDSP.

...