Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/livekit/client-sdk-swift/llms.txt

Use this file to discover all available pages before exploring further.

Configuration options for publishing audio and video tracks to the room.

AudioPublishOptions

Options for publishing audio tracks.

Properties

name
String?
default:"nil"
Custom name for the audio track.
encoding
AudioEncoding?
default:"nil"
Preferred encoding parameters for the audio track.
dtx
Bool
default:"true"
Enable Discontinuous Transmission (DTX) for audio. When enabled, audio packets are not sent during silence, reducing bandwidth usage.
red
Bool
default:"true"
Enable Redundant Encoding (RED) for audio to improve reliability.
streamName
String?
default:"nil"
Custom stream name for the audio track.
preConnect
Bool
default:"false"
Enable pre-connection buffering for the audio track.

Usage

let audioOptions = AudioPublishOptions(
    encoding: .presetSpeech,
    dtx: true,
    red: true
)

let track = LocalAudioTrack.createTrack()
try await room.localParticipant.publish(audioTrack: track, publishOptions: audioOptions)

VideoPublishOptions

Options for publishing video tracks.

Properties

name
String?
default:"nil"
Custom name for the video track.
encoding
VideoEncoding?
default:"nil"
Preferred encoding parameters for the video track.
screenShareEncoding
VideoEncoding?
default:"nil"
Encoding parameters specifically for screen share.
simulcast
Bool
default:"true"
Enable simulcasting, which publishes three tracks at different sizes for adaptive streaming.
simulcastLayers
[VideoParameters]
default:"[]"
Custom simulcast layer configuration.
screenShareSimulcastLayers
[VideoParameters]
default:"[]"
Custom simulcast layers for screen share.
preferredCodec
VideoCodec?
default:"nil"
Preferred video codec for encoding.
preferredBackupCodec
VideoCodec?
default:"nil"
Preferred backup codec for encoding.
degradationPreference
DegradationPreference
default:".auto"
Controls how the encoder should degrade quality when bandwidth is limited.
streamName
String?
default:"nil"
Custom stream name for the video track.

Usage

let videoOptions = VideoPublishOptions(
    encoding: VideoEncoding(maxBitrate: 3_000_000, maxFps: 30),
    simulcast: true,
    preferredCodec: .vp9
)

let track = LocalVideoTrack.createCameraTrack()
try await room.localParticipant.publish(videoTrack: track, publishOptions: videoOptions)