我目前能够将视频录制到AVCaptureMovieFileOutput
个实例,但我无法找到任何可以学习的资源,这些资源显示了视频播放是如何实现的,例如Snapchat / facebook / instagram能够生成
我是否应该使用AVCaptureVideoPreviewLayer
,如果是这样,我将如何成功录制到AVCaptureMovieFileOutput
实例。对所用内容的解决方案或指导将非常有帮助!
或者它是特定的控制器,播放器等?我发现唯一的游戏是AVPlayerViewController
,但它不是一个没有按钮和进度条的玩家。
func captureMovie(withDelegate delegate: AVCaptureFileOutputRecordingDelegate) {
if movieOutput.isRecording == false {
let connection = movieOutput.connection(withMediaType: AVMediaTypeVideo)
if (connection?.isVideoStabilizationSupported)! {
connection?.preferredVideoStabilizationMode = AVCaptureVideoStabilizationMode.auto
}
let device = activeInput.device
if (device?.isSmoothAutoFocusEnabled)! {
do {
try device?.lockForConfiguration()
device?.isSmoothAutoFocusEnabled = false
device?.unlockForConfiguration()
}
catch {
print("Error smooth auto focus")
}
}
let outputURL = tempURL()
movieOutput.startRecording(toOutputFileURL: outputURL, recordingDelegate: delegate)
} else {
stopRecording()
}
}
答案 0 :(得分:1)
由于Ext.ClassManager
将电影保存到文件网址。我们需要使用Ext.classSystemMonitor = function(className){
if(className === 'My.ext.File.Panel')
{
console.log(className, arguments);
}
};
或AVCaptureMovieFileOutput
来播放它。
您的最佳解决方案是在AVPlayerViewController
中播放来自AVPlayerLayer
的视频,并隐藏控件,例如按钮和进度条使用下方的属性来设置outputURL
@property(nonatomic)BOOL showsPlaybackControls;
查看以下链接以获取更多信息