如何播放AVCaptureMovieFileOutput

时间:2017-06-13 02:43:46

标签: ios swift avfoundation 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()
  }
}

1 个答案:

答案 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;

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