IOS devicesWithMediaType已弃用

Rgf*_*Iff 3 objective-c ios

我目前正在使用该方法:

NSArray *captureDevices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];

获取设备列表,但XCode给了我一个警告:

Use AVCaptureDeviceDiscoverySession instead

我查看了文档,但不知道如何访问devices数组

AVCaptureDeviceDiscoverySession *session = [[AVCaptureDeviceDiscoverySession alloc]init];
???
Run Code Online (Sandbox Code Playgroud)

Lal*_*hna 18

AVCaptureDeviceDiscoverySession根据您的要求创建,然后调用devices方法以获取Array与会话标准匹配的当前可用设备

码:

AVCaptureDeviceDiscoverySession *captureDeviceDiscoverySession = [AVCaptureDeviceDiscoverySession discoverySessionWithDeviceTypes:@[AVCaptureDeviceTypeBuiltInWideAngleCamera] 
                                      mediaType:AVMediaTypeVideo 
                                       position:AVCaptureDevicePositionBack];
NSArray *captureDevices = [captureDeviceDiscoverySession devices];
Run Code Online (Sandbox Code Playgroud)

斯威夫特4

let discoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera], mediaType: .video, position: .back)
Run Code Online (Sandbox Code Playgroud)