前言
extern void AudioServicesPlayAlertSound(SystemSoundID inSystemSoundID) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_2_0);
@available(iOS 2.0, *) public func AudioServicesPlayAlertSound(inSystemSoundID: SystemSoundID)
系统声音服务(System Sound Services)提供了一个接口,用于播放不超过 30 秒的声音。它支持的文件格式有限,具体地说只有 CAF、AIF 和使用 PCM 或 IMA/ADPCM 数据的 WAV 文件。由于这些函数没有提供操纵声音和控制音量的功能,所以当你为多媒体或者游戏创建专门的配乐时,不要使用系统声音服务。
-
iOS 使用系统声音服务来支持三种不同的通知:
- 1、声音:立刻播放一个简单的声音文件。如果手机被设置为静音,用户什么也听不到。
- 2、提醒:播放一个声音文件,如果手机被设置为静音或震动,将通过震动提醒用户。
- 3、震动:震动手机,而不考虑其他设置。
-
短频音效播放(系统提示音):
- 添加库文件:AudioToolbox.framework
- 包含头文件:#import <AudioToolbox/AudioToolbox.h>
1、短频音效播放
-
Objective-C
// 添加库文件:AudioToolbox.framework
// 包含头文件:#import <AudioToolbox/AudioToolbox.h> // 声明要保存音效文件的变量
SystemSoundID soundID; // 加载文件
NSURL *fileURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"音效" ofType:@"caf"]];
AudioServicesCreateSystemSoundID((__bridge CFURLRef)(fileURL), &soundID); // 播放短频音效
AudioServicesPlayAlertSound(soundID); // 增加震动效果,如果手机处于静音状态,提醒音将自动触发震动
AudioServicesPlayAlertSound(kSystemSoundID_Vibrate); -
Swift
// 添加库文件:AudioToolbox.framework
// 包含头文件:import AudioToolbox // 声明要保存音效文件的变量
var soundID:SystemSoundID = 0 // 加载文件
let fileUrl = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("音效", ofType: "caf")!)
AudioServicesCreateSystemSoundID(fileUrl, &soundID) // 播放短频音效
AudioServicesPlayAlertSound(soundID) // 增加震动效果,如果手机处于静音状态,提醒音将自动触发震动
AudioServicesPlayAlertSound(SystemSoundID(kSystemSoundID_Vibrate));