---
title: "init(deviceTypes:mediaType:position:)"
framework: avfoundation
role: symbol
role_heading: Initializer
path: "avfoundation/avcapturedevice/discoverysession/init(devicetypes:mediatype:position:)"
---

# init(deviceTypes:mediaType:position:)

Creates a discovery session that finds devices that match the specified criteria.

## Declaration

```swift
convenience init(deviceTypes: [AVCaptureDevice.DeviceType], mediaType: AVMediaType?, position: AVCaptureDevice.Position)
```

## Parameters

- `deviceTypes`: A list of device types to search for, such as doc://com.apple.avfoundation/documentation/AVFoundation/AVCaptureDevice/DeviceType-swift.struct/builtInWideAngleCamera and doc://com.apple.avfoundation/documentation/AVFoundation/AVCaptureDevice/DeviceType-swift.struct/builtInMicrophone. The array must contain at least one valid doc://com.apple.avfoundation/documentation/AVFoundation/AVCaptureDevice/DeviceType-swift.struct value.
- `mediaType`: The media type to capture, such as doc://com.apple.avfoundation/documentation/AVFoundation/AVMediaType/video or doc://com.apple.avfoundation/documentation/AVFoundation/AVMediaType/audio. Pass nil to search for devices regardless of supported media types.
- `position`: The position of capture device to search for, relative to system hardware (front- or back-facing). Pass doc://com.apple.avfoundation/documentation/AVFoundation/AVCaptureDevice/Position-swift.enum/unspecified to search for devices regardless of position.

## Return Value

Return Value A new discovery session.

## Discussion

Discussion After creating a discovery session, query its devices property to examine matching devices and choose one for capture.
