引入SoundEffect.h和SoundEffect.m两个文件
NSBundle *mainBundle = [NSBundle mainBundle];
UIButton *soundChicken = [[SoundEffect alloc] initWithContentsOfFile:[mainBundle pathForResource:@"Chicken" ofType:@"aif"]];
在需要播放声音的位置直接用[soundChicken play];即可实现播放.
( SoundEffect.h ) 文件源码:
#import <Foundation/Foundation.h>
#import <AudioToolbox/AudioServices.h>
@interface SoundEffect : NSObject {
SystemSoundID _soundID;
}
- (id)initWithContentsOfFile:(NSString *)path;
- (void)play;
@end
( SoundEffect.m ) 文件源码:
#import "SoundEffect.h"
@implementation SoundEffect
- (id)initWithContentsOfFile:(NSString *)path {
self = [super init];
if (self != nil) {
NSURL *aFileURL = [NSURL fileURLWithPath:path isDirectory:NO];
if (aFileURL != nil) {
SystemSoundID aSoundID;
OSStatus error = AudioServicesCreateSystemSoundID((CFURLRef)aFileURL, &aSoundID);
if (error == kAudioServicesNoError) { // success
_soundID = aSoundID;
} else {
NSLog(@"Error %d loading sound at path: %@", error, path);
[self release], self = nil;
}
} else {
NSLog(@"NSURL is nil for path: %@", path);
[self release], self = nil;
}
}
return self;
}
-(void)dealloc {
AudioServicesDisposeSystemSoundID(_soundID);
[super dealloc];
}
-(void)play {
AudioServicesPlaySystemSound(_soundID);
}
@end
iPhone中播放声音
最新推荐文章于 2024-09-10 19:10:11 发布