gpt4 book ai didi

objective-c - videoMinFrameDuration 已弃用

转载 作者:行者123 更新时间:2023-12-04 15:22:30 24 4
gpt4 key购买 nike

当我将 Xcode 从 4.6 更新到 5.1 时,`'videoMinnFrameDuration' 在 ios7 中被弃用了

- (void)setFrameRate:(NSInteger)frameRate;
{
_frameRate = frameRate;

if (_frameRate > 0)
{
for (AVCaptureConnection *connection in videoOutput.connections)
{

if ([connection respondsToSelector:@selector(setVideoMinFrameDuration:)])
connection.videoMinFrameDuration = CMTimeMake(1,_frameRate);

最佳答案

一方面,您使用的是 GPUImage 的过时版本,因为框架代码已将其修复了将近一年。更新您的本地框架版本。

我在 GPUImage 中解决这个问题的方法是禁用围绕相关代码的弃用检查,因为我仍然需要对旧的 iOS 版本使用此方法:

    if ([_inputCamera respondsToSelector:@selector(setActiveVideoMinFrameDuration:)] &&
[_inputCamera respondsToSelector:@selector(setActiveVideoMaxFrameDuration:)]) {

NSError *error;
[_inputCamera lockForConfiguration:&error];
if (error == nil) {
#if defined(__IPHONE_7_0)
[_inputCamera setActiveVideoMinFrameDuration:CMTimeMake(1, _frameRate)];
[_inputCamera setActiveVideoMaxFrameDuration:CMTimeMake(1, _frameRate)];
#endif
}
[_inputCamera unlockForConfiguration];

} else {

for (AVCaptureConnection *connection in videoOutput.connections)
{
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
if ([connection respondsToSelector:@selector(setVideoMinFrameDuration:)])
connection.videoMinFrameDuration = CMTimeMake(1, _frameRate);

if ([connection respondsToSelector:@selector(setVideoMaxFrameDuration:)])
connection.videoMaxFrameDuration = CMTimeMake(1, _frameRate);
#pragma clang diagnostic pop
}
}

如果新属性 (activeVideoMinFrameDuration) 可用,我们将使用它。如果不是,它会回退到现在已弃用的方法。由于我们知道它已被弃用,因此无需让编译器就此警告我们。

关于objective-c - videoMinFrameDuration 已弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24606778/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com