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 ...
随机推荐
- 简单canvas刮刮乐
好久没玩canvas了,随便写点效果玩玩.要开始重新拾起这门牛x的技术了,工作中不一定能用得上,以后说不定就能发挥用处了. <!DOCTYPE html> <html lang=&q ...
- ROR中h()方法和sanitize的区别及Html Filter
一般来说,通常使用input的field都会做一些filter的动作,避免被不怀好意之徒塞一些危险的HTML code(script等)进去搞破坏.在ROR中,我们在前面加一个h()(一般不用括号?不 ...
- SqlDataReader的关闭问题,报错:“阅读器关闭时尝试调用 Read 无效”
SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);//关闭SqlDataReader 会自动关闭Sqlconn ...
- Template parse errors: The pipe 'translate' could not be found
问题描述: 基于Ionic最新的super模板,创建的项目,在自己改造成懒加载机制后,原本正常的项目出现问题了,提示模板内部使用的翻译管道找不到,如图: 模板内部使用的翻译管道代码,我确定没有问题, ...
- maven配置Mac平台
Mac OS X 安装Maven: 下载 Maven, 并解压到某个目录.例如/Users/robbie/apache-maven-3.3.3 打开Terminal,输入以下命令,设置Maven cl ...
- 四:Jquery-animate
动画效果: 1.显示/隐藏动画效果 动态的改变当前元素的宽,高和不透明度 show([duration],[fn]); //显示当前元素 hide([duration],[fn]); //隐藏当前元素 ...
- Java并发常见问题
ConcurrentHashMap源码分析,参考:http://blog.csdn.net/do_smile/article/details/46911727 HashMap源码分析,参考:http: ...
- 如何向Maven仓库(私服)中上传第三方jar包
本文详细介绍如何向maven仓库中上传第三方jar包. 1.在本地maven安装路径中找到conf文件夹下面的setting.xml文件,里面有访问maven仓库的路径和账号.密码: 2.浏览器打开第 ...
- Spring学习手札(一)
Spring能做什么 1. 能根据配置文件创建及组装对象之间的依赖关系: 2. 面向切面编程,能帮助我们无耦合的实现日志记录,性能统计,安全控制等: 3. 提供第三方数据访问框架(如Hibernate ...
- CodeForces760B
B. Frodo and pillows time limit per test:1 second memory limit per test:256 megabytes input:standard ...