我正在使用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);
答案 0 :(得分:0)
我通过确保服务器运行与我的计算机运行的操作系统和Xcode版本完全相同来解决了这个问题。这解决了这个问题。