Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何利用dsp对fmod的影响快速保存文件?_Android_Audio_Fmod - Fatal编程技术网

Android 如何利用dsp对fmod的影响快速保存文件?

Android 如何利用dsp对fmod的影响快速保存文件?,android,audio,fmod,Android,Audio,Fmod,我正在android上使用v1.10低级api。我有一个问题是保存文件太慢。 当我保存一个持续时间为20秒的mp3/wav文件时,它花费了20秒以上 这是我的代码,请帮我找到问题: //the file size is always 0 when use FMOD_OUTPUTTYPE_WAVWRITER_NRT and while{update;} result = system->setOutput(FMOD_OUTPUTTYPE_WAVWRITER); ERRCHECK(resu

我正在android上使用v1.10低级api。我有一个问题是保存文件太慢。 当我保存一个持续时间为20秒的mp3/wav文件时,它花费了20秒以上

这是我的代码,请帮我找到问题:

 //the file size is always 0 when use FMOD_OUTPUTTYPE_WAVWRITER_NRT  and while{update;}
result = system->setOutput(FMOD_OUTPUTTYPE_WAVWRITER);
ERRCHECK(result);
result = system->init(16, FMOD_INIT_NORMAL, (void *) outpath);
ERRCHECK(result);
result = system->getMasterChannelGroup(&mastergroup);
ERRCHECK(result);
result = system->createSound(inputpath, FMOD_DEFAULT, NULL, &sound);
ERRCHECK(result);
result = system->playSound(sound, 0, false, &channel);
ERRCHECK(result);
system->createDSPByType(FMOD_DSP_TYPE_TREMOLO, &dsp);
channel->addDSP(0, dsp);

bool playing = true;
while(playing){
    result = channel->isPlaying(&playing);
    ERRCHECK(result);
    sleep(1);
}

您可能需要对代码进行概要分析,以了解哪些方法调用需要花多少时间才能知道需要做什么optimize@VladyslavMatviienko谢谢你的评论。由于fmod没有打开它的源代码,我只调用playapi,并通过while(channel->isplay()){sleep(1);}等待它完成。我不知道为什么这么慢,哪种方法花了这么多时间。我只是胡乱猜测:试着增加睡眠时间。大概到100左右ms@VladyslavMatviienko感谢您的建议,我尝试了另一个api参数(FMOD_OUTPUTTYPE_WAVWRITER_NRT),并按照您的建议减少了睡眠时间,现在时间成本降低了!