<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "MediaDevice",
  "identifier" : "/documentation/MediaDevice/MediaOutputDevice",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "Media Device"
    ],
    "preciseIdentifier" : "s:11MediaDevice0a6OutputB0V"
  },
  "title" : "MediaOutputDevice"
}
-->

# MediaOutputDevice

Represents a discoverable media output device such as a TV, speaker, or streaming stick.

```
struct MediaOutputDevice
```

## Topics

### Structures

[`struct AuthorizationMethod`](/documentation/MediaDevice/MediaOutputDevice/AuthorizationMethod)

Specifies what kind of authorization UI to present when connecting to a device.

[`struct Capabilities`](/documentation/MediaDevice/MediaOutputDevice/Capabilities-swift.struct)

Defines the media capabilities supported by a [`MediaOutputDevice`](/documentation/MediaDevice/MediaOutputDevice).

### Operators

[`static func == (MediaOutputDevice, MediaOutputDevice) -> Bool`](/documentation/MediaDevice/MediaOutputDevice/==(_:_:))

Returns a Boolean value that indicates whether two devices are equal.

### Initializers

[`init?(id: UUID, displayName: String, capabilities: MediaOutputDevice.Capabilities, canGroupWithCurrentlyActivatedDevices: Bool, deviceType: MediaOutputDevice.DeviceType, volumeControl: MediaOutputDevice.VolumeControl, canMute: Bool, requiredNetworkEndpoints: [NWEndpoint], txtRecords: [NWTXTRecord], supportsSimultaneousSessions: Bool)`](/documentation/MediaDevice/MediaOutputDevice/init(id:displayName:capabilities:canGroupWithCurrentlyActivatedDevices:deviceType:volumeControl:canMute:requiredNetworkEndpoints:txtRecords:supportsSimultaneousSessions:))

Creates a new media output device with the specified properties, requiring at least one network endpoint.

### Instance Properties

[`let canGroupWithCurrentlyActivatedDevices: Bool`](/documentation/MediaDevice/MediaOutputDevice/canGroupWithCurrentlyActivatedDevices)

Indicates whether this device can be grouped with devices that are currently activated.

[`let canMute: Bool`](/documentation/MediaDevice/MediaOutputDevice/canMute)

Indicates whether the device supports muting audio output.

[`let capabilities: MediaOutputDevice.Capabilities`](/documentation/MediaDevice/MediaOutputDevice/capabilities-swift.property)

The capabilities of the device.

[`var description: String`](/documentation/MediaDevice/MediaOutputDevice/description)

A textual representation of the device.

[`let deviceType: MediaOutputDevice.DeviceType`](/documentation/MediaDevice/MediaOutputDevice/deviceType-swift.property)

The type of device, used for display in user interfaces.

[`let displayName: String`](/documentation/MediaDevice/MediaOutputDevice/displayName)

A display name for the device, shown in user interfaces.

[`let id: UUID`](/documentation/MediaDevice/MediaOutputDevice/id)

A unique identifier for the device.

[`let networkEndpoints: [NWEndpoint]`](/documentation/MediaDevice/MediaOutputDevice/networkEndpoints)

The network endpoints for this device group.

[`let supportsSimultaneousSessions: Bool`](/documentation/MediaDevice/MediaOutputDevice/supportsSimultaneousSessions)

Indicates whether the device supports receiving simultaneous media sessions via [`MediaOutputSession`](/documentation/MediaDevice/MediaOutputSession).

[`let txtRecords: [NWTXTRecord]`](/documentation/MediaDevice/MediaOutputDevice/txtRecords)

TXT records associated with the device discovered via network protocols.

[`let volumeControl: MediaOutputDevice.VolumeControl`](/documentation/MediaDevice/MediaOutputDevice/volumeControl-swift.property)

The type of volume control supported by this device.

### Instance Methods

[`func hash(into: inout Hasher)`](/documentation/MediaDevice/MediaOutputDevice/hash(into:))

Hashes the essential components of the device by feeding them into the given hasher.

### Enumerations

[`enum DeviceType`](/documentation/MediaDevice/MediaOutputDevice/DeviceType-swift.enum)

A device type used for display in user interfaces.

[`enum VolumeControl`](/documentation/MediaDevice/MediaOutputDevice/VolumeControl-swift.enum)

Defines the type of volume control supported by an output device or group.

## Relationships

### Conforms To

[`Sendable`](/documentation/Swift/Sendable)

[`Equatable`](/documentation/Swift/Equatable)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`Identifiable`](/documentation/Swift/Identifiable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`Hashable`](/documentation/Swift/Hashable)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)