AVCaptureSession录制带有音频的视频
我有我的应用程序设置为使用AVCaptureSession从相机录制视频,但是,它没有音频。我需要做什么来录制音频,然后将其添加到文件的videoOutput中?这里是我的录制视频代码:AVCaptureSession录制带有音频的视频
AVCaptureSession *session = [[AVCaptureSession alloc] init];
[session beginConfiguration];
session.sessionPreset = AVCaptureSessionPresetMedium;
CALayer *viewLayer = self.vImagePreview.layer;
NSLog(@"viewLayer = %@", viewLayer);
AVCaptureVideoPreviewLayer *captureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
captureVideoPreviewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
captureVideoPreviewLayer.frame = self.vImagePreview.bounds;
[self.vImagePreview.layer addSublayer:captureVideoPreviewLayer];
AVCaptureDevice *device = [self frontFacingCameraIfAvailable];
NSError *error = nil;
AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device error:&error];
if (!input) {
// Handle the error appropriately.
NSLog(@"ERROR: trying to open camera: %@", error);
}
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectoryPath = [paths objectAtIndex:0];
AVCaptureMovieFileOutput *movieFileOutput = [[AVCaptureMovieFileOutput alloc] init];
NSString *archives = [documentsDirectoryPath stringByAppendingPathComponent:@"archives"];
NSString *outputpathofmovie = [[archives stringByAppendingPathComponent:@"Test"] stringByAppendingString:@".mp4"];
NSURL *outputURL = [[NSURL alloc] initFileURLWithPath:outputpathofmovie];
[session addInput:input];
[session addOutput:movieFileOutput];
[session commitConfiguration];
[session startRunning];
[movieFileOutput startRecordingToOutputFileURL:outputURL recordingDelegate:self];
我又增加了输入音频,但它不会与在背景中的MPMoviePlayerController工作。对于可以播放一个视频并同时记录来自相机的音频和视频的内容,有什么想法吗?
您还没有包括音频设备:
AVCaptureDevice *audioDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio];
AVCaptureDeviceInput * audioInput = [AVCaptureDeviceInput deviceInputWithDevice:audioDevice error:nil];
[session addInput:audioInput]
beginConfiguration
和commitConfiguration
之间。它会工作!
,当我添加AudioInput并开始录制时,预览冻结并且视频输出文件持续报告0秒的录制视频......只要我将音频注释掉,它就会重新开始工作:( – Moonwalker 2013-07-09 18:39:32
添加下面的代码beginConfiguration()
和commitConfiguration()
// Add audio device to the recording
let audioDevice = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeAudio)
do {
let audioInput = try AVCaptureDeviceInput(device: audioDevice)
self.captureSession.addInput(audioInput)
} catch {
print("Unable to add audio device to the recording.")
}
问题是关于ObjectiveC不是Swift – NSNoob 2016-08-15 09:43:23
,但他有一个今天更新的答案。 – 2017-11-13 08:10:47
@MDT所以之间那我该怎么办?如果你打算花时间发布一个链接,为什么不把它作为你认为会帮助我的链接呢? – user717452 2012-04-27 19:25:48
由于某种原因,我添加了最后一段的编辑 – user717452 2012-04-27 21:51:08