51
votes

Is it possible to use the existing Apple system sounds in my own app? I would like to write a sample app in Swift that does the following steps:

  1. Read/Get a list of all available systemSounds on the device (I think they are located in /System/Library/Audio/UISounds/)
  2. show the list on the screen
  3. if I touch a list item, play these sound

So its basically the same, like when you choose a new ringtone on your iPhone.

I think some apps are using this sounds, or have they copied/bought it?

Thanks and regards Jens

3
It's worth noting that /System/Library/Audio/UISounds/ exists on a physical devices but does not exist in the simulator. - Derek Soike

3 Answers

155
votes

You can use this Swift 5 code to play system sounds:

// import this
import AVFoundation

// create a sound ID, in this case its the tweet sound.
let systemSoundID: SystemSoundID = 1016

// to play sound
AudioServicesPlaySystemSound(systemSoundID)

The most up to date list of sounds I could find are here.

Documentation Reference

And this is what they all sound like: https://www.youtube.com/watch?v=TjmkmIsUEbA

23
votes

Swift 4

import AVFoundation

AudioServicesPlayAlertSound(SystemSoundID(1322))
8
votes

Here's a quick way to test the sounds.

import AVFoundation

func displaySoundsAlert() {
    let alert = UIAlertController(title: "Play Sound", message: nil, preferredStyle: UIAlertController.Style.alert)
    for i in 1000...1010 {
        alert.addAction(UIAlertAction(title: "\(i)", style: .default, handler: {_ in
            AudioServicesPlayAlertSound(UInt32(i))
            self.displaySoundsAlert()
        }))
    }
    alert.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil))
    self.present(alert, animated: true, completion: nil)
}