Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 获取摄像机列表_Objective C_Avfoundation - Fatal编程技术网

Objective c 获取摄像机列表

Objective c 获取摄像机列表,objective-c,avfoundation,Objective C,Avfoundation,我想知道如何获得适用于在应用程序中显示的摄像头列表(例如在警报控制器中)。目前,我通过执行以下操作获得带有AVCaptureDeviceDiscoverySession的阵列相机: AVCaptureDeviceDiscoverySession *session = [AVCaptureDeviceDiscoverySession discoverySessionWithDeviceTypes:@[AVCaptureDeviceTypeBuiltInWideAngleCamera, AVCapt

我想知道如何获得适用于在应用程序中显示的摄像头列表(例如在警报控制器中)。目前,我通过执行以下操作获得带有AVCaptureDeviceDiscoverySession的阵列相机:

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
,包含所有相关信息。留着你想要的。谢谢你,这很有用!