How to Play a Short Sound in iPhone Code

Matthew Campbell, August 17th, 2009

Today I am going to turn my iPhone into a Ray Gun by having it play a short laser sound. You probably have seen the many gun, laser and farting apps available on the Apple App Store. Most of these apps simply play a short sound along with some fancy graphics.

Here is the a summary of the steps I took in the video:

First, create a view based iPhone application in XCode and add a button to your view that will play the sound. If you need a refresher on how to use Interface Builder to hook up controls check out my article on adding a slider control.

Drag in the Audio Toolbox framework into your frameworks group in XCode. Here is a video on how to quickly add frameworks in XCode if you need it: Quick Tip: Adding Frameworks Painlessly in XCode. Remember that the framework will be all one word with the .framework extension, AudioToolbox.framework.

I used the website Joe’s Original Wave Files for this demo and found a nice laser sound to use. You can also buy the rights to use sounds in apps that you want to sell from websites like iStockPhoto.

To keep things simple I put all the code that you need to play the sound in an IBAction called “shoot”.


    -(IBAction) shoot{
        //Get the filename of the sound file:
        NSString *path = [NSString stringWithFormat:@"%@%@",
                          [[NSBundle mainBundle] resourcePath],
                          @"/jad0007a.wav"];
    
        //declare a system sound id
        SystemSoundID soundID;
    
        //Get a URL for the sound file
        NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO];
    
        //Use audio sevices to create the sound
        AudioServicesCreateSystemSoundID((CFURLRef)filePath, &soundID);
    
        //Use audio services to play the sound
        AudioServicesPlaySystemSound(soundID);
    }

That is it – pretty simple way to add some cool effects to your app.