iOS 音频(二) - System Sound Service

2023-02-18  本文已影响0人  搬砖的crystal
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(参数);
上一篇下一篇

猜你喜欢

热点阅读