What's New / Media, Audio & Capture

What's new in AVFAudio

+39 New~19 DeprecatediOS · macOS · tvOS · watchOS · visionOS

AVFAudio handles audio recording, playback, and processing on Apple platforms. It includes the AVAudioEngine node graph, audio file and PCM buffer types, audio session management, and MIDI event handling.

The 27 SDK adds 39 APIs and deprecates 19. New types include the enums DeactivationSource and ResumptionRecommendation and the struct AVReadOnlyAudioPCMBuffer. The engine connection API changes: new connectNode and connectMIDI methods plus AVAudioEngine.withMusicSequence and AVAudioIONode.withAudioUnit replace the deprecated connect, connectMIDI, and AVAudioEngine.musicSequence members.

New

39
extension

AVAudioFile

NewiOSmacOStvOSwatchOS
extension AVAudioFile
Declaration
extension AVAudioFile {

    public func read(frameCount: AVAudioFrameCount) throws -> AVReadOnlyAudioPCMBuffer

    public func write(from buffer: AVReadOnlyAudioPCMBuffer) throws
}
extension

AVAudioPCMBuffer

NewiOSmacOStvOSwatchOS
extension AVAudioPCMBuffer
Declaration
extension AVAudioPCMBuffer {

    /// Creates a mutable buffer by copying a read-only buffer's audio data.
    ///
    /// This initializer allocates a new mutable buffer and copies all audio data from the read-only buffer.
    ///
    /// - Parameter readOnlyBuffer: The read-only buffer to copy from.
    public convenience init(copying readOnlyBuffer: AVReadOnlyAudioPCMBuffer)

    /// Creates a mutable buffer by copying another PCM buffer's audio data.
    ///
    /// This initializer allocates a new mutable buffer and copies all audio data channel by channel.
    ///
    /// - Parameter source: The source PCM buffer to copy from.
    public convenience init(copying source: AVAudioPCMBuffer)

    /// Represents read-only channel data.
    ///
    /// For **deinterleaved** formats:
    /// - The span contains only the requested channel's samples in contiguous memory
    ///
    /// For **interleaved** formats:
    /// - The span contains the entire interleaved buffer starting at the channel's first sample
    public enum ChannelData : ~Escapable {

        case int16(Span<Int16>)

        case int32(Span<Int32>)

        case float(Span<Float>)
    }

    /// Represents mutable channel data.
    ///
    /// For **deinterleaved** formats:
    /// - The span contains only the requested channel's samples in contiguous memory
    ///
    /// For **interleaved** formats:
    /// - The span contains the entire interleaved buffer starting at the channel's first sample
    public enum MutableChannelData : ~Copyable, ~Escapable {

        case int16(MutableSpan<Int16>)

        case int32(MutableSpan<Int32>)

        case float(MutableSpan<Float>)
    }

    /// Provides scoped read-only access to the audio buffer list.
    ///
    /// - Parameter body: A closure that receives a pointer to the audio buffer list.
    /// - Returns: The value returned by the closure.
    public func withUnsafeAudioBufferList<R>(_ body: (UnsafePointer<AudioBufferList>) throws -> R) rethrows -> R

    /// Returns read-only access to a specific channel's data.
    ///
    /// The returned `ChannelData` is tied to the lifetime of this buffer and provides
    /// type-safe read-only access to the channel's sample data.
    ///
    /// - Warning: This function cannot enforce exclusivity at compile time because `AVAudioPCMBuffer`
    ///   is an Objective-C class. The caller must ensure proper synchronization when accessing
    ///   the buffer concurrently or when the buffer might be modified.
    ///
    /// - Note: Provides access to valid data only (up to `frameLength`).
    ///
    /// - Parameter index: The zero-based channel index.
    /// - Returns: A `ChannelData` enum containing the channel's sample data.
    ///
    /// - Example:
    /// ```swift
    /// for channelIndex in 0..<Int(buffer.format.channelCount) {
    ///     let channelData = buffer.channelData(channelIndex)
    ///     switch channelData {
    ///     case .float(let samples):
    ///         // Read Float32 data
    ///         for frame in 0..<samples.count {
    ///             let value = samples[frame]
    ///         }
    ///     case .int16(let samples):
    ///         // Read Int16 data

Truncated.

extension

AVAudioPlayer

NewiOStvOSwatchOS
extension AVAudioPlayer : @unchecked Sendable
Declaration
extension AVAudioPlayer : @unchecked Sendable {
}
extension

AVAudioUnitComponent

NewmacOS
extension AVAudioUnitComponent
Declaration
extension AVAudioUnitComponent {

    /// Type-safe notification message for audio unit component tag changes.
    ///
    /// This notification is posted when the user tags of an audio unit component are modified.
    /// The notification object is the `AVAudioUnitComponent` whose tags changed.
    ///
    /// - Note: User tags are only supported on macOS.
    public struct TagsDidChangeMessage : NotificationCenter.AsyncMessage {

        /// A type which you can optionally post and observe along with this `AsyncMessage`.
        public typealias Subject = AVAudioUnitComponent

        /// A optional name corresponding to this type, used to interoperate with notification posters and observers.
        public static var name: Notification.Name { get }

        /// Converts a posted asynchronous message into a notification for any observers.
        ///
        /// To implement this method in your own `AsyncMessage` conformance, use the properties defined by the message to populate the ``Notification``'s ``Notification/userInfo``.
        /// - Parameters:
        ///   - message: The posted `AsyncMessage`.
        /// - Returns: The converted ``Notification``.
        public static func makeNotification(_ message: AVAudioUnitComponent.TagsDidChangeMessage) -> Notification

        /// Converts a posted notification into this asynchronous message type for any observers.
        ///
        /// To implement this method in your own `AsyncMessage` conformance, retrieve values from the ``Notification``'s ``Notification/userInfo`` and set them as properties on the message.
        /// - Parameter notification: The posted ``Notification``.
        /// - Returns: The converted `AsyncMessage`, or `nil` if conversion is not possible.
        public static func makeMessage(_ notification: Notification) -> AVAudioUnitComponent.TagsDidChangeMessage?
    }
}
typealias

AVMIDIEventListBlock

NewiOSmacOStvOSwatchOS
public typealias AVMIDIEventListBlock = (Int64, UInt8, UnsafePointer<MIDIEventList>) -> OSStatus
struct

AVReadOnlyAudioPCMBuffer

NewiOSmacOStvOSwatchOS
public struct AVReadOnlyAudioPCMBuffer : Sendable

A read-only, Sendable audio buffer for safe concurrent access.

Declaration
public struct AVReadOnlyAudioPCMBuffer : Sendable {

    /// Creates a read-only buffer by copying audio data from an existing PCM buffer.
    ///
    /// This initializer creates a new `AVAudioPCMBuffer` and copies all audio data,
    /// ensuring the original buffer can continue to be used safely.
    ///
    /// - Parameter buffer: The source PCM buffer to copy from.
    public init(copying buffer: AVAudioPCMBuffer)

    /// Creates a read-only buffer by retaining the existing PCM buffer without copying.
    ///
    /// - Warning: The caller must ensure the original buffer is not modified while this
    ///   read-only buffer is in use. Violating this contract results in undefined behavior.
    ///
    /// - Parameter buffer: The PCM buffer to retain (not copied).
    public init(unsafeRetaining buffer: sending AVAudioPCMBuffer)

    /// Creates a read-only buffer by allocating and initializing audio data via closure.
    ///
    /// - Parameters:
    ///   - format: The audio format for the buffer.
    ///   - frameCapacity: The capacity in audio frames.
    ///   - initializingWith: Closure that receives the mutable AudioBufferList to initialize.
    /// - Throws: An error if allocation fails or the closure throws.
    public init(format: AVAudioFormat, frameCapacity: Int, initializingWith: (_ audioBufferList: UnsafeMutablePointer<AudioBufferList>) throws -> Void) throws

    public var format: AVAudioFormat { get }

    public var frameCapacity: Int { get }

    public var frameLength: Int { get }

    public var stride: Int { get }

    /// Represents read-only channel data.
    ///
    /// For **deinterleaved** formats:
    /// - The span contains only the requested channel's samples in contiguous memory
    ///
    /// For **interleaved** formats:
    /// - The span contains the entire interleaved buffer starting at the channel's first sample
    public enum ChannelData : ~Escapable {

        case int16(Span<Int16>)

        case int32(Span<Int32>)

        case float(Span<Float>)
    }

    /// Provides scoped read-only access to the audio buffer list.
    ///
    /// - Warning: Although the `AudioBufferList` pointer is const, each `AudioBuffer` within
    ///   the list exposes `mData` as `UnsafeMutableRawPointer`. You must not modify the buffer
    ///   data through these pointers. Doing so results in undefined behavior and violates the
    ///   read-only contract of this type.
    ///
    /// - Parameter body: A closure that receives a pointer to the audio buffer list.
    /// - Returns: The value returned by the closure.
    public func withUnsafeAudioBufferList<R>(_ body: (UnsafePointer<AudioBufferList>) throws -> R) rethrows -> R

    /// Returns read-only access to a specific channel's data.
    ///
    /// The returned `ChannelData` is tied to the lifetime of this buffer and provides
    /// type-safe access to the channel's sample data.
    ///
    /// - Note: Provides access to valid data only (up to `frameLength`).
    ///
    /// - Parameter index: The zero-based channel index.
    /// - Returns: A `ChannelData` enum containing the channel's sample data.
    ///
    /// - Example:
    /// ```swift
    /// for channelIndex in 0..<Int(buffer.format.channelCount) {
    ///     let channelData = buffer.channelData(channelIndex)
    ///     switch channelData {
    ///     case .float(let samples):
    ///         // Process Float32 data
    ///         for frame in 0..<samples.count {

Truncated.

func

connectMIDI

NewiOSmacOStvOS
open func connectMIDI(_ sourceNode: AVAudioNode, to destinationNode: AVAudioNode, format: AVAudioFormat?, eventListProvider tapBlock: AVMIDIEventListBlock? = nil)
func

connectMIDI

NewiOSmacOStvOS
open func connectMIDI(_ sourceNode: AVAudioNode, to destinationNodes: [AVAudioNode], format: AVAudioFormat?, eventListProvider tapBlock: AVMIDIEventListBlock? = nil)
func

connectNode

NewiOSmacOStvOSwatchOS
open func connectNode(_ node1: AVAudioNode, to node2: AVAudioNode, fromBus bus1: AVAudioNodeBus, toBus bus2: AVAudioNodeBus, format: AVAudioFormat?) throws
func

connectNode

NewiOSmacOStvOSwatchOS
open func connectNode(_ node1: AVAudioNode, to node2: AVAudioNode, format: AVAudioFormat?) throws
func

connectNode

NewiOSmacOStvOSwatchOS
open func connectNode(_ sourceNode: AVAudioNode, to destNodes: [AVAudioConnectionPoint], fromBus sourceBus: AVAudioNodeBus, format: AVAudioFormat?) throws
extension

NotificationCenter.MessageIdentifier

NewiOSmacOStvOS
extension NotificationCenter.MessageIdentifier where Self == NotificationCenter.BaseMessageIdentifier<AVAudioUnitComponentManager.RegistrationsChangedMessage>
Declaration
extension NotificationCenter.MessageIdentifier where Self == NotificationCenter.BaseMessageIdentifier<AVAudioUnitComponentManager.RegistrationsChangedMessage> {

    public static var registrationsChanged: NotificationCenter.BaseMessageIdentifier<AVAudioUnitComponentManager.RegistrationsChangedMessage> { get }
}
extension

NotificationCenter.MessageIdentifier

NewiOStvOSwatchOS
extension NotificationCenter.MessageIdentifier where Self == NotificationCenter.BaseMessageIdentifier<AVAudioSession.DidBecomeActiveMessage>
Declaration
extension NotificationCenter.MessageIdentifier where Self == NotificationCenter.BaseMessageIdentifier<AVAudioSession.DidBecomeActiveMessage> {

    public static var didBecomeActive: NotificationCenter.BaseMessageIdentifier<AVAudioSession.DidBecomeActiveMessage> { get }
}
extension

NotificationCenter.MessageIdentifier

NewiOStvOSwatchOS
extension NotificationCenter.MessageIdentifier where Self == NotificationCenter.BaseMessageIdentifier<AVAudioSession.DidBecomeInactiveMessage>
Declaration
extension NotificationCenter.MessageIdentifier where Self == NotificationCenter.BaseMessageIdentifier<AVAudioSession.DidBecomeInactiveMessage> {

    public static var didBecomeInactive: NotificationCenter.BaseMessageIdentifier<AVAudioSession.DidBecomeInactiveMessage> { get }
}
extension

NotificationCenter.MessageIdentifier

NewiOStvOSwatchOS
extension NotificationCenter.MessageIdentifier where Self == NotificationCenter.BaseMessageIdentifier<AVAudioSession.ResumptionRecommendationMessage>
Declaration
extension NotificationCenter.MessageIdentifier where Self == NotificationCenter.BaseMessageIdentifier<AVAudioSession.ResumptionRecommendationMessage> {

    public static var resumptionRecommendation: NotificationCenter.BaseMessageIdentifier<AVAudioSession.ResumptionRecommendationMessage> { get }
}
extension

NotificationCenter.MessageIdentifier

NewmacOS
extension NotificationCenter.MessageIdentifier where Self == NotificationCenter.BaseMessageIdentifier<AVAudioUnitComponent.TagsDidChangeMessage>
Declaration
extension NotificationCenter.MessageIdentifier where Self == NotificationCenter.BaseMessageIdentifier<AVAudioUnitComponent.TagsDidChangeMessage> {

    public static var tagsDidChange: NotificationCenter.BaseMessageIdentifier<AVAudioUnitComponent.TagsDidChangeMessage> { get }
}
func

playAudio

NewiOSmacOStvOSwatchOS
open func playAudio() throws
func

playAudio

NewiOSmacOStvOSwatchOS
open func playAudio(at when: AVAudioTime?) throws
func

AVAudioEngine.withMusicSequence

NewiOSmacOStvOS
public func withMusicSequence<R, E>(_ body: (borrowing MusicSequence?) throws(E) -> R) throws(E) -> R where E : Error

Provides scoped access to the AVAudioEngine's MusicSequence

This method provides thread-safe, scoped access to the MusicSequence. The MusicSequence reference is only valid within the closure and must not be retained or accessed outside of it.

Parameters

body
A closure that receives a MusicSequence

ReturnsThe value returned by the closure Throws: Rethrows any error thrown by the closure

func

AVAudioIONode.withAudioUnit

NewiOSmacOStvOS
public func withAudioUnit<R, E>(_ body: (borrowing AudioUnit?) throws(E) -> R) throws(E) -> R where E : Error

Provides scoped access to the I/O node's AudioUnit

This method provides thread-safe, scoped access to the underlying AudioUnit. The audio unit reference is only valid within the closure and must not be retained or accessed outside of it.

Parameters

body
A closure that receives the AudioUnit instance

ReturnsThe value returned by the closure Throws: Rethrows any error thrown by the closure

func

AVAudioNode.installAudioTap

NewiOSmacOStvOSwatchOS
public func installAudioTap(onBus bus: AVAudioNodeBus, bufferSize: AVAudioFrameCount, format: AVAudioFormat?, tapProvider: @escaping @Sendable (AVReadOnlyAudioPCMBuffer, AVAudioTime) -> Void) throws

Install a tap on a bus using a sendable block

This method installs a tap that receives read-only buffers safe for concurrent use. The tap block is sendable and can be safely called from any isolation domain.

Only one tap may be installed on any bus. Taps may be safely installed and removed while the engine is running.

Parameters

bus
The node output bus to which to attach the tap
bufferSize
The requested size of incoming buffers in sample frames. Supported range is [100, 400] ms.
format
If non-nil, attempts to apply this as the format of the specified output bus
tapProvider
A sendable closure to be called with read-only audio buffers
func

AVAudioNode.withAUAudioUnit

NewiOSmacOStvOS
public func withAUAudioUnit<R, E>(_ body: (borrowing AUAudioUnit) throws(E) -> R) throws(E) -> R where E : Error

Provides scoped access to the node's AUAudioUnit

This method provides thread-safe, scoped access to the underlying AUAudioUnit. The audio unit reference is only valid within the closure and must not be retained or accessed outside of it.

Parameters

body
A closure that receives the AUAudioUnit instance

ReturnsThe value returned by the closure Throws: Rethrows any error thrown by the closure

func

AVAudioPlayerNode.scheduleBuffer

NewiOSmacOStvOSwatchOS
public func scheduleBuffer(_ buffer: AVAudioPCMBuffer, atTime when: AVAudioTime? = nil, options: AVAudioPlayerNodeBufferOptions = [], completionCallbackType callbackType: AVAudioPlayerNodeCompletionCallbackType, completionHandler: (@Sendable () -> Void)?)

Schedules playing samples from an audio buffer.

Parameters

buffer
The buffer to play.
when
The time at which to play the buffer. Nil means "follow previous command".
options
Options for looping, interrupting, etc.
callbackType
Specifies when the completion handler is called.
completionHandler
Called after the buffer has been consumed, rendered, or played back. May be nil.
func

AVAudioPlayerNode.scheduleBuffer

NewiOSmacOStvOSwatchOS
public func scheduleBuffer(_ buffer: AVReadOnlyAudioPCMBuffer, atTime when: AVAudioTime? = nil, options: AVAudioPlayerNodeBufferOptions = [], completionCallbackType callbackType: AVAudioPlayerNodeCompletionCallbackType = .dataConsumed, completionHandler: (@Sendable () -> Void)? = nil)

Schedules playing samples from a read-only audio buffer.

Parameters

buffer
The read-only buffer to play.
when
The time at which to play the buffer. Nil means "follow previous command".
options
Options for looping, interrupting, etc.
callbackType
Specifies when the completion handler is called.
completionHandler
Called after the buffer has been consumed, rendered, or played back. May be nil.
func

AVAudioSession.activate

NewiOStvOS
open func activate(options: AVAudioSessionActivationOptions = [], completionHandler handler: @escaping @Sendable (Bool, (any Error)?) -> Void)
func

AVAudioSession.activate

NewiOStvOS
open func activate(options: AVAudioSessionActivationOptions = []) async throws -> Bool
func

AVAudioSession.deactivate

NewiOStvOSwatchOS
open func deactivate(options: AVAudioSessionDeactivationOptions = [], completionHandler handler: @escaping @Sendable (Bool, (any Error)?) -> Void)

Deactivates the audio session asynchronously.

This method returns immediately without blocking the calling thread. The system calls the completion handler with the result.

Parameters

options
Deactivation options.
handler
A completion handler called with a success flag and an error if deactivation failed.
func

AVAudioSession.deactivate

NewiOStvOSwatchOS
open func deactivate(options: AVAudioSessionDeactivationOptions = []) async throws -> Bool

Deactivates the audio session asynchronously.

This method returns immediately without blocking the calling thread. The system calls the completion handler with the result.

Parameters

options
Deactivation options.
handler
A completion handler called with a success flag and an error if deactivation failed.
let

AVAudioSession.deactivationContextKey

NewiOStvOSwatchOS
public class let deactivationContextKey: String

Keys for AVAudioSessionDidBecomeInactiveNotification Value is an AVAudioSessionDeactivationContext object describing the deactivation.

enum

AVAudioSession.DeactivationSource

NewiOStvOSwatchOS
public enum DeactivationSource : Int, @unchecked Sendable

The source of the audio session deactivation.

Declaration
public enum DeactivationSource : Int, @unchecked Sendable {

    case app = 1

    case system = 2
}
let

AVAudioSession.didBecomeActiveNotification

NewiOStvOSwatchOS
public class let didBecomeActiveNotification: NSNotification.Name

Notification sent when the audio session becomes active.

This notification has no userInfo payload.

let

AVAudioSession.didBecomeInactiveNotification

NewiOStvOSwatchOS
public class let didBecomeInactiveNotification: NSNotification.Name

Notification sent when the audio session becomes inactive.

The userInfo dictionary contains an AVAudioSessionDeactivationContext object accessible via AVAudioSessionDeactivationContextKey.

let

AVAudioSession.resumptionContextKey

NewiOStvOSwatchOS
public class let resumptionContextKey: String

Keys for AVAudioSessionResumptionRecommendationNotification Value is an AVAudioSessionResumptionContext describing the resumption recommendation.

enum

AVAudioSession.ResumptionRecommendation

NewiOStvOSwatchOS
public enum ResumptionRecommendation : Int, @unchecked Sendable

The system's recommendation on whether to resume playback.

Declaration
public enum ResumptionRecommendation : Int, @unchecked Sendable {

    case shouldNotResume = 0

    case shouldResume = 1
}
let

AVAudioSession.resumptionRecommendationNotification

NewiOStvOSwatchOS
public class let resumptionRecommendationNotification: NSNotification.Name

Notification sent when the system provides a resumption recommendation.

The userInfo dictionary contains an AVAudioSessionResumptionContext object accessible via AVAudioSessionResumptionContextKey.

let

AVAudioSession.Port.mediaDeviceExtension

NewiOS
public static let mediaDeviceExtension: AVAudioSession.Port

Output to a media device vended through a system-wide extension that the user has installed

var

AVAudioSessionDeactivationOptions.notifyOthersOnDeactivation

NewiOStvOSwatchOS
public static var notifyOthersOnDeactivation: AVAudioSessionDeactivationOptions { get }

Notify an interrupted app that the interruption has ended and it may resume playback.

func

AVAudioUnit.withAudioUnit

NewiOSmacOStvOS
public func withAudioUnit<R, E>(_ body: (borrowing AudioUnit) throws(E) -> R) throws(E) -> R where E : Error

Provides scoped access to the audio unit's AudioUnit

This method provides thread-safe, scoped access to the underlying AudioUnit. The audio unit reference is only valid within the closure and must not be retained or accessed outside of it.

Parameters

body
A closure that receives the AudioUnit instance

ReturnsThe value returned by the closure Throws: Rethrows any error thrown by the closure

case

AVAudioUnitReverbPreset.outdoorGeneral

NewiOSmacOStvOS
case outdoorGeneral = 24

Deprecated

19
let

AVAudioSessionInterruptionOptionKey

DeprecatedvisionOS
public let AVAudioSessionInterruptionOptionKey: String
DeprecatedUse AVAudioSessionDidBecomeInactiveNotification and AVAudioSessionResumptionRecommendationNotification instead

Only present for end interruption events. Value is of type AVAudioSessionInterruptionOptions.

let

AVAudioSessionInterruptionReasonKey

DeprecatedvisionOS
public let AVAudioSessionInterruptionReasonKey: String
DeprecatedUse AVAudioSessionDeactivationContext.interruptionDetails.reason instead

Only present in begin interruption events. Value is of type AVAudioSessionInterruptionReason.

let

AVAudioSessionInterruptionTypeKey

DeprecatedvisionOS
public let AVAudioSessionInterruptionTypeKey: String
DeprecatedUse AVAudioSessionDidBecomeInactiveNotification and AVAudioSessionResumptionRecommendationNotification instead

keys for AVAudioSessionInterruptionNotification Value is an NSNumber representing an AVAudioSessionInterruptionType

func

connect

DeprecatediOSmacOStvOSvisionOSwatchOS
open func connect(_ node1: AVAudioNode, to node2: AVAudioNode, fromBus bus1: AVAudioNodeBus, toBus bus2: AVAudioNodeBus, format: AVAudioFormat?)
func

connect

DeprecatediOSmacOStvOSvisionOSwatchOS
open func connect(_ node1: AVAudioNode, to node2: AVAudioNode, format: AVAudioFormat?)
func

connect

DeprecatediOSmacOStvOSvisionOSwatchOS
open func connect(_ sourceNode: AVAudioNode, to destNodes: [AVAudioConnectionPoint], fromBus sourceBus: AVAudioNodeBus, format: AVAudioFormat?)
func

connectMIDI

DeprecatediOSmacOStvOSvisionOS
open func connectMIDI(_ sourceNode: AVAudioNode, to destinationNode: AVAudioNode, format: AVAudioFormat?, eventListBlock tapBlock: AUMIDIEventListBlock? = nil)
func

connectMIDI

DeprecatediOSmacOStvOSvisionOS
open func connectMIDI(_ sourceNode: AVAudioNode, to destinationNodes: [AVAudioNode], format: AVAudioFormat?, eventListBlock tapBlock: AUMIDIEventListBlock? = nil)
init

init

DeprecatediOSmacOStvOSvisionOSwatchOS
public init(cmAudioFormatDescription formatDescription: CMAudioFormatDescription)
func

installTap

DeprecatediOSmacOStvOSvisionOSwatchOS
open func installTap(onBus bus: AVAudioNodeBus, bufferSize: AVAudioFrameCount, format: AVAudioFormat?, block tapBlock: @escaping AVAudioNodeTapBlock)
func

play

DeprecatediOSmacOStvOSvisionOSwatchOS
open func play()
func

play

DeprecatediOSmacOStvOSvisionOSwatchOS
open func play(at when: AVAudioTime?)
var

AVAudioEngine.musicSequence

DeprecatediOSmacOStvOSvisionOS
public var musicSequence: MusicSequence? { get }
DeprecatedDeprecated in favor of withMusicSequence
var

AVAudioIONode.audioUnit

DeprecatediOSmacOStvOSvisionOS
public var audioUnit: AudioUnit? { get }
DeprecatedDeprecated in favor of withAudioUnit
var

AVAudioNode.auAudioUnit

DeprecatediOSmacOStvOSvisionOS
public var auAudioUnit: AUAudioUnit { get }
DeprecatedDeprecated in favor of withAUAudioUnit
let

AVAudioSession.interruptionNotification

DeprecatedvisionOS
public class let interruptionNotification: NSNotification.Name
DeprecatedUse AVAudioSessionDidBecomeInactiveNotification and AVAudioSessionResumptionRecommendationNotification instead
struct

AVAudioSession.InterruptionOptions

DeprecatediOStvOSvisionOSwatchOS
public struct InterruptionOptions : OptionSet, @unchecked Sendable
DeprecatedUse AVAudioSessionResumptionRecommendationNotification instead

Values for AVAudioSessionInterruptionOptionKey in AVAudioSessionInterruptionNotification's userInfo dictionary.

Declaration
public struct InterruptionOptions : OptionSet, @unchecked Sendable {

    public init(rawValue: UInt)

    /// Indicates that you should resume playback now that the interruption has ended.
    public static var shouldResume: AVAudioSession.InterruptionOptions { get }
}
enum

AVAudioSession.InterruptionType

DeprecatediOStvOSvisionOSwatchOS
public enum InterruptionType : UInt, @unchecked Sendable
DeprecatedUse AVAudioSessionDidBecomeInactiveNotification and AVAudioSessionResumptionRecommendationNotification instead

Values for AVAudioSessionInterruptionTypeKey in AVAudioSessionInterruptionNotification's userInfo dictionary.

Declaration
public enum InterruptionType : UInt, @unchecked Sendable {

    ///< the system has interrupted your audio session
    case began = 1

    ///< the interruption has ended
    case ended = 0
}
var

AVAudioUnit.audioUnit

DeprecatediOSmacOStvOSvisionOS
public var audioUnit: AudioUnit { get }
DeprecatedDeprecated in favor of withAudioUnit

No APIs match your filter.

← More in Media, Audio & Capture