2
我使用ExtAudioFileWrite將MusicPlayer寫入OSX項目中的WAV文件(使用Soundfont作爲聲音樣本)。它嵌入到Rails應用程序中(使用Ruby擴展來包裝Objective-C代碼),並且在我的計算機上運行良好 - WAV文件已成功寫入。ExtAudioFileWrite只寫入文件的第一位
但是,我最近將代碼放到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);