1

我目前能够将视频录制到一个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()
  }
}
4

1 回答 1

1

由于AVCaptureMovieFileOutput将电影保存到文件 URL。我们需要使用 AVPlayerViewControllerAVPlayerLayer播放它。

您的最佳解决方案是从内部播放视频outputURLAVPlayerViewController隐藏按钮和进度条等控件,使用以下属性进行设置false

@property(nonatomic) BOOL 显示播放控制;

检查以下链接以获取更多信息

于 2017-06-14T08:27:53.557 回答