导入框架:

代码:

  1. #import <UIKit/UIKit.h>
  2. #import <AudioToolbox/AudioToolbox.h>
  3. @interface MsgPlaySound : NSObject
  4. {
  5. SystemSoundID sound;//系统声音的id 取值范围为:1000-2000
  6. }
  7. - (id)initSystemShake;//系统 震动
  8. - (id)initSystemSoundWithName:(NSString *)soundName SoundType:(NSString *)soundType;//初始化系统声音
  9. - (void)play;//播放
  10. @end
  1. #import "MsgPlaySound.h"
  2. @implementation MsgPlaySound
  3. - (id)initSystemShake
  4. {
  5. self = [super init];
  6. if (self) {
  7. sound = kSystemSoundID_Vibrate;//震动
  8. }
  9. return self;
  10. }
  11. - (id)initSystemSoundWithName:(NSString *)soundName SoundType:(NSString *)soundType
  12. {
  13. self = [super init];
  14. if (self) {
  15. NSString *path = [NSString stringWithFormat:@"/System/Library/Audio/UISounds/%@.%@",soundName,soundType];
  16. //[[NSBundle bundleWithIdentifier:@"com.apple.UIKit" ]pathForResource:soundName ofType:soundType];//得到苹果框架资源UIKit.framework ,从中取出所要播放的系统声音的路径
  17. //[[NSBundle mainBundle] URLForResource: @"tap" withExtension: @"aif"];  获取自定义的声音
  18. if (path) {
  19. OSStatus error = AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path],&sound);
  20. if (error != kAudioServicesNoError) {//获取的声音的时候,出现错误
  21. sound = nil;
  22. }
  23. }
  24. }
  25. return self;
  26. }
  27. - (void)play
  28. {
  29. AudioServicesPlaySystemSound(sound);
  30. }

apple系统默认声音名称说明:(此说明来自于http://bbs.weiphone.com/read-htm-tid-6262661.html

1.声音格式是MP3或m4r的需要转成caf格式(可先转成aif , aiff,然后修改后缀)
2.路径在/System/Library/Audio/UISounds 里,需要更改的可以根据以下列表进行替换
3详细列表:
信息 
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-----结束录像

其他 
beep-beep.caf--充电、注销及连接电脑 
lock.caf------------锁定手机 
shake.caf---------“这个还没搞清楚” 
unlock.caf--------滑动解锁 
low_power.caf--低电量提示

语音控制 
jbl_ambiguous.caf--找到多个匹配 
jbl_begin.caf------等待用户的输入 
jbl_cancel.caf-----取消 
jbl_confirm.caf----执行 
jbl_no_match.caf---没有找到匹配

日历 
alarm.caf--日历提醒

iPod Touch 1G 
sq_alarm.caf 
sq_beep-beep.caf 
sq_lock.caf 
sq_tock.caf

iOS 之播放系统声音的更多相关文章

  1. OSX/iOS 播放系统声音

    方法1: 系统会自带了些声音,有时候一些操作用必要自己播放一下声音提醒一下,用bash的直接say something就ok了,写代码的时候呢?原来很简单的,一句: [[NSSound soundNa ...

  2. iOS播放系统声音和震动

    在需要声音的类的.h文件中添加     #import <AudioToolbox/AudioToolbox.h>static SystemSoundID shake_sound_male ...

  3. iOS 实现后台 播放音乐声音 AVAudioPlayer 以及铃声设置(循环播放震动)

    1.步骤一:在Info.plist中,添加"Required background modes"键,value为:App plays audio 或者: 步骤二: - (BOOL) ...

  4. iOS系统声音服务(System Sound Services)

    系统声音服务(System Sound Services)提供了一个接口,用于播放不超过30秒的声音.它支持的文件格式有限,具体地说只有CAF.AIF和使用PCM或IMA/ADPCM数据的WAV文件. ...

  5. ios开发——实用技术篇Swift篇&系统声音

    系统声音 // MARK: - 系统声音 /*----- 系统声音 ------*/ @IBAction func systemSound() { //建立的SystemSoundID对象 var s ...

  6. iOS调用系统声音与振动

    如何调用系统声音?[iphone 调用系统铃声与震动功能] 首先要在工程里加入Audio Toolbox framework这个库,然后在需要调用的文件里#import <AudioToolbo ...

  7. iOS 接收新消息通知调用系统声音 震动

    添加系统框架: #import <AudioToolbox/AudioToolbox.h> 调用震动代码: AudioServicesPlaySystemSound(kSystemSoun ...

  8. iOS系统声音列表

    iOS系统声音列表 效果 说明 1. 点击cell就能发出声音 2. 只需要给出声音编号,就可以,非常简单易用 源码 https://github.com/YouXianMing/iOS-Utilit ...

  9. iOS AVAudioPlayer播放音频时声音太小

    iOS AVAudioPlayer播放音频时声音太小 //引入AVFoundation类库,设置播放模式就可以了 do { try AVAudioSession.sharedInstance().ov ...

随机推荐

  1. [置顶] android利用jni调用第三方库——第二篇——编写库android程序直接调用第三方库libhello.so

    0:前言 1:本文主要作为丙方android公司的身份来写 2:作者有不对的地方,请指出,谢谢 [第一篇:android利用jni调用第三方库——编写库libhello.so] [第二篇:androi ...

  2. Introduction the naive“scull” 《linux设备驱动》 学习笔记

    Introduction the naive "scull" 首先.什么是scull? scull (Simple Character Utility for Loading Lo ...

  3. 怎样通过css的media属性,适配不同分辨率的终端设备?

    怎样通过css的media属性,适配不同分辨率的终端设备,示比例如以下: <!DOCTYPE html> <html> <head> <title>首页 ...

  4. C++中的随机数函数(

    标签:ul 随机数 c 整数 max 教育  C++中产生随机数种子对于刚開始学习的人一直都非常困惑.大家知道,在C中有专门的srand(N)函数能够轻松实现这一功能,然而在C++中则要复杂一些.以下 ...

  5. java 设计模式初探之适配器模式

    1. 概述 将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作. 2. 解决的问题 即Adapter模式使得原本由于接口不兼容而不 ...

  6. C# 微信公众平台开发(1)-- 服务器配置

    题记:最近公司需要开发微信服务号,由本人负责,以前虽然听过微信开发,但并没有认真的去了解,项目开发中,也边看文档边开发,记录自己的项目开发经验: 1.注册帐号--填写服务器配置 在https://mp ...

  7. TOJ 1139.Compromise

    2015-06-03 问题简述: 大概就是输入两段文本(用小写英文字母表示),分别用#表示一段话的结束输入,输出这两个文本的最长公共子序列. 简单的LCS问题,但是输入的是一段话了,而且公共部分比较是 ...

  8. MySql级联操作

    转自:http://blog.csdn.net/codeforme/article/details/5539454 外键约束对子表的含义:       如果在父表中找不到候选键,则不允许在子表上进行i ...

  9. .NET(C#):XmlReader和Whitespace以及MoveToContent和ReadToFollowing方法

    原文 http://www.cnblogs.com/mgen/archive/2012/04/26/2471403.html XmlReader默认是读取XML文件中的Whitespace和注释的. ...

  10. rsyslog 日志归类思路--根据syslog local5 nginx-zjzc01;

    Aug 5 16:36:12 jrhwpt01 nginx-zjzc01: www.zjcap.cn 10.252.105.157 10.171.246.184 [05/Aug/2016:16:36: ...