objective-c - ExtAudioFileWrite仅写入文件的第一位

标签 objective-c ruby-on-rails audio

我正在使用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);

最佳答案

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

关于objective-c - ExtAudioFileWrite仅写入文件的第一位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18021806/

相关文章:

javascript - 带队列的Discord.js音乐机器人无法正常工作

python - 如何在声音设备中停止stream.write函数

ios - 控制scrollView mid动画的contentOffset

iphone - 从核心数据中获取不同的数据以及降序?

ruby-on-rails - ActiveRecord 执行 SQL 需要关闭连接吗?弃用警告 : Database connections will not be closed automatically

ruby-on-rails - Rails 3.1 Assets 管道 : change default URL (/assets)

ios - 从 Gmail 帐户中获取所有电子邮件

iphone - 我的 View 显示 y20,尽管其框架设置为 y=0。旋转后它会恢复到 y=0

ruby-on-rails - 哪个 Rails 服务器用于开发?

ios - currentPlaybackTime 和 MPMusicPlayerController 以及 iOS 7.1 的问题