zoukankan      html  css  js  c++  java
  • iOS 系统声音播放

        在iOS中可通过两种方式去播放声音:

                *  播放压缩的声音文件,比如mp3文件,一般使用播放声音中提到的方法,适用于播放时间较长,比如大于30秒,AVAudioPlayer可以提供更多的控制特性,比如暂停等等

                *   播放系统声音,比如翻页的哗啦声,应该使用播放系统声音的方法,因为压缩的声音文件比播放wav等非压缩声音文件在播放前消耗更多的处理器资源,这样的声音还要频繁的播放,而且,因为系统声音文件都较小,一般小于30秒,因此即使压缩格式,也不会节省多少存储空间。

        播放系统声音:首先要导入系统框架 <AudioToolbox/AudioToolbox.h>

                     

       

       播放系统声音,基本思路是:

          * 在播放前,比如控制器初始化阶段,注册系统声音,并保存一个系统声音id

          * 在需要播放系统声音的时候只需调用系统服务的全局方法,传入系统声音id即可

     

     在我们了解了基本思路后,就可以上代码了: 

    + (void)initSystemSoundWithName:(NSString *)soundName SoundType:(NSString *)soundType{
        [ZKAudioToolBox initAudioToolBox];
        if (audioTool) {
            //得到音频路径
            NSString *path=[NSString stringWithFormat:@"/System/Library/Audio/UISounds/%@.%@",soundName,soundType];
            if (path) {
                OSStatus error = AudioServicesCreateSystemSoundID((__bridge CFURLRef)[NSURL fileURLWithPath:path],&audioTool->sound);
                
                if (error != kAudioServicesNoError) {//获取的声音的时候,出现错误
                    audioTool->sound=nil;
                }
                
                //获取自定义的声音
    //            NSString *thesoundFilePath = [[NSBundle mainBundle] pathForResource:soundName ofType:soundType]; //音乐文件路径
    //            CFURLRef thesoundURL = (__bridge CFURLRef)[NSURL fileURLWithPath:thesoundFilePath];
    //            AudioServicesCreateSystemSoundID(thesoundURL, &audioTool->sound);
                
                //开始播放声音
                AudioServicesPlaySystemSound(audioTool->sound);
            }
        }
    }
    

      

      如上就能正常的播放声音了,写成单例的形式,就能便于多个页面调用!!!

  • 相关阅读:
    02-线性结构1 两个有序链表序列的合并
    ScSPM
    中国大学MOOC-陈越、何钦铭-数据结构-笔记
    01-复杂度1 最大子列和问题(剑指offer和PAT)
    Matlab中配置VLFeat
    循环队列实现
    对于利用pca 和 cca 进行fmri激活区识别的理解
    对于利用ica进行fmri激活区识别的理解
    利用spm提供的MoAEpilot听觉数据学习预处理以及单被试glm分析与统计推断
    fsl的feat软件分包使用笔记
  • 原文地址:https://www.cnblogs.com/boyuanmeng/p/4208344.html
Copyright © 2011-2022 走看看