Developer Documentation
Our new developer documentation is now available. Please check it out!

OdinAudio

public class OdinAudio

Class to help managing the core audio functionality.

The AVAudioEngine instance manages audio nodes, controls playback and configures rendering constraints.

Properties

engine

public let engine: AVAudioEngine

The underlying AVAudioEngine instance.

devices

@Published public private(set) var devices: [String: OdinAudioDevice] = [:]

A list of audio devices available.

inputDevices

public var inputDevices: [String: OdinAudioDevice]

An list of audio input devices.

outputDevices

public var outputDevices: [String: OdinAudioDevice]

An list of audio output devices.

isRunning

public var isRunning: Bool

Indicates the status of the underlying AVAudioEngine instance.

Methods

deinit

deinit

Destroys room and closes the connection to the server if needed.

start()

public func start() throws

Starts the underlying AVAudioEngine instance.

stop()

public func stop()

Stops the underlying AVAudioEngine instance.

connect(_:)

public func connect(_ room: OdinRoom) throws

Attaches the specified room to the underlying AVAudioEngine instance and connects it.

disconnect(_:)

public func disconnect(_ room: OdinRoom) throws

Detaches the specified room from the underlying AVAudioEngine instance.

connect(_:)

public func connect(_ media: OdinMedia) throws

Attaches the specified media to the underlying AVAudioEngine instance and connects it.

disconnect(_:)

public func disconnect(_ media: OdinMedia) throws

Detaches the specified media from the underlying AVAudioEngine instance.

sharedInstance()

public class func sharedInstance() -> OdinAudio

Returns a shared instance of the audio engine.