ios-播放音效的简单实现

大家应该都有玩过斗地主吧,斗地主其实里面你出A,什么K啊之类的牌其实就是会播放音效,其实就是一种音效效果,音效播放最大时长不能超过30S,苹果有写的,还有就是这个音频支持的格式为:CAF、AIF和使用PCM或IMA-ADPCM数据的WAV文件,其中CAF格式和AIF格式都是苹果公司自己开发的。而PCM和IMA-ADPCM是一种编码方式。

具体的实现步骤,其实应用起来比较简单,我们其实只需要去导入AVFoundation框架,然后去创建音效文件,然后再去播放音效文件就可以了。

简单说下SoundID其实就是音效的ID,音效的播放和销毁都需要用到它

ios9新增的在播放完音效之后可以带有回调的方法

 AudioServicesPlayAlertSoundWithCompletion([self loadSoundIDWithURL:url], ^{
       
        NSLog(@"---------");
    });
具体实现,首先创建音效文件的话,一般是从本地去读取文件,然后去播放,具体代码如下所示

 //1、创建URL地址
    NSURL * url = [[NSBundle mainBundle]URLForResource:@"bu.wav" withExtension:nil];
    //2、设置系统的音效文件
    SystemSoundID soundID;
    
    //3、创建音效文件
    AudioServicesCreateSystemSoundID((__bridge CFURLRef _Nonnull)(url), &soundID);
    
    //4、播放音效文件,带振动的播放
    AudioServicesPlayAlertSound(soundID);
    
    
    //如果是不带振动的话那就是
    AudioServicesPlaySystemSound(soundID);
    
    //5、不需要播放了,就去释放音效所占用的内存
    //AudioServicesDisposeSystemSoundID(soundID);

还有就是有的时候音效我们可能需要各个控制器都需要使用的,我们最好去抽取一个工具类出来,然后再去调用方法。比如说我们可以在工具类中写能直接传入URL就可以分别播放带振动和不带振动的音效的方法,以及清除音效文件缓存的方法,等等操作。

还有需要注意的是我们这里使用上面的这种方式只是适合播放提示或者警告的短的音频。长音频肯定不适合,毕竟最长30s。不能控制播放的进度,没有提供控制音量的功能。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值