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です。
このエラーはわかりません。それを解決するのを手伝ってください。
バッファリストはどのように初期化されていますか?そのリストの要素は、通常、記録されたサンプルが置かれる場所です。 – hotpaw2
bufferListで何も初期化しませんでした。しかし、私はioDataからデータを読み込んでいます。 – jfalexvijay
私は問題がある。実際にAudioBufferList(私はioDataを意味します)はデータを持っていません。それはなぜ、このエラーを出しているのですか?しかし、私はそれを修正する方法がわからない。 – jfalexvijay