Objective c 获取摄像机列表
我想知道如何获得适用于在应用程序中显示的摄像头列表(例如在警报控制器中)。目前,我通过执行以下操作获得带有AVCaptureDeviceDiscoverySession的阵列相机:Objective c 获取摄像机列表,objective-c,avfoundation,Objective C,Avfoundation,我想知道如何获得适用于在应用程序中显示的摄像头列表(例如在警报控制器中)。目前,我通过执行以下操作获得带有AVCaptureDeviceDiscoverySession的阵列相机: AVCaptureDeviceDiscoverySession *session = [AVCaptureDeviceDiscoverySession discoverySessionWithDeviceTypes:@[AVCaptureDeviceTypeBuiltInWideAngleCamera, AVCapt
AVCaptureDeviceDiscoverySession *session = [AVCaptureDeviceDiscoverySession discoverySessionWithDeviceTypes:@[AVCaptureDeviceTypeBuiltInWideAngleCamera, AVCaptureDeviceTypeBuiltInTelephotoCamera]
mediaType:AVMediaTypeVideo
position:AVCaptureDevicePositionUnspecified];
NSArray *captureDevices = [session devices];
问题是NSArray包含过多的信息:
"<AVCaptureFigVideoDevice: 0x10ff0bb80 [Back Camera][com.apple.avfoundation.avcapturedevice.built-in_video:0]>",
"<AVCaptureFigVideoDevice: 0x10ff107f0 [Front Camera][com.apple.avfoundation.avcapturedevice.built-in_video:1]>"
“”,
""
但我需要的只是“后置摄像头”和“前置摄像头”。
提前谢谢你
captureDevices
是一个NSArray
如果AVCaptureDevice
。
您想要只包含设备名称的NSArray
然后,只需执行for循环:
NSMutableArray *names = [[NSMutableArray alloc] init];
for (AVCaptureDevice *aCaptureDevice in captureDevices)
{
[names addObject:[aCatpureDevice localizedName]];
}
NSMutableArray*names=[[NSMutableArray alloc]init];对于(captureDevices中的AVCaptureDevice*aCaptureDevice){[names addObject:[aCaptureDevice localizedName]];}
?NSArray
具有AVCaptureDevice
,而不是“名称”。它们是AVCaptureDevice
,包含所有相关信息。留着你想要的。谢谢你,这很有用!