'AVCaptureFileOutput'类型的值没有成员'委托'

问题描述:

文档https://developer.apple.com/reference/avfoundation/avcapturefileoutput表示存在AVCaptureFileOutput的委托属性。'AVCaptureFileOutput'类型的值没有成员'委托'

但下面的代码

let vfo = AVCaptureFileOutput() 
    vfo.delegate = self 

给错误“类型‘AVCaptureFileOutput’的价值还没有成员‘代表’”

我期待使用AVCaptureFileOutputDelegate的AVCaptureMovieFileOutput实例。

任何指针都会有帮助。

请按照您引用的页面上的链接delegate property(或在头文件中查看#if),您会注意到该属性仅适用于macOS,而不适用于iOS。因此,当你在一个针对iOS的项目中时,该属性不存在。

的iOS不会让你既接受捕获记录期间样本缓冲区使用相同的会话的文件 - 你可以有一个AVCaptureVideoDataOutputAVCaptureMovieFileOutput,但不能同时使用。如果您只想要委托有关电影文件捕获进度的回调,请使用startRecording(toOutputFileURL:recordingDelegate:)并改为使用AVCaptureFileOutputRecordingDelegate。如果您想要采样缓冲区,请使用AVCaptureVideoDataOutput接收它们,使用AVAssetWriter获取较低级别的文件输出。

+0

我只是试图用音频录制视频并同时获取音频功率级别。有没有允许这个类的组合? –

谢谢指向AVAssetWriter的指针。我能找到RosyWriter样品https://developer.apple.com/library/content/samplecode/RosyWriter/Introduction/Intro.html。修改后的CaptureOutput:didOutputSampleBuffer来捕获音频averagePowerLevel做了录制电影和获取同步音频电平的技巧。

但是有没有更多的使用它的例子呢?我试图去除视频处理的渲染器,只能打破样本。