2

我正在使用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, &currentTime);
} while (currentTime < sequenceLength);
4

1 回答 1

0

我通过确保服务器运行的操作系统和 Xcode 版本与我的计算机运行的完全相同来解决了这个问题。这解决了这个问题。

于 2013-10-08T07:42:21.303 回答