iOS系统声音列表
iOS系统声音列表

效果

说明
1. 点击cell就能发出声音
2. 只需要给出声音编号,就可以,非常简单易用
源码
https://github.com/YouXianMing/iOS-Utilities
//
// SystemSound.h
// SystemSound
//
// Created by YouXianMing on 15/8/24.
// Copyright (c) 2015年 YouXianMing. All rights reserved.
// #import <Foundation/Foundation.h>
#import "SoundInfomation.h" @interface SystemSound : NSObject /**
* 获取系统消息列表
*/
+ (void)accessSystemSoundsList; /**
* 系统声音的列表
*
* @return SoundInfomation对象数组
*/
+ (NSArray *)systemSounds; /**
* 播放声音
*
* @param sound 声音
*/
+ (void)playWithSound:(SoundInfomation *)sound; /**
* 根据声音ID号播放声音
*
* @param soundID 声音ID号码
*/
+ (void)playWithSoundID:(UInt32)soundID; @end
//
// SystemSound.m
// SystemSound
//
// Created by YouXianMing on 15/8/24.
// Copyright (c) 2015年 YouXianMing. All rights reserved.
// #import "SystemSound.h"
#import <AudioToolbox/AudioToolbox.h> static NSMutableArray *_systemSounds = nil; @implementation SystemSound + (void)accessSystemSoundsList { static dispatch_once_t predicate; dispatch_once(&predicate, ^{ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, ), ^{ NSMutableArray *audioFileList = [NSMutableArray array];
_systemSounds = [NSMutableArray array]; // 读取文件系统
NSFileManager *fileManager = [[NSFileManager alloc] init];
NSURL *directoryURL = [NSURL URLWithString:@"/System/Library/Audio/UISounds"];
NSArray *keys = [NSArray arrayWithObject:NSURLIsDirectoryKey]; NSDirectoryEnumerator *enumerator = [fileManager enumeratorAtURL:directoryURL
includingPropertiesForKeys:keys
options:
errorHandler:^(NSURL *url, NSError *error) {
return YES;
}]; for (NSURL *url in enumerator) { NSError *error;
NSNumber *isDirectory = nil;
if (! [url getResourceValue:&isDirectory forKey:NSURLIsDirectoryKey error:&error]) { } else if (![isDirectory boolValue]) { [audioFileList addObject:url]; SystemSoundID soundID;
AudioServicesCreateSystemSoundID((__bridge_retained CFURLRef)url, &soundID); SoundInfomation *sound = [[SoundInfomation alloc] init];
sound.soundID = soundID;
sound.soundUrl = url;
sound.soundName = url.lastPathComponent; [_systemSounds addObject:sound];
}
} // 读取文件
NSString *path = [[NSBundle mainBundle] pathForResource:@"SystemSoundList" ofType:nil];
NSData *data = [[NSData alloc] initWithContentsOfFile:path]; NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSArray *array = [string componentsSeparatedByString:@"\n"]; for (int i = ; i < array.count; i++) { NSString *tmp = array[i]; NSArray *soundInfo = [tmp componentsSeparatedByString:@"\t"];
SoundInfomation *sound = [[SoundInfomation alloc] init]; sound.soundID = (unsigned int)[soundInfo[] integerValue];
sound.soundName = soundInfo[];
[_systemSounds addObject:sound];
}
});
});
} + (NSArray *)systemSounds { return _systemSounds;
} + (void)playWithSound:(SoundInfomation *)sound { AudioServicesPlaySystemSound(sound.soundID);
} + (void)playWithSoundID:(UInt32)soundID { AudioServicesPlaySystemSound(soundID);
} @end
//
// SoundInfomation.h
// SystemSound
//
// Created by YouXianMing on 15/8/24.
// Copyright (c) 2015年 YouXianMing. All rights reserved.
// #import <Foundation/Foundation.h> @interface SoundInfomation : NSObject /**
* 系统声音编号(必须有)
*/
@property (nonatomic) UInt32 soundID; /**
* 系统声音地址
*/
@property (nonatomic, strong) NSURL *soundUrl; /**
* 声音的名字
*/
@property (nonatomic, strong) NSString *soundName; @end
//
// SoundInfomation.m
// SystemSound
//
// Created by YouXianMing on 15/8/24.
// Copyright (c) 2015年 YouXianMing. All rights reserved.
// #import "SoundInfomation.h" @implementation SoundInfomation @end
new-mail.caf MailReceived
mail-sent.caf MailSent
Voicemail.caf VoicemailReceived
ReceivedMessage.caf SMSReceived
SentMessage.caf SMSSent
alarm.caf CalendarAlert
low_power.caf LowPower
sms-received1.caf SMSReceived_Alert
sms-received2.caf SMSReceived_Alert
sms-received3.caf SMSReceived_Alert
sms-received4.caf SMSReceived_Alert
- SMSReceived_Vibrate
sms-received1.caf SMSReceived_Alert
sms-received5.caf SMSReceived_Alert
sms-received6.caf SMSReceived_Alert
Voicemail.caf -
tweet_sent.caf SMSSent
Anticipate.caf SMSReceived_Alert
Bloom.caf SMSReceived_Alert
Calypso.caf SMSReceived_Alert
Choo_Choo.caf SMSReceived_Alert
Descent.caf SMSReceived_Alert
Fanfare.caf SMSReceived_Alert
Ladder.caf SMSReceived_Alert
Minuet.caf SMSReceived_Alert
News_Flash.caf SMSReceived_Alert
Noir.caf SMSReceived_Alert
Sherwood_Forest.caf SMSReceived_Alert
Spell.caf SMSReceived_Alert
Suspense.caf SMSReceived_Alert
Telegraph.caf SMSReceived_Alert
Tiptoes.caf SMSReceived_Alert
Typewriters.caf SMSReceived_Alert
Update.caf SMSReceived_Alert
ussd.caf USSDAlert
SIMToolkitCallDropped.caf SIMToolkitTone
SIMToolkitGeneralBeep.caf SIMToolkitTone
SIMToolkitNegativeACK.caf SIMToolkitTone
SIMToolkitPositiveACK.caf SIMToolkitTone
SIMToolkitSMS.caf SIMToolkitTone
Tink.caf PINKeyPressed
ct-busy.caf AudioToneBusy
ct-congestion.caf AudioToneCongestion
ct-path-ack.caf AudioTonePathAcknowledge
ct-error.caf AudioToneError
ct-call-waiting.caf AudioToneCallWaiting
ct-keytone2.caf AudioToneKey2
lock.caf ScreenLocked
unlock.caf ScreenUnlocked
- FailedUnlock
Tink.caf KeyPressed
Tock.caf KeyPressed
Tock.caf KeyPressed
beep-beep.caf ConnectedToPower
RingerChanged.caf RingerSwitchIndication
photoShutter.caf CameraShutter
shake.caf ShakeToShuffle
jbl_begin.caf JBL_Begin
jbl_confirm.caf JBL_Confirm
jbl_cancel.caf JBL_Cancel
begin_record.caf BeginRecording
end_record.caf EndRecording
jbl_ambiguous.caf JBL_Ambiguous
jbl_no_match.caf JBL_NoMatch
begin_video_record.caf BeginVideoRecording
end_video_record.caf EndVideoRecording
vc~invitation-accepted.caf VCInvitationAccepted
vc~ringing.caf VCRinging
vc~ended.caf VCEnded
ct-call-waiting.caf VCCallWaiting
vc~ringing.caf VCCallUpgrade
dtmf-.caf TouchTone
dtmf-.caf TouchTone
dtmf-.caf TouchTone
dtmf-.caf TouchTone
dtmf-.caf TouchTone
dtmf-.caf TouchTone
dtmf-.caf TouchTone
dtmf-.caf TouchTone
dtmf-.caf TouchTone
dtmf-.caf TouchTone
dtmf-star.caf TouchTone
dtmf-pound.caf TouchTone
long_low_short_high.caf Headset_StartCall
short_double_high.caf Headset_Redial
short_low_high.caf Headset_AnswerCall
short_double_low.caf Headset_EndCall
short_double_low.caf Headset_CallWaitingActions
middle_9_short_double_low.caf Headset_TransitionEnd
Voicemail.caf SystemSoundPreview
ReceivedMessage.caf SystemSoundPreview
new-mail.caf SystemSoundPreview
mail-sent.caf SystemSoundPreview
alarm.caf SystemSoundPreview
lock.caf SystemSoundPreview
Tock.caf KeyPressClickPreview
sms-received1.caf SMSReceived_Selection
sms-received2.caf SMSReceived_Selection
sms-received3.caf SMSReceived_Selection
sms-received4.caf SMSReceived_Selection
- SMSReceived_Vibrate
sms-received1.caf SMSReceived_Selection
sms-received5.caf SMSReceived_Selection
sms-received6.caf SMSReceived_Selection
Voicemail.caf SystemSoundPreview
Anticipate.caf SMSReceived_Selection
Bloom.caf SMSReceived_Selection
Calypso.caf SMSReceived_Selection
Choo_Choo.caf SMSReceived_Selection
Descent.caf SMSReceived_Selection
Fanfare.caf SMSReceived_Selection
Ladder.caf SMSReceived_Selection
Minuet.caf SMSReceived_Selection
News_Flash.caf SMSReceived_Selection
Noir.caf SMSReceived_Selection
Sherwood_Forest.caf SMSReceived_Selection
Spell.caf SMSReceived_Selection
Suspense.caf SMSReceived_Selection
Telegraph.caf SMSReceived_Selection
Tiptoes.caf SMSReceived_Selection
Typewriters.caf SMSReceived_Selection
Update.caf SMSReceived_Selection
- RingerVibeChanged
- SilentVibeChanged
- Vibrate
iOS系统声音列表的更多相关文章
- iOS系统声音服务(System Sound Services)
系统声音服务(System Sound Services)提供了一个接口,用于播放不超过30秒的声音.它支持的文件格式有限,具体地说只有CAF.AIF和使用PCM或IMA/ADPCM数据的WAV文件. ...
- iOS 之播放系统声音
导入框架: 代码: #import <UIKit/UIKit.h> #import <AudioToolbox/AudioToolbox.h> @interface MsgPl ...
- IOS调用系统声音(键盘声音)
#import <AudioToolbox/AudioToolbox.h> AudioServicesPlaySystemSound(1106); 注:括号中为系统声音的id,详见 htt ...
- ios开发——实用技术篇Swift篇&系统声音
系统声音 // MARK: - 系统声音 /*----- 系统声音 ------*/ @IBAction func systemSound() { //建立的SystemSoundID对象 var s ...
- iOS调用系统声音与振动
如何调用系统声音?[iphone 调用系统铃声与震动功能] 首先要在工程里加入Audio Toolbox framework这个库,然后在需要调用的文件里#import <AudioToolbo ...
- iOS 接收新消息通知调用系统声音 震动
添加系统框架: #import <AudioToolbox/AudioToolbox.h> 调用震动代码: AudioServicesPlaySystemSound(kSystemSoun ...
- 深入了解ios系统机制
1.什么叫ios? ios一般指ios(Apple公司的移动操作系统) . 苹果iOS是由苹果公司开发的移动操作系统.苹果公司最早于2007年1月9日的Macworld大会 ...
- iOS系统层次架构
本文转自:http://blog.csdn.net/lxl_815520/article/details/51172917 一,概述 iOS的系统架构分为四个层次:核心操作系统层(Core OS la ...
- ios系统提示音的使用(不是铃声)
AudioServices Jump to: navigation, search AudioServices is a group of C functions in AudioToolbox fo ...
随机推荐
- koa2开发入门
一.koa2入门 1.创建koa2工程 首先,我们创建一个目录hello-koa并作为工程目录用VS Code打开.然后,我们创建app.js,输入以下代码: // 导入koa,和koa 1.x不同, ...
- Memcached理解笔记1---安装&常规错误&监控
一.下载 1.Libevent 简单的说就是一个事件触发的网络库,Memcached离不开它. wget http://cloud.github.com/downloads/libevent/libe ...
- 彻底解决springMVC中文乱码
一.页面编码 <%@ page contentType="text/html;charset=UTF-8" language="java" %> & ...
- Window环境配置Mongodb
Mongodb这几天也了解了一下,今天配置了下环境,从今天开始学下Mongodb数据库. 一.下载 在这个网址中选择要下载的开发环境https://www.mongodb.com/download-c ...
- ubuntu18---安装python3.6下的virtualenv15.1.0
动态语言Python有着自己的虚拟环境,虚拟环境是程序执行时的独立执行环境,在同一台服务器中可以创建不同的虚拟环境供不同的系统使用,项目之间的运行环境保持独立性而相互不受影响.例如项目A可以在基于Py ...
- cordova打包APK,SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode ...
javascript 严格模式 第一次接触let关键字,有一个要非常非常要注意的概念就是”javascript 严格模式”,比如下述的代码运行就会报错: let hello = 'hello worl ...
- [转]查看SQL Server被锁的表以及如何解锁
本文转自:https://www.cnblogs.com/shy1766IT/p/6225694.html 锁定数据库的一个表的区别 SELECT * FROM table WITH (HOLDLOC ...
- python学习之类和实例的属性;装饰器@property
无论是类还是实例,一切皆是对象. Python是强动态语言,和java在这点上有所不同. class Ab(): a = 666 # 定义类对象Ab,自带属性a,值为666 # 使用Ab.__dict ...
- Ajax中的同步和异步
var flag=true; ; $.ajax({ url: "http://www.jb51.net/", success: function(data){ flag=false ...
- 使用<% =Type%>获取后台值时报错:控件包含代码块(即 <% ... %>),因此无法修改控件集合。
<% =Type%>不能放在runat="server"的标签中,删掉runat="server"之后dev的控件回调第一次发生时会刷新页面,有ru ...