我这里创建一个model 操作正确或者错误 直接调用方法(注:官方demo 模拟器是可以播放声音,真机是不行的哦)
官方demo: (此法 真机不能播放声音)
- (void)getErrorSound{
NSURL *tapSound = [[NSBundle mainBundle] URLForResource: @"scan_error"
withExtension: @"wav"];
self.soundFileURLRef = (__bridge CFURLRef )tapSound;
AudioServicesCreateSystemSoundID (
soundFileURLRef,
&soundFileObject
);
AudioServicesPlaySystemSound (soundFileObject);
}
- (void)getRightSound{
NSURL *tapSound = [[NSBundle mainBundle] URLForResource: @"beep"
withExtension: @"wav"];
self.soundFileURLRef = (__bridge CFURLRef )tapSound;
AudioServicesCreateSystemSoundID (
soundFileURLRef,
&soundFileObject
);
AudioServicesPlaySystemSound (soundFileObject);
}
手机能播放声音完整demo写法
代码如下 .h
#import <Foundation/Foundation.h>
#include <AudioToolbox/AudioToolbox.h>
@interface SoundModel : NSObject
@property (readwrite) CFURLRef soundFileURLRef;
@property (readonly) SystemSoundID soundFileObject;
- (void)getRightSound;
- (void)getErrorSound;
@end
.m
#import "SoundModel.h"
@implementation SoundModel
@synthesize soundFileURLRef;
@synthesize soundFileObject;
- (void)getErrorSound{
// NSURL *tapSound = [[NSBundle mainBundle] URLForResource: @"scan_error"
// withExtension: @"wav"];
soundFileURLRef = CFBundleCopyResourceURL (
CFBundleGetMainBundle(),
CFSTR ("scan_error"),
CFSTR ("wav"),
NULL
);
AudioServicesCreateSystemSoundID (
soundFileURLRef,
&soundFileObject
);
AudioServicesPlaySystemSound (soundFileObject);
}
- (void)getRightSound{
soundFileURLRef = CFBundleCopyResourceURL (
CFBundleGetMainBundle(),
CFSTR ("beep"),
CFSTR ("wav"),
NULL
);
AudioServicesCreateSystemSoundID (
soundFileURLRef,
&soundFileObject
);
AudioServicesPlaySystemSound (soundFileObject);
}