标签: extaudiofileread

用ExtAudioFileRead循环AAC文件 - bug?

使用ExtAudioFileRead读取iOS上的音频文件,似乎达到eof完全冻结了读者......例如,假设_abl AudioBufferList和_eaf ExtendedAudioFileRef已分配并正确配置:

- ( void )testRead
{
    UInt32 requestedFrames = 1024;
    UInt32 numFrames = requestedFrames;
    OSStatus error = 0;

    error = ExtAudioFileRead( _eaf, &numFrames, _abl );

    if( numFrames < requestedFrames ) //eof, want to read enough frames from the beginning of the file to reach requestedFrames and loop gaplessly
    {
         requestedFrames = requestedFrames - numFrames;
         numFrames = requestedFrames;
         // move some pointers in _abl's buffers to write at the correct offset
         error = ExtAudioFileSeek( _eaf, 0 );
         error = …
Run Code Online (Sandbox Code Playgroud)

audio objective-c ios extaudiofileread

4
推荐指数
1
解决办法
466
查看次数

ExtAudioFileRead太慢了.如何让它更快?

我写了自己的音频库.(傻,我知道,但我喜欢它.)现在,我正在用它来播放iOS上iPod库的立体声文件.它运行良好,但有时调用ExtAudioFileRead()的时间超过23毫秒.由于我的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);
Run Code Online (Sandbox Code Playgroud)

我没有设置_extAudioFileRef的任何其他属性.

我已经跟踪了这个问题.我只是调用ExtAudioFileRead()来调整时间,所以我知道这不是我的代码减慢了这个过程.它必须是配置问题,对吧?

非常感谢任何帮助甚至猜测!

干杯,克里斯托弗

core-audio extaudiofile audiounit ios extaudiofileread

1
推荐指数
1
解决办法
171
查看次数