Monday, March 7, 2011

NSSound on the iphone

I've been looking for a while how to play sound on the iphone, and I think it's something along the lines of:

[[NSSound soundNamed:@"cat.mp3"] play];

But the NSSound is on the AppKit ... any suggestions ? I know there is a really simple answer to this, but today my searches are not rendering any result ...

From stackoverflow
  • Audio Toolbox system sounds are great for short async playback.

    // Initialize
    CFBundleRef mainBundle;
    mainBundle = CFBundleGetMainBundle ();
    
    // Init each sound
    CFURLRef      tapURL;
    SystemSoundID tapSound;
    tapURL = CFBundleCopyResourceURL(mainBundle, CFSTR("tap"), CFSTR("aif"), NULL);
    AudioServicesCreateSystemSoundID(tapURL, &tapSound);
    
    // Play the sound async
    AudioServicesPlaySystemSound(tapSound);
    

    I haven't gotten MP3s to work with AudioServicesPlaySystemSound. But it plays AIF files perfectly.

  • the new AVFoundation class is the easiest way to play sound on the iPhone, though it is for firmware 2.2 only:

    AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];  
    [audioPlayer play];
    

    you just need this import in the class that uses it:

    #import <AVFoundation/AVAudioPlayer.h>
    
    webclimber : Excellent, I'll try this one tonight
  • ...any chance that this framework allows the app to control playback speed? something along the lines of speeding up the tempo on a song?

    Thanks!

    -nate

0 comments:

Post a Comment