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 UIBackground
Modes
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 ...
Get iOS 6 Programming Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.