iOS App中实现播放音效和音乐功能的简单示例

2020-01-14 22:32:38王冬梅

接下来 我们打开 项目默认生成的ViewController中添加代码
导入 AudioToolbox

复制代码
#import <AudioToolbox/AudioToolbox.h>  
给View上添加button点击之后播放音效
复制代码
- (void)viewDidLoad {  
    [super viewDidLoad];  
    // Do any additional setup after loading the view, typically from a nib.  
      
    UIButton *btn1=[[UIButton alloc] initWithFrame:CGRectMake(20, 100, 120, 36)];  
    [btn1 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];  
    [btn1 setTitle:@"警告" forState:UIControlStateNormal];  
    [btn1 addTarget:self action:@selector(btn1Act) forControlEvents:UIControlEventTouchUpInside];  
    [self.view addSubview:btn1];  
      
    UIButton *btn2=[[UIButton alloc] initWithFrame:CGRectMake(20, 150, 120, 36)];  
    [btn2 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];  
    [btn2 setTitle:@"错误" forState:UIControlStateNormal];  
    [btn2 addTarget:self action:@selector(btn2Act) forControlEvents:UIControlEventTouchUpInside];  
    [self.view addSubview:btn2];  
}  
实现播放效果
复制代码
-(void)btn1Act {  
      
    [self playSoundEffect:@"alarm.caf"];  
}  
-(void)btn2Act {  
      
    [self playSoundEffect:@"ct-error.caf"];  
}  
  
-(void)playSoundEffect:(NSString *)name{  
    NSString *audioFile=[[NSBundle mainBundle] pathForResource:name ofType:nil];  
    NSURL *fileUrl=[NSURL fileURLWithPath:audioFile];  
    //1.获得系统声音ID  
    SystemSoundID soundID=0;  
    /** 
     * inFileUrl:音频文件url 
     * outSystemSoundID:声音id(此函数会将音效文件加入到系统音频服务中并返回一个长整形ID) 
     */  
    AudioServicesCreateSystemSoundID((__bridge CFURLRef)(fileUrl), &soundID);  
    //如果需要在播放完之后执行某些操作,可以调用如下方法注册一个播放完成回调函数