"devicesWithMediaType"已被弃用。

4

I have the following code:

NSArray * devices = [ AVCaptureDevice devicesWithMediaType: AVMediaTypeVideo ];

// 2. Iterate through the device array and if a device is a camera, check if it's the one we want:
for ( AVCaptureDevice * device in devices )
{
    if ( useFrontCamera && AVCaptureDevicePositionFront == [ device position ] )
    {
        // We asked for the front camera and got the front camera, now keep a pointer to it:
        m_camera = device;
    }
    else if ( !useFrontCamera && AVCaptureDevicePositionBack == [ device position ] )
    {
        // We asked for the back camera and here it is:
        m_camera = device;
    }
}

警告提示说devicesWithMediaType已经被弃用,应该使用AVCaptureDeviceDiscoverySession替代,我尝试了以下方法:
AVCaptureDeviceDiscoverySession *captureDeviceDiscoverySession = [AVCaptureDeviceDiscoverySession discoverySessionWithDeviceTypes:@[AVCaptureDeviceTypeBuiltInWideAngleCamera] 
                                      mediaType:AVMediaTypeVideo 
                                       position:AVCaptureDevicePositionBack];
NSArray *captureDevices = [captureDeviceDiscoverySession devices];

但是设备列表中只有我的后置摄像头,没有前置摄像头,能帮助一下吗?


但是设备数组只有我的后置摄像头,没有我的前置摄像头 - 当您使用AVCaptureDeviceDiscoverySession初始化AVCaptureDevicePositionBack时,这是可以预料的。 - mag_zbc
这个回答解决了你的问题吗?[IOS devicesWithMediaType已被弃用] (https://dev59.com/baLia4cB1Zd3GeqPp99K) - Lal Krishna
1个回答

9

来自文档

将AVCaptureDevicePositionUnspecified传递给search for devices regardless of position.

因此,使用AVCaptureDevicePositionUnspecified查找所有捕获设备。

所以代码看起来像这样:

AVCaptureDeviceDiscoverySession *captureDeviceDiscoverySession = [AVCaptureDeviceDiscoverySession discoverySessionWithDeviceTypes:@[AVCaptureDeviceTypeBuiltInWideAngleCamera] 
                                      mediaType:AVMediaTypeVideo 
                                       position: AVCaptureDevicePositionUnspecified]; // here you pass AVCaptureDevicePositionUnspecified to find all capture devices

NSArray *captureDevices = [captureDeviceDiscoverySession devices];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接