iPhone 앱용 AudioUnit을 사용하여 레코드를 처리하려고합니다.AudioBuffer의 EXC_BAD_ACCESS
변경 : 다음 코드를 추가 한 (시작)
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 [0] .mData)의 EXC_BAD_ACCESS입니다.
이 오류는 확실하지 않습니다. 그것을 해결하도록 도와주세요.
초기화되는 bufferList는 무엇입니까? 그 목록의 요소는 보통 녹음 된 샘플을 넣는 곳입니다. – hotpaw2
bufferList에서 아무 것도 초기화하지 않았습니다. 그러나 ioData에서 데이터를 읽습니다. – jfalexvijay
문제가 있습니다. 실제로 AudioBufferList (나는 ioData를 의미한다)는 데이터를 가지고 있지 않다. 그게 왜,이 오류를주고있다. 그러나 나는 그것을 고치는 방법을 모른다. – jfalexvijay