Método 1: No estoy seguro de si esto funcionará, pero intente reproducir un archivo de audio en blanco justo antes de enviar el evento de captura.
Para reproducir un clip, agregue el Audio Toolbox
marco #include <AudioToolbox/AudioToolbox.h>
y reproduzca el archivo de audio de esta manera inmediatamente antes de tomar la foto:
NSString *path = [[NSBundle mainBundle] pathForResource:@"blank" ofType:@"wav"];
SystemSoundID soundID;
NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO];
AudioServicesCreateSystemSoundID((CFURLRef)filePath, &soundID);
AudioServicesPlaySystemSound(soundID);
Aquí hay un archivo de audio en blanco si lo necesita.
https://d1sz9tkli0lfjq.cloudfront.net/items/0Y3Z0A1j1H2r1c0z3n3t/blank.wav
________________________________________________________________________________________________________________________________________
Método 2: también hay una alternativa si esto no funciona. Siempre que no necesite tener una buena resolución, puede tomar un fotograma de la transmisión de video , evitando así el sonido de la imagen por completo.
________________________________________________________________________________________________________________________________________
Método 3: Otra forma de hacer esto sería tomar una "captura de pantalla" de su aplicación. Hacerlo de esta forma:
UIGraphicsBeginImageContext(self.window.bounds.size);
[self.window.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData * data = UIImagePNGRepresentation(image);
[data writeToFile:@"foo.png" atomically:YES];
Si desea que esto llene toda la pantalla con una vista previa de la transmisión de video para que su captura de pantalla se vea bien:
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];