iOS音效
来源:互联网 发布:淘宝美工字体 编辑:程序博客网 时间:2024/04/29 08:53
//1. 获取音频文件的URL地址/** 提供工具类方法, 传入文件名及是否需要振动*/+ (void)playSoundWithName:(NSString *)name alert:(BOOL)alert{ /** 1. 以name为Key, SoundID为Value 2. 先判断缓存字典对一个的Value是否有值 --> soundID == 0 就代表没有值/没有缓存 3. 没有值就创建, 有的话直接播放 */ //1. 获取缓存的SoundID值 SystemSoundID soundID = [_cacheDict[name] unsignedIntValue]; //2. 如果SoundID为0, 就需要创建 if (soundID == 0) { //3.1 URL地址 --> 音频文件地址 NSURL *url = [[NSBundle mainBundle] URLForResource:name withExtension:nil]; //3.2 创建SystemSoundID //传入URL只会, 会和SoundID进行绑定. 之后需要播放的时候, 只需要调用SoundID, 就能找到对应的URL地址 AudioServicesCreateSystemSoundID((__bridge CFURLRef _Nonnull)(url), &soundID); //3.3 将soundID和URL添加到缓存字典中 _cacheDict[name] = @(soundID); } //4. 播放音效 if (alert) { AudioServicesPlayAlertSound(soundID); } else { AudioServicesPlaySystemSound(soundID); } }/** 释放音效文件, 避免内存占用过大*/+ (void)clearMemory{ /** 1. 遍历缓存池, 获取SoundID, 清除SoundID的内存 2. 清除缓存字典 */ //1. 清除SoundID的内存 [_cacheDict enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) { SystemSoundID soundID = [obj unsignedIntValue]; AudioServicesDisposeSystemSoundID(soundID); }]; //2. 清除缓存字典 [_cacheDict removeAllObjects];}
阅读全文
0 0
- iOS音效
- IOS音效播放 添加音效
- ios音效,语音
- 播放ios系统音效
- IOS----播放音效
- iOS 播放音效
- iOS 之音效播放
- 播放音效 iOS
- iOS - 音效 AudioToolbox.framework
- iOS 播放音效
- iOS自定义推送音效
- iOS 播放音效
- iOS 声音和音效
- IOS 播放音效
- 关于iOS音效问题
- IOS中音效播放
- iOS 简单播放音效
- iOS 播放系统音效
- SpringCloud(第 021 篇)Zuul 的过滤器 ZuulFilter 的使用
- 用堆栈实现二进制的转化
- 指针数组和数组指针之个人见解
- maven jdk1.8版本报错
- vsftp 问题集合
- iOS音效
- component设计模式
- HNU OJ题库 1006G日历问题
- Effective STL学习笔记-条款20
- BZOJ 1036 [ZJOI 2008] 树链剖分 解题报告
- 单机任务重试机制——重启不丢任务
- A. Odds and Ends
- Bootstrap插件(八)——轮播(Carousel.js)
- MNIST和softmax回归(softmax regression)