如何播放 AVCaptureMovieFileOutput
How to playback AVCaptureMovieFileOutput
我目前能够将视频录制到 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()
}
}
因为 AVCaptureMovieFileOutput
正在将电影保存到文件 URL。我们需要使用AVPlayerViewController
或AVPlayerLayer
来播放它。
您的最佳解决方案是在 AVPlayerViewController
中播放来自 outputURL
的视频并隐藏按钮和进度条等控件,使用下面的 属性 设置 false
@property(nonatomic) BOOL showsPlaybackControls;
查看以下链接了解更多信息
我目前能够将视频录制到 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()
}
}
因为 AVCaptureMovieFileOutput
正在将电影保存到文件 URL。我们需要使用AVPlayerViewController
或AVPlayerLayer
来播放它。
您的最佳解决方案是在 AVPlayerViewController
中播放来自 outputURL
的视频并隐藏按钮和进度条等控件,使用下面的 属性 设置 false
@property(nonatomic) BOOL showsPlaybackControls;
查看以下链接了解更多信息