类型的价值' AVCaptureFileOutput'没有会员'委托'

时间:2016-12-05 20:12:49

标签: ios objective-c iphone swift xcode

文档https://developer.apple.com/reference/avfoundation/avcapturefileoutput表示存在AVCaptureFileOutput的委托属性。

但是以下代码

    let vfo = AVCaptureFileOutput()
    vfo.delegate = self

给出错误"类型的值' AVCaptureFileOutput'没有会员'委托'"

我希望将AVCaptureFileOutputDelegate用于AVCaptureMovieFileOutput实例。

任何指针都会有所帮助。

2 个答案:

答案 0 :(得分:0)

点击您引用页面上delegate property的链接(或查看头文件中的#if),您会注意到该属性仅适用于macOS,而不是iOS版。因此,当您在以iOS为目标的项目中时,该属性不存在。

iOS不允许您在捕获记录到同一会话的文件时接收样本缓冲区 - 您可以拥有AVCaptureVideoDataOutputAVCaptureMovieFileOutput,但不是两个。如果您只想要关于电影文件捕获进度的委托回调,请使用startRecording(toOutputFileURL:recordingDelegate:)并采用AVCaptureFileOutputRecordingDelegate代替。如果您想要样本缓冲区,请使用AVCaptureVideoDataOutput接收它们,使用AVAssetWriter进行较低级别的文件输出。

答案 1 :(得分:0)

感谢您指向AVAssetWriter的指针。我能够找到RosyWriter样本https://developer.apple.com/library/content/samplecode/RosyWriter/Introduction/Intro.html。修改后的CaptureOutput:didOutputSampleBuffer捕获音频averagePowerLevel完成了获取录制电影并获得同步音频电平的技巧。

但它的使用是否有一个更条纹化的例子?我试图剥离进行视频处理的渲染器只是打破了样本。