1

我正在使用 FMOD 从文件中播放一些声音并添加一些效果。我想预览添加到它的效果,并将满意的结果保存到磁盘。我曾尝试使用 SetOutput 和 Init,然后使用 createSound、playSound 但我听不到声音,而且保存在磁盘中的文件似乎错误!

如果我不使用第 4 个参数为 0 的 setOutput 和 init 系统,我可以听到声音。

附加我的代码:

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);

希望你能帮我!

谢谢

4

1 回答 1

0

如果您将 setOutput 与 WavWriter 一起使用,音频将转到文件而不是扬声器。如果这不是您正在寻找的,也许您应该尝试使用自定义 DSP 捕获音频。

基本思路是按照 dsp_custom 示例,创建一个用户创建的 DSP,然后在 DSP 读取回调中将数据写入磁盘。您还必须将进入 DSP 的数据复制到输出缓冲区(直接 memcpy),以允许音频通过扬声器。您可以将 DSP 放置在 DSP 网络中您想要捕获音频的任何位置。如果您只对最终混音感兴趣,只需使用 System::addDSP。

于 2011-08-07T23:43:12.437 回答