我在我的演示中使用 AVCaptureVideoDataOutput
来循环拍摄照片(如扫描仪)而没有声音,
所以我将 fps 设置为低级别
[device setActiveVideoMinFrameDuration:CMTimeMake(1, 1)];
[device setActiveVideoMaxFrameDuration:CMTimeMake(1, 1)];
在我的代码中,然后这样做
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer
fromConnection:(AVCaptureConnection *)connection
{
NSLog(@"date");
}
检查它是否工作,我发现它每秒打印 24 次,而不是 1 次 1 秒
PS:设备版本为iPhone 5C和iOS 8.12
最佳答案
我刚遇到同样的问题,你应该看看setActiveVideoMinFrameDuration或setActiveVideoMaxFrameDuration的功能说明。 苹果说:
On iOS, the receiver's activeVideoMinFrameDuration resets to its default value under the following conditions:
- The receiver's activeFormat changes
- The receiver's AVCaptureDeviceInput's session's sessionPreset changes
- The receiver's AVCaptureDeviceInput is added to a session
因此,您应该在更改 activeFormat、sessionPreset 和 AVCaptureSession 的 addInput 后调用 setActiveVideoMinFrameDuration 和 setActiveVideoMaxFrameDuration。
关于ios - AVFoundation 我使用 setActiveVideoMinFrameDuration 没有工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29910400/