我正在尝试做记录使用iPhone应用程序的AudioUnit。
更改:(start)我添加了以下代码
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));更改:(完)
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。
对于这个错误,我不确定。请帮我解决一下。
发布于 2011-01-05 16:15:57
我解决了它;
在我的代码中,我编写了两个回调方法。我们需要两个音频设备才能使用两个音频单元。
我刚刚删除了一个回调函数。
只需看看下面的链接就可以了解它。
http://developer.apple.com/library/mac/#technotes/tn2002/tn2091.html
发布于 2011-01-03 15:27:15
您正在向已释放的对象发送消息。在XCode中,转到项目->编辑活动的可执行->参数->单击“加号”按钮,添加NSZombieEnabled并将其值设置为YES。这样做,您可以调试您的应用程序,并找出哪个释放的对象仍在接收消息。
但是不要忘记在你的项目中禁用这个参数。
https://stackoverflow.com/questions/4582632
复制相似问题