美文网首页
iOS 音频(二) - System Sound Service

iOS 音频(二) - System Sound Service

作者: 搬砖的crystal | 来源:发表于2023-02-18 10:46 被阅读0次
    1.简介

    系统声音服务(System Sound Services)提供了一个接口,用于播放不超过 30 秒的声音。它支持的文件格式有限,具体地说只有 CAFAIF 和使用 PCMIMA/ADPCM 数据的 WAV 文件。不能操纵声音和控制音量。

    iOS 系统声音服务支持三种类型通知:
    (1)声音:立刻播放一个简单的声音文件。如果手机被设置为静音,用户什么也听不到
    (2)提醒:播放一个声音文件,如果手机被设置为静音或震动,将通过震动提醒用户
    (3)震动:震动手机,而不考虑其他设置

    2.使用

    要在项目中使用系统声音服务,首先在自己的工程中添加 AudioToolbox.framework 库,在 .m 文件中添加头文件导入 AudioToolbox.h

    #import <AudioToolbox/AudioToolbox.h>
    

    系统声音服务并非是通过类实现的,而是使用传统的 C 语言函数调用来触发播放操作。要播放音频,需要使用的两个函数是 AudioServicesCreateSystemSoundIDAudioServicesPlaySystemSound。还需要声明一个类型为 SystemSoundID 的变量,它表示要使用的声音文件。

    //导入头文件
    #import <AudioToolbox/AudioToolbox.h>
    
    /**
     播放声音
     */
    - (void)playSystemSound {
        AudioServicesPlaySystemSound(self.soundID);
    }
    
    /**
     播放声音 提醒
     */
    - (void)playAlertSound {
        AudioServicesPlayAlertSound(self.soundID);
    }
    
    /**
     震动
     */
    - (void)playShakeSound {
        AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
    }
    
    /**
     自定义声音
     */
    - (SystemSoundID)soundID {
        if (!_soundID) {
            NSString *soundFile = [[NSBundle mainBundle] pathForResource:@"sound" ofType:@"wav"];
            NSURL *url = [NSURL fileURLWithPath:soundFile];
            AudioServicesCreateSystemSoundID((__bridge CFURLRef)url, &_soundID);
        }
        return _soundID;
    }
    
    /**
     系统声音
     */
    当参数为 1000-2000 之间数字时就是播放系统声音。
    AudioServicesPlaySystemSound(参数);
    

    相关文章

      网友评论

          本文标题:iOS 音频(二) - System Sound Service

          本文链接:https://www.haomeiwen.com/subject/duzmkdtx.html