首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自AudioBuffer的EXC_BAD_ACCESS

来自AudioBuffer的EXC_BAD_ACCESS
EN

Stack Overflow用户
提问于 2011-01-03 15:05:36
回答 2查看 952关注 0票数 0

我正在尝试做记录使用iPhone应用程序的AudioUnit。

更改:(start)我添加了以下代码

代码语言:javascript
复制
    bufferList = (AudioBufferList *)malloc(sizeof(AudioBuffer));
    bufferList->mNumberBuffers = 1;
    bufferList->mBuffers[0].mNumberChannels = 2;
    bufferList->mBuffers[0].mDataByteSize = 1024;
    bufferList->mBuffers[0].mData = calloc(256, sizeof(uint32_t));

更改:(完)

代码语言:javascript
复制
static OSStatus recordingCallback(void *inRefCon, 
                                  AudioUnitRenderActionFlags *ioActionFlags, 
                                  const AudioTimeStamp *inTimeStamp, 
                                  UInt32 inBusNumber, 
                                  UInt32 inNumberFrames, 
                                  AudioBufferList *ioData) {
    OSStatus status;
    status = AudioUnitRender(appdelegate->audioUnit, 
                             ioActionFlags, 
                             inTimeStamp, 
                             inBusNumber, 
                             inNumberFrames, 
                             appdelegate->bufferList);
    if(status != 0)
    NSLog(@"AudioUnitRender status is %d", status);
    SInt16* samples = (SInt16*)(ioData->mBuffers[0].mData);
    .....
}

修复:(我得到了OSStatus -50错误代码)-因为我没有初始化bufferList。

我是来自AudioBuffer (ioData->mBuffers.mData)的EXC_BAD_ACCESS。

对于这个错误,我不确定。请帮我解决一下。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-05 16:15:57

我解决了它;

在我的代码中,我编写了两个回调方法。我们需要两个音频设备才能使用两个音频单元。

我刚刚删除了一个回调函数。

只需看看下面的链接就可以了解它。

http://developer.apple.com/library/mac/#technotes/tn2002/tn2091.html

票数 0
EN

Stack Overflow用户

发布于 2011-01-03 15:27:15

您正在向已释放的对象发送消息。在XCode中,转到项目->编辑活动的可执行->参数->单击“加号”按钮,添加NSZombieEnabled并将其值设置为YES。这样做,您可以调试您的应用程序,并找出哪个释放的对象仍在接收消息。

但是不要忘记在你的项目中禁用这个参数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4582632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档