一.音效的播放简单实现
二.音效播放的封装 -- 封装思路:将生成的SystemSoundID存放到字典中,每次播放的时候从字典中取出对应的SystemSoundID,没有的话再创建
- 头文件中定义类方法
- 代码实现
#import "ChaosAudioTool.h"#import
// 类方法中不能用成员属性,所以只能定义全局变量static NSMutableDictionary *_sounds;@implementation ChaosAudioTool// 懒加载字典+ (void)initialize{ _sounds = [NSMutableDictionary dictionary];}+ (void)playAudioWithSoundName:(NSString *)soundName{ if (_sounds[soundName] == nil) { // 先通过字典取,没有的话创建 SystemSoundID soundID = 0; NSURL *url = [[NSBundle mainBundle] URLForResource:soundName withExtension:nil]; AudioServicesCreateSystemSoundID((__bridge CFURLRef _Nonnull)(url), &soundID); // 存入集合 _sounds[soundName] = @(soundID); } AudioServicesPlaySystemSound([_sounds[soundName] unsignedIntValue]);}