mon*_*faw 2 xcode objective-c gpuimage ios7
当我将Xcode从4.6更新为5.1时,'iM7中不推荐使用videoMinnFrameDuration'
- (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);
Run Code Online (Sandbox Code Playgroud)
首先,你使用的是过时版本的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
}
}
Run Code Online (Sandbox Code Playgroud)
如果新属性(activeVideoMinFrameDuration
)可用,我们使用它.如果没有,它将回退到现在已弃用的方法.由于我们知道它已被弃用,因此没有必要让编译器向我们发出警告.
归档时间: |
|
查看次数: |
3391 次 |
最近记录: |