<!--
{
  "availability" : [
    "iOS: -",
    "iPadOS: -",
    "macCatalyst: -",
    "macOS: -",
    "tvOS: -",
    "visionOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "AudioToolbox",
  "identifier" : "/documentation/AudioToolbox/AudioServicesSystemSoundCompletionProc",
  "metadataVersion" : "0.1.0",
  "role" : "Type Alias",
  "symbol" : {
    "kind" : "Type Alias",
    "modules" : [
      "Audio Toolbox"
    ],
    "preciseIdentifier" : "c:@T@AudioServicesSystemSoundCompletionProc"
  },
  "title" : "AudioServicesSystemSoundCompletionProc"
}
-->

# AudioServicesSystemSoundCompletionProc

A function the system invokes when a system sound finishes playing.

```
typealias AudioServicesSystemSoundCompletionProc = (SystemSoundID, UnsafeMutableRawPointer?) -> Void
```

## Parameters

`ssID`

The system sound that has finished playing.

`clientData`

App data that you specified when registering the callback function.

## Discussion

Because a system sound may play for up to 30 seconds, the [`AudioServicesPlaySystemSound(_:)`](/documentation/AudioToolbox/AudioServicesPlaySystemSound(_:)) function executes asynchronously (that is, it returns immediately), and calls this function when the sound finishes playing. You can use this callback, for example, to help you avoid playing a second sound while a first sound is still playing.

---

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)