ios 短音效的使用

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"];

时间: 2024-12-30 02:21:07

ios 短音效的使用的相关文章

iOS 短信认证

短信验证 现在很多的短信验证平台,我们比较常用的有移动开发者服务平台 根据短信验证文档来集成 1. 找到iOS短信验证的集成开发文档 2. 下载SDK和Demo目录结构  3. 运行Demo 4. 写自己的测试Demo按照文档一步步操作即可. 1. 创建项目 2. 导入SVProgressHUD和SMS_SDK 3. 添加依赖库文件 必要:   libicucore.dylib libz.dylib MessageUI.framework javascriptcore.framework lib

cocos2dx 3.x simpleAudioEngine 长音效被众多短音效打断问题

假设先play长音效a,然后在a播放过程中反复执行:play短音效b,stop b,play b,... 则若a足够长,就会被b打断.而长音效被打断是最不可接受的. a之所以会被打断,推测原因是simpleAudioEngine对音源的管理不善,play b, stop b,再play b这个过程中不是重复使用同一个音源,而是不断新地使用下一个音源,当音源耗尽后又绕回,从而导致把a的音源占用,a被迫停止. 在不动simpleAudioEngine底层的情况下,目前还没有找到好的解决办法,当前项目

ios短信和电话--参考

调用打电话功能 [[UIApplicationsharedApplication] openURL:[NSURL URLWithString:@"tel://10086"]]; 调用发短信功能 [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"sms://10000"]]; 上面的发短信的功能是调用系统的界面,下面是实现一种点击按键就直接发送短信,相当于后台发送,能不能上软件商店,还不能

iOS 播放音效

音效:通俗的说是短音频,音频文件必须满足下面的条件 1.播放的时间不能超过30秒 2.数据必须是 PCM或者IMA4流格式 3.必须被打包成下面三个格式之一:Core Audio Format (.caf), Waveform audio (.wav), 或者 Audio Interchange File (.aiff) 1.引入框架 1 #import <AudioToolbox/AudioToolbox.h> 2.播放音效 1 - (void)touchesEnded:(NSSet *)t

ios短信功能

先介绍一种最简单的方法: 调用打电话功能 [[UIApplicationsharedApplication] openURL:[NSURL URLWithString:@"tel://10086"]]; 调用发短信功能 [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"sms://10000"]]; 上面的发短信的功能是调用系统的界面,下面是实现一种点击按键就直接发送短信,相当于后台发送

iOS 短视频开发总结二 AVCaptureSession

开始录制短视频 录制完成 根据项目需求,对视频URL进行处理 基本原理和方法已经完成,具体细节根据项目实际需求再处理

iOS 短信验证码倒计时按钮的实现

验证码倒计时按钮的应用是非常普遍的,本文介绍了IOS实现验证码倒计时功能,点击获取验证码,进入时间倒计时,感兴趣的小伙伴们可以参考一下: 实现思路: 创建按钮,添加点击方法: 用NSTimer定时器,每秒执行一次,定时改变Button的title,改变Button的样式,设置Button不可点击: 若倒计时结束,定时器关闭,并改变Button的样式,可以点击: 代码如下: 在按钮的点击事件里调用该方法      -(void)openCountdown{ __block NSInteger ti

iOS 短信分享 邮件分享

本地调用短信分享. 1 #import "shareViewController.h" 2 3 @interface shareViewController (){ 4 UIAlertView *mfAlertview;//定义一个弹出框 5 UITextView* txYaoqingma; 6 } 7 8 @end 9 10 @implementation shareViewController 11 12 - (void)viewDidLoad { 13 [super viewDi

iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)

iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角) 2015-04-05 15:25 2482人阅读 评论(1) 收藏 举报开源框架 图像: 1.图片浏览控件MWPhotoBrowser       实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作.      下载:https://github.com/mwaterfall/MWPhotoBrowser目前比较活跃的社区仍旧是Github,