ndb*_*ent 5 avfoundation ios avcapturesession avcapturemoviefileoutput swift
我目前正在iOS 8,iPhone 6上进行测试。我正在从Swift调用这些API。
我试图弄清楚为什么我不能startRecordingToOutputFileURL在的单个实例上多次调用AVCaptureMovieFileOutput。
stopRecording要先打电话,startRecordingToOutputFileURL然后再打电话。startRecordingToOutputFileURL。第一次,我打电话startRecordingToOutputFileURL时,didStartRecordingToOutputFileAtURL委托回调被触发。当我打电话时stopRecording,didFinishRecordingToOutputFileAtURL回调被触发。
此后,我删除了临时文件。
然后,当我startRecordingToOutputFileURL下次调用时,不会触发委托回调。当我stopRecording第二次调用时,“完成”回调也不会触发。
的 用于startRecordingToOutputFileURL苹果文档说以下内容:
在iOS中,不支持此框架精确的文件切换。您必须再次调用stopRecording才能再次调用此方法,以避免出现任何错误。
但是我打电话 stopRecording再次之前先进行调用,但它不起作用。
我当前的解决方法是删除AVCaptureMovieFileOutput连接,初始化一个新实例AVCaptureMovieFileOutput,然后建立新的连接。这很糟糕,因为它需要很长时间并且会冻结视频预览。
如果您知道为什么会发生这种情况,并且有解决办法,请告诉我。
更新:我只是注意到,如果我将其切换AVCaptureSession sessionPreset到AVCaptureSessionPresetPhoto然后再回到AVCaptureSessionPresetHigh,则可以再次开始捕获视频。
更新2:这是我可以解决此问题的另一种方法:
captureSession.stopRunning()
captureSession.startRunning()
Run Code Online (Sandbox Code Playgroud)
更新3:事实证明,这似乎与捕获音量按钮的某些代码有关-JPSVolumeButtonHandler。当我注释掉开始的代码时,不会发生这种情况JPSVolumeButtonHandler。
| 归档时间: |
|
| 查看次数: |
714 次 |
| 最近记录: |