Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I programmatically play an MP3 on an iPhone?

I'd like to include an MP3 with my app and play it on demand. Unfortunately I am not sure how to get started. I keep reading about .caf files, but I am not sure what those are.

I am looking for a step by step, if possible.

like image 533
AngryHacker Avatar asked Aug 18 '09 21:08

AngryHacker


People also ask

Does iPhone recognize MP3?

In addition to transferring MP3 to an iPhone from another device like a computer, an iPhone, an Android phone, and more, you can also add MP3 to your iPhone directly on the device by downloading music on iPhone. To download mp3 on iPhone, you can buy an Apple Music subscription or music from the iTunes Store.


3 Answers

Here is what I am doing to play mp3 in xCode 4.2:

1) Import AVFoundation.framework framework into your project

2) Adding: #import "AVFoundation/AVAudioPlayer.h" into your project ViewController.h file:

#import <UIKit/UIKit.h>
#import "AVFoundation/AVAudioPlayer.h"

@interface ViewController : UIViewController

@end

3) Drag and drop your mp3 file yoursoundfile.mp3 into your root project explorer

4) Modify -(void)viewDidLoadin ViewController.m:

- (void)viewDidLoad{
    [super viewDidLoad];
    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
                                         pathForResource:@"yoursoundfile"
                                         ofType:@"mp3"]];
    AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc]
                                  initWithContentsOfURL:url
                                  error:nil];
    [audioPlayer play];
}

As soon as you start your program, it will play the sound. You can customize to fit your app by changing volume, or when to play, stop...

like image 195
DavidNg Avatar answered Nov 06 '22 03:11

DavidNg


You could also try the AVAudioPlayer utility Framework.

like image 20
fbrereto Avatar answered Nov 06 '22 02:11

fbrereto


Use afconvert in Terminal to convert your MP3 to a .caf. man afconvert will tell you more.

Then

NSString *soundFilePath = [[NSBundle mainBundle] pathForResource: name ofType: @"caf"];

NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: soundFilePath];

AVAudioPlayer *player = [super initWithContentsOfURL: fileURL error: nil];
[fileURL release];
[player play];
like image 36
mahboudz Avatar answered Nov 06 '22 02:11

mahboudz