之前写过一篇播放音乐的,这次来是是实现简单的音频警告。
有时候,我们需要播放一些音频警告来通知用户,提醒用户。
首先我们找一个警告的音频,音频格式只能是AIFF,CAF,WAV几种。
1)将音频格式的路径转换成一个CFURLRef
NSString * path = [[NSBundlemainBundle]
pathForResource:@"warn"ofType:@"wav"];
NSURL *url = [[NSURLalloc]
initFileURLWithPath:path];
CFURLRef urlRef = (CFURLRef) url;
2)“授权”,允许应用程序指定一个音频文件播放系统声音
AudioServicesCreateSystemSoundID(urlRef, &mySoundID);
3)属性设置
初始化一些音频属性值:
SystemSoundID mySoundID = 0;
AudioServicesPropertyID flag = 1;
说明:
flag的取值0和1.对后面的设置是有影响的。
kAudioServicesPropertyIsUISound和kAudioServicesPropertyCompletePlaybackIfAppDies与flag的取值有关。大概就是取0时表示如果正在播放其它音乐,不会终止正在播放的其它音乐,两个声音一起播放。
为1示如果正在播放音乐,则先终止一下音乐,再播放铃音,之后再恢复音乐的播放
设置的第一种方法:
AudioServicesSetProperty(kAudioServicesPropertyIsUISound, sizeof(SystemSoundID),
&mySoundID, sizeof(AudioServicesPropertyID), &flag);
设置的二种方法:
AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryDefaultToSpeaker,sizeof(AudioServicesPropertyID),
&flag);
最后播放
AudioServicesPlayAlertSound(mySoundID);
OK,通过上面几步,就可以自定义通过系统播放警告音了。
其实,对AudioServicesSetProperty和AudioSessionSetProperty这两种设置方法,有什么区别暂时还不是很清楚。
哪位知道的话可以留言说明下,嘻嘻