---
title: AVCaptureDevice.DiscoverySession
framework: avfoundation
role: symbol
role_heading: Class
path: avfoundation/avcapturedevice/discoverysession
---

# AVCaptureDevice.DiscoverySession

An object that finds capture devices that match specific search criteria.

## Declaration

```swift
class DiscoverySession
```

## Mentioned in

Choosing a capture device Adopting smart framing in your camera app

## Overview

Overview After creating a device discovery session, query its devices property to find a device to use for capture. You can also key-value observe this property to monitor changes to the list of available devices.

## Topics

### Creating a session

- [init(deviceTypes:mediaType:position:)](avfoundation/avcapturedevice/discoverysession/init(devicetypes:mediatype:position:).md)

### Finding devices

- [devices](avfoundation/avcapturedevice/discoverysession/devices.md)
- [supportedMultiCamDeviceSets](avfoundation/avcapturedevice/discoverysession/supportedmulticamdevicesets.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Finding and monitoring devices

- [default(_:for:position:)](avfoundation/avcapturedevice/default(_:for:position:).md)
- [default(for:)](avfoundation/avcapturedevice/default(for:).md)
- [init(uniqueID:)](avfoundation/avcapturedevice/init(uniqueid:).md)
- [wasConnectedNotification](avfoundation/avcapturedevice/wasconnectednotification.md)
- [wasDisconnectedNotification](avfoundation/avcapturedevice/wasdisconnectednotification.md)
- [devices(for:)](avfoundation/avcapturedevice/devices(for:).md)
- [devices()](avfoundation/avcapturedevice/devices().md)
