4

To record video, while setting video codec as below:

sessionOutput.outputSettings = [AVVideoCodecKey: AVVideoCodecTypeJPEG]

XCode says 'AVVideoCodecTypeJPEG' has been renamed to 'AVVideoCodecType.jpeg' and 'AVVideoCodecTypeJPEG' was obsoleted in Swift 3 and it suggests Replace 'AVVideoCodecTypeJPEG' with 'AVVideoCodecType.jpeg'

After doing that, XCode says 'jpeg' is only available on iOS 11.0 or newer.

The problem is I have to use iOS 10 and want to use Swift 4.

Is there any solution to use features like this in Swift 4 with iOS 10?

rick
  • 1,009
  • 2
  • 10
  • 28

1 Answers1

13

I think the right way to solve such issue is to use the new AVVideoCodecType.jpeg and the deprecated one AVVideoCodecJPEG, doing so:

if #available(iOS 11.0, *) {
    sessionOutput.outputSettings = [AVVideoCodecKey: AVVideoCodecType.jpeg]
} else {
    sessionOutput.outputSettings = [AVVideoCodecKey : AVVideoCodecJPEG]
}
mugx
  • 9,869
  • 3
  • 43
  • 55
  • 1
    I thought I did it and it threw an error! But when I copied your code it works. Thanks – rick Feb 05 '18 at 09:45