2013-08-02 37 views
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, &currentTime); 
} while (currentTime < sequenceLength); 

回答

0

我通過確保服務器運行完全相同的操作系統和版本的Xcode作爲正由我的計算機中運行解決了這個問題。這解決了這個問題。