---
title: AVAudioSessionPortDescription
framework: avfaudio
role: symbol
role_heading: Class
path: avfaudio/avaudiosessionportdescription
---

# AVAudioSessionPortDescription

Information about the capabilities of the port and the hardware channels it supports.

## Declaration

```swift
class AVAudioSessionPortDescription
```

## Overview

Overview A port description object describes a single input or output port associated with an audio route. Examples of audio ports include a device’s built-in speaker, a microphone on a wired headset, and a Bluetooth device supporting the Advanced Audio Distribution Profile (A2DP). You can query the audio session’s currentRoute property to get information about the active set of input and output ports. To change the current audio routing, call the setPreferredInput(_:) method. For example, on a device with a wired headset attached, the audio session’s availableInputs array may contain two port descriptions: one for the headset microphone and one for the device’s built-in microphone. You can use the audio session’s setPreferredInput(_:) method to select the headset or built-in microphone for audio input.

## Topics

### Getting the Port Attributes

- [portName](avfaudio/avaudiosessionportdescription/portname.md)
- [portType](avfaudio/avaudiosessionportdescription/porttype.md)
- [AVAudioSession.Port](avfaudio/avaudiosession/port.md)
- [channels](avfaudio/avaudiosessionportdescription/channels.md)
- [AVAudioSessionChannelDescription](avfaudio/avaudiosessionchanneldescription.md)
- [uid](avfaudio/avaudiosessionportdescription/uid.md)
- [hasHardwareVoiceCallProcessing](avfaudio/avaudiosessionportdescription/hashardwarevoicecallprocessing.md)
- [isSpatialAudioEnabled](avfaudio/avaudiosessionportdescription/isspatialaudioenabled.md)

### Managing a Port’s Data Sources

- [dataSources](avfaudio/avaudiosessionportdescription/datasources.md)
- [selectedDataSource](avfaudio/avaudiosessionportdescription/selecteddatasource.md)
- [preferredDataSource](avfaudio/avaudiosessionportdescription/preferreddatasource.md)
- [setPreferredDataSource(_:)](avfaudio/avaudiosessionportdescription/setpreferreddatasource(_:).md)

### Accessing the port extension

- [bluetoothMicrophoneExtension](avfaudio/avaudiosessionportdescription/bluetoothmicrophoneextension.md)
- [AVAudioSessionPortExtensionBluetoothMicrophone](avfaudio/avaudiosessionportextensionbluetoothmicrophone.md)
- [AVAudioSessionCapability](avfaudio/avaudiosessioncapability.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)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Inspecting the current route

- [currentRoute](avfaudio/avaudiosession/currentroute.md)
- [AVAudioSessionRouteDescription](avfaudio/avaudiosessionroutedescription.md)
- [routeChangeNotification](avfaudio/avaudiosession/routechangenotification.md)
