Метод 1: Не уверен, что это сработает, но попробуйте воспроизвести пустой аудиофайл прямо перед отправкой события захвата.
Чтобы воспроизвести клип, добавьте Audio Toolbox
framework, #include <AudioToolbox/AudioToolbox.h>
и воспроизведите аудиофайл следующим образом сразу перед тем, как сделать снимок:
NSString *path = [[NSBundle mainBundle] pathForResource:@"blank" ofType:@"wav"];
SystemSoundID soundID;
NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO];
AudioServicesCreateSystemSoundID((CFURLRef)filePath, &soundID);
AudioServicesPlaySystemSound(soundID);
Если вам нужен пустой аудиофайл, то вам нужен пустой аудиофайл.http://cl.ly/3cKi
________________________________________________________________________________________________________________________________________
Метод 2: Существует также альтернатива, если это не работает.До тех пор, пока вам не нужно хорошее разрешение, вы можете получить кадр из видеопотока , что позволит полностью исключить звук изображения.
________________________________________________________________________________________________________________________________________
Метод 3: Еще один способ сделать это - сделать «скриншот» вашего приложения.Сделайте это следующим образом:
UIGraphicsBeginImageContext(self.window.bounds.size);
[self.window.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData * data = UIImagePNGRepresentation(image);
[data writeToFile:@"foo.png" atomically:YES];
Если вы хотите, чтобы на весь экран отображался предварительный просмотр видеопотока, чтобы ваш скриншот выглядел хорошо:
AVCaptureSession *captureSession = yourcapturesession;
AVCaptureVideoPreviewLayer *previewLayer = [AVCaptureVideoPreviewLayer layerWithSession:captureSession];
UIView *aView = theViewYouWantTheLayerIn;
previewLayer.frame = aView.bounds; // Assume you want the preview layer to fill the view.
[aView.layer addSublayer:previewLayer];