Cover by Vandad Nahavandipoor

Safari, the world’s most comprehensive technology and business learning platform.

Find the exact information you need to solve a problem on the fly, or go deeper to master the technologies and skills you need to succeed

Start Free Trial

No credit card required

O'Reilly logo

14.4. Playing Audio in the Background

Problem

You are writing an application that plays audio files (such as a music player) and you would like the audio files to be played even if your application is running in the background.

Solution

Create a new array key in your application’s main .plist file. Set the name of the key to UIBackgroundModes. Add the value audio to this new key. Here is an example of the contents of a .plist file with the aforementioned key and value added:

<dict>
  ...
  ...
  ...
  <key>UIBackgroundModes</key>
  <array>
    <string>audio</string>
  </array>
  ...
  ...
  ...
</dict>

Now you can use the AV Foundation to play audio files, and your audio files will be played even if your application is in the background.

Discussion

In iOS, applications can request that their audio files continue playing even if the application is sent to the background. AV Foundation’s AVAudioPlayer is an easy-to-use audio player that we will use in this recipe. Our mission is to start an audio player and play a simple song, and while the song is playing, send the application to the background by pressing the Home button. If we have included the UIBackgroundModes key in our application’s .plist file, iOS will continue playing the music from our app’s audio player, even in the background. While in the background, we should only play music and provide our music player with the data that is necessary for it to run. We should not be performing any other tasks, such as displaying new screens.

Here is the .h file ...

Find the exact information you need to solve a problem on the fly, or go deeper to master the technologies and skills you need to succeed

Start Free Trial

No credit card required