是否有添加效果和导出到wav文件的演示?

时间:2015-07-17 01:20:07

标签: audio effects fmod

是否有添加效果和导出到wav文件的演示?

我已搜索过,但找不到解决问题的方法。

将效果添加到input.wav文件并播放。然后导出带有效果的新wav文件。请帮帮我。

我的代码是:

result = FMOD::System_Create(&system);
    ERRCHECK(result);

    result = system->getVersion(&version);

    if (FMOD_OK != result) {
        printf("FMOD lib version %08x doesn't match header version %08x", version, FMOD_VERSION);
    }

   // result = system->setOutput(FMOD_OUTPUTTYPE_WAVWRITER);
   // ERRCHECK(result);

    char cDest[200] = {0};
    NSString *fileName=[NSString stringWithFormat:@"%@/addeffects_sound.wav", [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]];
    [fileName getCString:cDest maxLength:200 encoding:NSASCIIStringEncoding];

    result = system->init(32, FMOD_INIT_NORMAL | FMOD_INIT_PROFILE_ENABLE, cDest);
    //result = system->init(32, FMOD_INIT_NORMAL, extradriverdata);
    ERRCHECK(result);

    result = system->getMasterChannelGroup(&mastergroup);

    ERRCHECK(result);

    [self createAllDSP];

-(void)createSound:(NSString *)filename
{
    //printf("really path = %s", getPath(filename));
    result = system->createSound(getPath(filename),  FMOD_DEFAULT, 0, &sound);
    ERRCHECK(result);
    [self playSound];
}

-(void) playSound
{
    result = system->playSound(sound, 0, false, &channel);
    ERRCHECK(result);
    //result = channel->setLoopCount(1);
   // ERRCHECK(result);
}

1 个答案:

答案 0 :(得分:1)

您的问题非常广泛,我建议您重新关注您遇到问题的方面。

一般来说,为了回答你的问题,你需要几个API来实现你的目标,你的代码中有一些API。

让FMOD系统准备好输出.wav:

  • System_Create
  • 系统:: setOutput
  • 系统::初始化

创建并准备所需的效果:

  • 系统:: createDSPByType
  • 系统:: addDSP

创建并播放所需的声音:

  • 系统:: createSound
  • 系统:: playSound

检查声音何时完成:

  • 系统::更新
  • 通道:: IsPlaying模块

关闭并完成.wav

  • 声音::释放
  • 系统::释放

这是使用FMOD实现目标的一种方式的基本概要。