-
播放&停止播放系统声音代码,播放一次,但不会循环播放
#import <AudioToolbox/AudioToolbox.h>
// 播放 以声音编号1007举例
AudioServicesPlaySystemSound(1007);
// 停止播放
AudioServicesRemoveSystemSoundCompletion(1007);
-
震动代码
// 震动 前提是你的iphone设置了允许震动
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
// 停止震动
AudioServicesRemoveSystemSoundCompletion(kSystemSoundID_Vibrate);
-
常见的几个声音
信息
ReceivedMessage.caf--收到信息,仅在短信界面打开时播放。
sms-received1.caf-------三全音
sms-received2.caf-------管钟琴
sms-received3.caf-------玻璃
sms-received4.caf-------圆号
sms-received5.caf-------铃声
sms-received6.caf-------电子乐
SentMessage.caf--------发送信息
邮件
mail-sent.caf----发送邮件
new-mail.caf-----收到新邮件
电话
dtmf-0.caf----------拨号面板0按键
dtmf-1.caf----------拨号面板1按键
dtmf-2.caf----------拨号面板2按键
dtmf-3.caf----------拨号面板3按键
dtmf-4.caf----------拨号面板4按键
dtmf-5.caf----------拨号面板5按键
dtmf-6.caf----------拨号面板6按键
dtmf-7.caf----------拨号面板7按键
dtmf-8.caf----------拨号面板8按键
dtmf-9.caf----------拨号面板9按键
dtmf-pound.caf---拨号面板#按键
dtmf-star.caf------拨号面板*按键
Voicemail.caf-----新语音邮件
输入设备声音提示
Tock.caf-----------------------点击键盘
begin_record.caf-----------开始录音
begin_video_record.caf--开始录像
photoShutter.caf------------快门声
end_record.caf--------------结束录音
end_video_record.caf-----结束录像
-
具体的编号 请参照网址
http://iphonedevwiki.net/index.php/AudioServices
-
播放自定义声音
首先把你下载好的声音文件拖入你的工程
下面贴出代码
@interface Tools : NSObject
/**
播放系统来电声音
@param name 文件名
@param type 文件类型
@param isAlert 是否伴随震动
*/
+ (SystemSoundID)playSystemSoundWithName:(NSString *)name type:(NSString *)type isAlert:(BOOL)isAlert;
// 停止播放来电声音
+ (void)stopPlaySystemSound:(SystemSoundID)soundID;
@end
@implementation Tools
+ (SystemSoundID)playSystemSoundWithName:(NSString *)name type:(NSString *)type isAlert:(BOOL)isAlert {
// 获取文件路径
NSString *filePath = [[NSBundle mainBundle] pathForResource:name ofType:type];
// 加载音效文件,得到对应的音效ID
SystemSoundID soundID = 0;
AudioServicesCreateSystemSoundID((__bridge CFURLRef _Nonnull)[NSURL fileURLWithPath:filePath], &soundID);
// 播放音效
if (isAlert) {
AudioServicesPlayAlertSound(soundID);
} else {
AudioServicesPlaySystemSound(soundID);
}
return soundID;
}
+ (void)stopPlaySystemSound:(SystemSoundID)soundID {
//把需要销毁的音效文件的ID传递给它既可销毁
AudioServicesDisposeSystemSoundID(soundID);
}
@end
// 比如我这里的文件是voip_call.caf
[Tools playSystemSoundWithName:@"voip_call" type:@"caf" isAlert:YES];