1
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection {
AudioBufferList audioBufferList;
NSMutableData *data= [NSMutableData data];
CMBlockBufferRef blockBuffer;
CMSampleBufferGetAudioBufferListWithRetainedBlockBuffer(sampleBuffer, NULL, &audioBufferList, sizeof(audioBufferList), NULL, NULL, 0, &blockBuffer);
for(int y=0; y< audioBufferList.mNumberBuffers; y++){
AudioBuffer audioBuffer = audioBufferList.mBuffers[y];
Float32 *frame = (Float32*)audioBuffer.mData;
[data appendBytes:frame length:audioBuffer.mDataByteSize];
}
CFRelease(blockBuffer);
CFRelease(ref);
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithData:data error:nil];
[player play];
}
Я не знаю, как преобразовать NSdata в Audio Buffer.Как создать AudioBuffer (аудио) из NSdata
AVAudioPlayer вышеизложенным возвращает данные NIL с этой ошибкой: Error = Ошибка домена = NSOSStatusErrorDomain Код = 1954115647
ТНХА вам r ответ. Но AVAudioPlayer все еще встречается с ошибкой: Error Domain = NSOSStatusErrorDomain Code = 1954115647 – WENHUI
Итак, попробуйте добавить [[NSMutableData alloc] init] вместо [NSMutableData data]; например: NSMutableData * data = [[NSMutableData alloc] init]; и теперь попробуйте один раз –
Проблема все еще существует, это мой метод выше не подходит? – WENHUI