1

FMODオーディオファイルにエフェクトを追加するために使用しています。

ここに私のコードがあります

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

    [fileName getCString:cDest maxLength:200 encoding:NSASCIIStringEncoding]; 
    result = system->setOutput(FMOD_OUTPUTTYPE_WAVWRITER); ERRCHECK(result);


    result = system->init(32, FMOD_INIT_NORMAL | FMOD_INIT_ENABLE_PROFILE, NULL);
    ERRCHECK(result);

FMOD error! (23) File not found. 追加するとこのエラーが発生しますFMOD_OUTPUTTYPE_WAVWRITER

私を助けてください

4

2 に答える 2

2

オーディオ ファイルにハイパス フィルター (またはその他のフィルター) を追加して、ドキュメント ディレクトリに保存したいと考えています。以下は私のコードです。結果が得られません。どこが間違っているのか教えてください...

FMOD_RESULT   result        = FMOD_OK;
char          buffer[200]   = {0};
unsigned int  version       = 0;

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

result = system->getVersion(&version);
ERRCHECK(result);

if (version < FMOD_VERSION)
{
    fprintf(stderr, "You are using an old version of FMOD %08x.  This program requires %08x\n", version, FMOD_VERSION);
    exit(-1);
}

[[NSString stringWithFormat:@"%@/song1.wav", [[NSBundle mainBundle] resourcePath]] getCString:buffer maxLength:200 encoding:NSASCIIStringEncoding];

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

[fileName getCString:cDest maxLength:200 encoding:NSASCIIStringEncoding]; 
result = system->setOutput(FMOD_OUTPUTTYPE_WAVWRITER); 
ERRCHECK(result);

result = system->init(32, FMOD_INIT_NORMAL | FMOD_INIT_ENABLE_PROFILE, cDest);
ERRCHECK(result);

result = system->createSound(buffer, FMOD_SOFTWARE, NULL, &sound);
ERRCHECK(result);

result = system->playSound(FMOD_CHANNEL_FREE, sound, false, &channel);
ERRCHECK(result);

result = system->createDSPByType(FMOD_DSP_TYPE_HIGHPASS, &dsphighpass);
ERRCHECK(result);

result = system->addDSP(dsphighpass, NULL);
ERRCHECK(result);
于 2012-10-08T05:20:00.330 に答える
1

友人私はこの問題を自分で修正しました

これがコードです。それが誰かを助けることを願っています

[strSavedFile getCString:cDest maxLength:200 encoding:NSASCIIStringEncoding]; 
result = system->setOutput(FMOD_OUTPUTTYPE_WAVWRITER_NRT); ERRCHECK(result);

result = system->init(32, FMOD_INIT_NORMAL, cDest);

変えるだけ

result = system->init(32, FMOD_INIT_NORMAL | FMOD_INIT_ENABLE_PROFILE, NULL);

result = system->init(32, FMOD_INIT_NORMAL, cDest);

そして楽しむ

于 2012-10-05T09:59:17.560 に答える