1.AudioToolbox概述
通过AudioToolbox框架,可以将短声音注册到system sound服务上,被注册到system sound服务上的声音称之为 system sounds。它必须满足下面几个条件。
(1).播放的时间不能超过30秒
(2).数据必须是 PCM或者IMA4流格式
(3).必须被打包成下面三个格式之一:Core Audio Format (.caf), Waveform audio (.wav), 或者 Audio Interchange File (.aiff) 声音文件必须放到设备的本地文件夹下面。通过AudioServicesCreateSystemSoundID方法注册这个声音文件.
2.AudioToolbox使用
2.1 回调函数
void _systemSoundDidComplete(SystemSoundID ssID, void *clientData) {
AudioServicesDisposeSystemSoundID(ssID);
}
2.2 注册以及播放声音
- (void)playClick {
NSString *sndPath = [[NSBundle mainBundle] pathForResource:@"click" ofType:@"wav"];
CFURLRef baseURL = (CFURLRef)CFBridgingRetain([NSURL fileURLWithPath:sndPath]);
SystemSoundID sysSound;
AudioServicesCreateSystemSoundID(baseURL, &sysSound);
CFRelease(baseURL);
AudioServicesAddSystemSoundCompletion(sysSound, NULL, NULL, _systemSoundDidComplete, NULL);
AudioServicesPlaySystemSound(sysSound);
}