ios – AVCaptureSession录制视频与音频

前端之家收集整理的这篇文章主要介绍了ios – AVCaptureSession录制视频与音频前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的应用程序设置为使用AVCaptureSession从相机录制视频,但是没有音频.我需要做什么来录制音频,然后将其添加到该文件的videoOutput?这是我录制视频的代码
  1. AVCaptureSession *session = [[AVCaptureSession alloc] init];
  2. [session beginConfiguration];
  3. session.sessionPreset = AVCaptureSessionPresetMedium;
  4.  
  5. CALayer *viewLayer = self.vImagePreview.layer;
  6. NSLog(@"viewLayer = %@",viewLayer);
  7.  
  8. AVCaptureVideoPreviewLayer *captureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
  9. captureVideoPreviewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
  10. captureVideoPreviewLayer.frame = self.vImagePreview.bounds;
  11.  
  12. [self.vImagePreview.layer addSublayer:captureVideoPreviewLayer];
  13.  
  14. AVCaptureDevice *device = [self frontFacingCameraIfAvailable];
  15.  
  16. NSError *error = nil;
  17. AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device error:&error];
  18. if (!input) {
  19. // Handle the error appropriately.
  20. NSLog(@"ERROR: trying to open camera: %@",error);
  21. }
  22.  
  23. NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
  24. NSString *documentsDirectoryPath = [paths objectAtIndex:0];
  25.  
  26. AVCaptureMovieFileOutput *movieFileOutput = [[AVCaptureMovieFileOutput alloc] init];
  27.  
  28. NSString *archives = [documentsDirectoryPath stringByAppendingPathComponent:@"archives"];
  29. NSString *outputpathofmovie = [[archives stringByAppendingPathComponent:@"Test"] stringByAppendingString:@".mp4"];
  30. NSURL *outputURL = [[NSURL alloc] initFileURLWithPath:outputpathofmovie];
  31.  
  32. [session addInput:input];
  33. [session addOutput:movieFileOutput];
  34. [session commitConfiguration];
  35. [session startRunning];
  36. [movieFileOutput startRecordingToOutputFileURL:outputURL recordingDelegate:self];

我为音频添加了另一个输入,但它不能与后台的mpmovieplayercontroller一起使用.有什么想法可以播放一个视频,同时记录相机的音频和视频?

解决方法

您尚未包括音频设备:
  1. AVCaptureDevice *audioDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio];
  2. AVCaptureDeviceInput * audioInput = [AVCaptureDeviceInput deviceInputWithDevice:audioDevice error:nil];
  3. [session addInput:audioInput]

在beginConfiguration和commitConfiguration之间.它会工作!

猜你在找的iOS相关文章