一、添加音效
一般是比较短的音频,用于手机来电或短信铃声
1、首先引入框架 #import<AudioToolbox/AudioToolbox.h>
2、获取文件路径
NSString *audioFilePath=[[NSBundle mainBundle]pathForResource:[NSString stringWithFormat:@"duanxin.caf"] ofType:nil];
NSURL *url=[NSURL fileURLWithPath:audioFilePath];
3、声音ID 赋初始值
SystemSoundID soundID=0;
4、创建系统声音 获取系统声音ID 和音乐文件链接
AudioServicesCreateSystemSoundID((__bridge CFURLRef _Nonnull)(url), &soundID);
5、播放
AudioServicesPlayAlertSound(soundID);
6、添加播放结束后进入的方法
AudioServicesAddSystemSoundCompletion(soundID, NULL, NULL, playEnd, NULL);
播放结束后进入的方法
void playEnd(SystemSoundID SoundID,void *musicData){
NSLog(@"%i",i);
[[[ViewController alloc]init] viewDidLoad];
}
二、添加播放音乐
1、导入框架 引入头文件
#import <AVFoundation/AVFoundation.h>
1、定义全局变量
@property(nonatomic,strong)AVAudioPlayer *playMusic;
1、初始化,背景音乐 路径(第一个参数是音乐的名字,第二个参数是类型)
NSString *path=[[NSBundle mainBundle]pathForResource:@"斗地主背景音乐" ofType:@"mp3"];
2、将路径字符串转换为url
NSURL *url = [NSURL fileURLWithPath:path];
3、找到路径,初始化音频播放器
_playMusic=[[AVAudioPlayer alloc]initWithContentsOfURL:url error:nil];
4、设置播放器属性,设置循环播放的次数,循环次数为0,播放一次,循环次数为1,播放两次,循环次数为负数时,播放无限循环
[_playMusic setNumberOfLoops:-1];
5、播放之前调用方法,准备播放
[_playMusic prepareToPlay];
6、播放
[_playMusic play];
7、暂停
(1) [_playMusic pause];
(2)[_playMusic stop];
疑问:
不写prepareToPlay方法 音乐也可以播放,是不是可以不写
暂停的两个方法属性介绍一个是暂停一个是停止,但是使用的效果却相同,不知道这两个方法有什么区别