在iOS中,音效我们是使用AudioToolbox.framework框架实现。
将短音频注册到系统声音服务(SystemSoundService), 音效框架,导入AudioToolbox.framework框架,添加头文件:
#import <AudioToolbox/AudioToolbox.h>
AudioToolbox.framework框架是一套基于C语言的框架
它的实现原理是将短音频注册到系统声音服务(SystemSoundService)
void soundCompleteCallBack(SystemSoundID soundID, void *clientData) { NSLog(@"播放完成"); } - (void)playSoundEffect:(NSString *)name { //获取音效文件路径 NSString *filePath = [[NSBundle mainBundle] pathForResource:name ofType:nil]; //创建音效文件URL NSURL *fileUrl = [NSURL URLWithString:filePath]; //音效声音的唯一标示ID SystemSoundID soundID = 0; //将音效加入到系统音效服务中,NSURL需要桥接成CFURLRef,会返回一个长整形ID,用来做音效的唯一标示 AudioServicesCreateSystemSoundID((__bridge CFURLRef)(fileUrl), &soundID); //设置音效播放完成后的回调C语言函数 AudioServicesAddSystemSoundCompletion(soundID,NULL,NULL,soundCompleteCallBack,NULL); //开始播放音效 AudioServicesPlaySystemSound(soundID); }