Play a short sound in iOS
audio, ios
Solution
Every single one of the other answers leaks memory (unless ARC is enabled for one of the answers)... oddly, the answer originally marked as correct has a call to `retainCount` for no apparent reason.
If you `alloc/init` something, it needs to be released (unless you are using ARC).
If you call `AudioServicesCreateSystemSoundID()` you have to dispose of the resulting sound.
See the Audio UI Sounds example.
Basically:
@interface MyClass:UI*ViewController // fixed
{
SystemSoundID mySound;
}
@implementation MyClass
- (void) viewDidLoad {
[super viewDidLoad];
AudioServicesCreateSystemSoundID(.... URL ...., &mySound);
}
- (void) playMySoundLikeRightNowReally {
AudioServicesPlaySystemSound(mySound);
}
- (void) dealloc {
AudioServicesDisposeSystemSoundID(mySound);
[super dealloc]; // only in manual retain/release, delete for ARC
}
@end
For completeness: add AudioToolbox.framework `#import <AudioToolbox/AudioToolbox.h>`
Problem
I guess I could use `AVAudioPlayer` to play a sound, however, what I need is to just play a short sound and I don't need any loops or fine-grained control over the volume etc. Is there an easy way to do this?