我正在尝试实现一个视频录制器视图控制器,它将嵌入另一个视图控制器内部。
我实现了一个MPMoviePlayedViewController,但这占用了整个屏幕而不是我想要的。我按照本教程,但没有得到我想要的结果 - http://www.appcoda.com/video-recording-playback-ios-programming/
tl; dr - 是否可以在不占据整个屏幕的情况下录制视频?如何实现这一目标?
答案 0 :(得分:1)
尝试使用UIContainerView
。它允许一个UIViewController
及其视图显示在所需大小的容器中。类似于UITabBarController
,它在屏幕的指定部分显示其子视图控制器,而不是整个屏幕。
有关示例和文档,请查看Apple(希望是安全的)开发人员站点。
答案 1 :(得分:1)
如果需要更多控制权,可以使用AVFoundation,请参阅Apple文档中的link。
首先使用AVCaptureDevice,AVCaptureInput和AVCaptureVideoPreviewLayer设置AVCaptureSession。 其次,创建要在其中显示输出的视图,并将其添加到视图控制器
AVCaptureSession *session = [[AVCaptureSession alloc] init];
session.sessionPreset = AVCaptureSessionPresetHigh;
AVCaptureDevice *videoDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
AVCaptureDeviceInput *videoInput= [AVCaptureDeviceInput deviceInputWithDevice:videoDevice error:nil];
[session addInput:videoInput];
AVCaptureVideoPreviewLayer *previewLayer = [AVCaptureVideoPreviewLayer layerWithSession:session];
UIView *videoDisplay = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
previewLayer.frame = videoDisplay.bounds;
[videoDisplay.layer addSublayer:previewLayer];
[session startRunning];