iOS 音频(二) - System Sound Service 系统声音服务

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(参数);
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容