我正在开发与会议相关的应用程序,我首先使用CaptureSession捕获音频,现在我想动态播放音频数据而不保存到文件中。我尝试使用AVQueue
似乎CaptureSession
和AVQueue
在我开始排队时无法一起工作它会停止捕获,所以我现在可以做什么来播放通过CaptureSession捕获的音频?< / p>
感谢您的帮助
答案 0 :(得分:0)
您需要convert
将audioData
改为NSData
:
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer: (CMSampleBufferRef)sampleBuffer
fromConnection:(AVCaptureConnection *)connection {
NSData *audioData = yourFunction here to convert//[self audioFromSampleBuffer:sampleBuffer];
dispatch_async(dispatch_get_main_queue(), ^{
NSError *e;
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithData:data error:&e];
NSLog(@"%@",[e description]);
[player setDelegate:self];
[player play];
}
}
答案 1 :(得分:0)
我已经使用AudioUnit方法修复了问题,注意:当我们使用AudioUnit处理在AVCapturesession中捕获的音频数据时,我们需要确保AudioUnit不会尝试访问捕获设备(在我的情况下是Mic),这就是它停止的原因捕获回叫。