[英]ExtAudioFileRead is too slow. How to make it faster?
我已經編寫了自己的音頻庫。 (很傻,我知道,但我喜歡。)現在,我正在使用它來播放iOS上iPod庫中的立體聲文件。 它工作得很好,只是有時對ExtAudioFileRead()的調用花費的時間超過23ms。 由於我的AudioUnits輸出設置正在播放44.1KHz的音頻,因此每個回調要求1024幀。 我的代碼+ ExtAudioFileRead()必須不超過23毫秒才能響應。
我非常驚訝ExtAudioFileRead()這么慢。 我正在做的事情似乎很正常。 我認為一定有一些我沒有做的未記錄的配置魔術。 這是我相關的配置代碼:
ExtAudioFileRef _extAudioFileRef;
OSStatus result;
result = ::ExtAudioFileOpenURL((__bridge CFURLRef)_url, &_extAudioFileRef);
AudioStreamBasicDescription format;
format.mBitsPerChannel = 8 * sizeof(float);
format.mBytesPerFrame = sizeof(float);
format.mBytesPerPacket = sizeof(float);
format.mChannelsPerFrame = channelCount;
format.mFormatFlags = kAudioFormatFlagIsFloat|kAudioFormatFlagIsNonInterleaved;
format.mFormatID = kAudioFormatLinearPCM;
format.mFramesPerPacket = 1;
format.mSampleRate = framesPerSecond;
result = ::ExtAudioFileSetProperty(_extAudioFileRef,
kExtAudioFileProperty_ClientDataFormat,
sizeof(format),
&format);
我沒有設置_extAudioFileRef的任何其他屬性。
我已經找到了答案。 我只是在對ExtAudioFileRead()的調用周圍進行了時間測量,所以我知道這不是我的代碼使此過程變慢。 這一定是配置問題,對吧?
非常感謝您的幫助或猜測!
干杯,克里斯托弗
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.