ios 短音效的使用
2024-08-29 12:54:10
1.通用短音效ID的获取
#import <Foundation/Foundation.h> @interface MJAudioTool : NSObject /**
* 播放音效
*
* @param filename 音效文件名
*/
+ (void)playSound:(NSString *)filename; /**
* 销毁音效
*
* @param filename 音效文件名
*/
+ (void)disposeSound:(NSString *)filename;
@end
#import "MJAudioTool.h"
#import <AVFoundation/AVFoundation.h> @implementation MJAudioTool // 字典: filename作为key, soundID作为value
// 存放所有的音频ID
static NSMutableDictionary *_soundIDDict;
+ (void)initialize
{
_soundIDDict = [NSMutableDictionary dictionary];
} + (void)playSound:(NSString *)filename
{
if (!filename) return; // 1.从字典中取出soundID
SystemSoundID soundID = [_soundIDDict[filename] unsignedLongValue];
if (!soundID) { // 创建
// 加载音效文件
NSURL *url = [[NSBundle mainBundle] URLForResource:filename withExtension:nil]; if (!url) return; // 创建音效ID
AudioServicesCreateSystemSoundID((__bridge CFURLRef)url, &soundID); // 放入字典
_soundIDDict[filename] = @(soundID);
} // 2.播放
AudioServicesPlaySystemSound(soundID);
} + (void)disposeSound:(NSString *)filename
{
if (!filename) return; SystemSoundID soundID = [_soundIDDict[filename] unsignedLongValue];
if (soundID) {
// 销毁音效ID
AudioServicesDisposeSystemSoundID(soundID); // 从字典中移除
[_soundIDDict removeObjectForKey:filename];
}
} @end
2.通用方法的使用
[MJAudioTool playSound:@"buyao.wav"];
最新文章
- 2017年1月1日 java学习第二天复习
- 查看Android应用签名信息
- Android ADB server didn&#39;t ACK * failed to start daemon * 简单有效的解决方案
- 谷歌三大核心技术(三)Google BigTable中文版
- The JSR-133 Cookbook for Compiler Writers(an unofficial guide to implementing the new JMM)
- 利用jink调试程序,时间不准的解决办法
- [Spark] - SparkCore程序优化总结
- cuda内存总结
- NameError: name &#39;messagebox&#39; is not defined 错误处理
- 理解性能的奥秘——应用程序中慢,SSMS中快(3)——不总是参数嗅探的错
- UNIX网络编程——通用套接字选项
- http://zaojiasys.jianshe99.com 建造师数据泄漏,可以查看全部所有人的信息!
- 更改/var/log/messages默认权限
- [Maven]Maven如何得到单独的单元测试报告
- Spark性能优化【OOM】
- Vue的介绍及基础指令
- 七周七语言之Ruby
- 几个OOD概念
- error.jsp错误页面跳转,统一异常处理
- [K8S]kubeadm国内镜像安装方式