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 ...
随机推荐
- springcloud-03-服务注册
新建一个 provider-user 和consumer-movie, user为服务提供者, movie为服务的消费真, 没有什么难的, 直接上代码 microserver-provider-use ...
- Linux-(ps,grep)
grep命令 1.命令格式: grep [option] pattern file 2.命令功能: 用于过滤/搜索的特定字符.可使用正则表达式能多种命令配合使用,使用上十分灵活. Linux系统中gr ...
- php通过生成动态变量(变量名中还有变量)
借鉴:http://blog.sina.com.cn/s/blog_7193eeac0100zwld.html 如果想for循环生成变量 如: $a1,$a2,$a3.... $name = &quo ...
- json 只能用 for-in 遍历
[JS] var json1 = { 'name' : 'yy' , 'age' : 11 , 'fun' : '前端开发' }; for( var attr in json1 ) { alert( ...
- HDU 5253 连接的管道(Kruskal算法求解MST)
题目: 老 Jack 有一片农田,以往几年都是靠天吃饭的.但是今年老天格外的不开眼,大旱.所以老 Jack 决定用管道将他的所有相邻的农田全部都串联起来,这样他就可以从远处引水过来进行灌溉了.当老 J ...
- Mysql备份工具xtraback全量和增量测试
Mysql备份工具xtraback全量和增量测试 xtrabackup 是 percona 的一个开源项目,可以热备份innodb ,XtraDB,和MyISAM(会锁表) 官方网址http:// ...
- C#动态创建Gridview及批量插入到数据库
这里介绍两种动态创建Gridview的方法: (一).有时需要应付上头领导的检查,所以就弄一些静态的Gridview来显示数据,这种方法的优点就是不用连接数据库,比较方便,但是代码灵活性不高,所有数据 ...
- mybatis-plus之Mapper CRUD接口和 Service CRUD 接口
中文官网链接: https://mp.baomidou.com/guide/crud-interface.html
- linux下安装jdk8
https://www.cnblogs.com/shihaiming/p/5809553.html
- 高并发第十三弹:J.U.C 队列 SynchronousQueue.ArrayBlockingQueue.LinkedBlockingQueue.LinkedTransferQueue
因为下一节会说线程池,要用线程池 那么线程池有个很重要的参数 就是Queue的选择 常用的队列其实就两种: 先进先出(FIFO):先插入的队列的元素也最先出队列,类似于排队的功能.从某种程度上来说这种 ...