我正在使用ExtAudioFileWrite从MusicPlayer写入OSX项目中的WAV文件(使用Soundfont进行声音采样)。它被嵌入到Rails应用程序中(使用Ruby扩展来封装Objective-C代码),并且在我的计算机上运行良好-WAV文件已成功写入。
但是,我最近将代码放在Mac服务器上,以便可以在线访问该应用程序。我发现的是,当在服务器上运行时,代码会生成一个持续时间正确的WAV文件,但是其中大约15秒的音频完全是静音的。
好像ExtAudioFileWrite在正确的持续时间内(整个轨道)继续写入,但是由于某种原因,在大约15秒钟的音频后,它开始写入静音。
有谁之前经历过这个吗?
这是编写代码的代码:
MusicTimeStamp currentTime;
AUOutputBL outputBuffer (clientFormat, numFrames);
AudioTimeStamp tStamp;
memset (&tStamp, 0, sizeof(AudioTimeStamp));
tStamp.mFlags = kAudioTimeStampSampleTimeValid;
int i = 0;
int numTimesFor10Secs = (int)(10. / (numFrames / srate));
do {
outputBuffer.Prepare();
AudioUnitRenderActionFlags actionFlags = 0;
FailIf ((result = AudioUnitRender (outputUnit, &actionFlags, &tStamp, 0, numFrames, outputBuffer.ABL())), fail, "AudioUnitRender");
tStamp.mSampleTime += numFrames;
ExtAudioFileWrite(outfile, numFrames, outputBuffer.ABL());
MusicPlayerGetTime(player, ¤tTime);
} while (currentTime < sequenceLength);
最佳答案
我通过确保服务器运行与我的计算机运行的操作系统和Xcode版本完全相同的方法解决了此问题。这解决了问题。
关于objective-c - ExtAudioFileWrite仅写入文件的第一位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18021806/