如何播放 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。我们需要使用AVPlayerViewControllerAVPlayerLayer来播放它。

您的最佳解决方案是在 AVPlayerViewController 中播放来自 outputURL 的视频并隐藏按钮和进度条等控件,使用下面的 属性 设置 false

@property(nonatomic) BOOL showsPlaybackControls;

查看以下链接了解更多信息