<!--
{
  "availability" : [
    "iOS: 13.0.0 -",
    "iPadOS: 13.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.15.0 -",
    "tvOS: 13.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 6.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AVFAudio",
  "identifier" : "/documentation/AVFAudio/AVAudioSinkNode",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "AVFAudio"
    ],
    "preciseIdentifier" : "c:objc(cs)AVAudioSinkNode"
  },
  "title" : "AVAudioSinkNode"
}
-->

# AVAudioSinkNode

An object that receives audio data.

```
class AVAudioSinkNode
```

## Overview

You use an `AVAudioSinkNode` to receive audio data through [`AVAudioSinkNodeReceiverBlock`](/documentation/AVFAudio/AVAudioSinkNodeReceiverBlock). You only use it in the input chain.

An audio sink node doesn’t support format conversion. When connecting, use the output format of the input for the format for the connection. The format should match the hardware input sample rate.

The voice processing I/O unit is an exception to the above because it supports sample rate conversion. The input scope format (hardware format) and output scope format (client format) of the input node can differ in that case.

An audio sink node doesn’t support manual rendering mode, and doesn’t have an output bus, so you can’t install a tap on it.

## Topics

### Creating an Audio Sink Node

[`AVAudioSinkNodeReceiverBlock`](/documentation/AVFAudio/AVAudioSinkNodeReceiverBlock)

A block that receives audio data from an audio sink node.

[`init(receiverBlock:)`](/documentation/AVFAudio/AVAudioSinkNode/init(receiverBlock:))

Creates an audio sink node with a block that receives audio data.



---

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)