iOS开发——播放系统音效、自定义音效
//
// WQPlaySound.h
// WQSound
//
// Created by 念茜 on 12-7-20.
// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//#import <UIKit/UIKit.h>
#import <AudioToolbox/AudioToolbox.h>@interface WQPlaySound : NSObject
{SystemSoundID soundID;
}/*** @brief 为播放震动效果初始化** @return self*/
-(id)initForPlayingVibrate;/*** @brief 为播放系统音效初始化(无需提供音频文件)** @param resourceName 系统音效名称* @param type 系统音效类型** @return self*/
-(id)initForPlayingSystemSoundEffectWith:(NSString *)resourceName ofType:(NSString *)type;/*** @brief 为播放特定的音频文件初始化(需提供音频文件)** @param filename 音频文件名(加在工程中)** @return self*/
-(id)initForPlayingSoundEffectWith:(NSString *)filename;/*** @brief 播放音效*/
-(void)play;@end
//
// WQPlaySound.m
// WQSound
//
// Created by 念茜 on 12-7-20.
// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//#import "WQPlaySound.h"@implementation WQPlaySound-(id)initForPlayingVibrate
{self = [super init];if (self) {soundID = kSystemSoundID_Vibrate;}return self;
}-(id)initForPlayingSystemSoundEffectWith:(NSString *)resourceName ofType:(NSString *)type
{self = [super init];if (self) {NSString *path = [[NSBundle bundleWithIdentifier:@"com.apple.UIKit"] pathForResource:resourceName ofType:type];if (path) {SystemSoundID theSoundID;OSStatus error = AudioServicesCreateSystemSoundID((__bridge CFURLRef)[NSURL fileURLWithPath:path], &theSoundID);if (error == kAudioServicesNoError) {soundID = theSoundID;}else {NSLog(@"Failed to create sound ");}}}return self;
}-(id)initForPlayingSoundEffectWith:(NSString *)filename
{self = [super init];if (self) {NSURL *fileURL = [[NSBundle mainBundle] URLForResource:filename withExtension:nil];if (fileURL != nil){SystemSoundID theSoundID;OSStatus error = AudioServicesCreateSystemSoundID((__bridge CFURLRef)fileURL, &theSoundID);if (error == kAudioServicesNoError){soundID = theSoundID;}else {NSLog(@"Failed to create sound ");}}}return self;
}-(void)play
{AudioServicesPlaySystemSound(soundID);
}-(void)dealloc
{ AudioServicesDisposeSystemSoundID(soundID);
}
@end
调用方法步骤:
1.加入AudioToolbox.framework到工程中
2.调用WQPlaySound工具类
2.1震动
WQPlaySound *sound = [[WQPlaySound alloc]initForPlayingVibrate];[sound play];
2.2系统音效,以Tock为例
WQPlaySound *sound = [[WQPlaySound alloc]initForPlayingSystemSoundEffectWith:@"Tock" ofType:@"aiff"];[sound play];
2.3自定义音效,将tap.aif音频文件加入到工程
WQPlaySound *sound = [[WQPlaySound alloc]initForPlayingSoundEffectWith:@"tap.aif"];[sound play];
tap.aif音频文件样例下载点击
欢迎挑错,改进
iOS开发——播放系统音效、自定义音效相关推荐
- IOS开发调用系统相机和打开闪光灯
IOS开发调用系统相机和打开闪光灯 今天给大家分享一下如何调用iphone的拍照功能和打开闪光灯,有些代码我也不太理解,很多是在网上借鉴其他人的.IOS有两种的拍照和视频的方式:1.直接使用 ...
- iOS 开发 - 播放器Demo开发记录
iOS 开发 - 播放器Demo开发记录 标签: ios 2014-12-22 14:14 518人阅读 评论(0) 收藏 举报 分类: Mac OS X(50) 版权声明:本文为博主原创文章,未 ...
- ios开发调用系统自带的分享
1.一般情况下提到分享,我们会想到去集成某些第三方的框架,例如很多第三方分享的集合例如友盟的,集成效果如下 这里只涉及到了常用的新浪.微信.及qq: 分享功能:三个平台都比较宽松,只有有appid,都 ...
- iOS开发之系统发短信功能详解
iOS调用系统的发短信功能可以分为两种:1,程序外调用系统发短信.2,程序内调用系统发短信.第二种的好处是用户发短信之后还可以回到app.这对app来说非常重要. 程序外调用系统发短信 这个方法其实很 ...
- IOS开发笔记15-自定义类
转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/53710519 本文出自:[顾林海的博客] 前言 创建自定义类时会生成两 ...
- ((ios开发学习笔记 十一))自定义TableViewCell 的方式实现自定义TableView(带源码)...
实现的效果 实现过程 Step One 创建 自定义TableViewCell (接口部分) (类实现部分) xib 实现部分 注意: 下面三个设置 1 设置xib文件的class 2设置Iden ...
- iOS 开发AVFoundation系统原生二维码扫描实现
/* 先在项目中导入AVFoundation.framework框架 */ #import <UIKit/UIKit.h> #import <AVFoundation/AVFound ...
- iOS开发------获取系统联系人(AddressBook篇)
AddressBook是Apple提供给我们获取系统联系人的一个很方便类库,与其说方便,其实刚开始还是比较崩溃的,从开发文档来看,它还是偏向于C语言,并且不在ARC的控制之下,虽然在iOS9.0之后会 ...
- IOS开发UI篇之──自定义加载等待框(MBProgressHUD)
这里介绍一下网友开源的MBProgressHUD类,实现等待框, 一.网上下载 MBProgessHUD 类文件,直接导入到工程即可 二.示例分析 在我的工程中示例如下: 1)在ShowImageV ...
最新文章
- React+Redux开发实录(一)搭建工程脚手架
- sock_dgram 可以用listen吗_洗脸皂可以天天用吗
- Delphi (Library Path Browsing Path)
- python语言入门与精通-终于懂得python从入门到精通教程
- Java、Scala和Go语言多线程并发对比测试
- Apache Maven ToolChains的使用
- YznCMS 后台开发框架
- 马斯克称面临巨大通胀压力 暗示特斯拉可能涨价
- P2P之UDP穿透NAT的原理与实现
- 「代码随想录」121. 买卖股票的最佳时机【贪心】【动态规划】力扣/leetcode详解
- AE/PR/FCPX超强视觉特效插件包FxFactory
- Abp Quartz配置Sqlite
- OI队的土豆树(C++)
- android平板能玩吃鸡吗,刺激战场用什么平板好 平板吃鸡配置推荐
- 交互设计期末大作业(Photoshop期末作业)
- 动态创建表,并批量入库表数据(字段在程序运行之前未知)
- Windows+Linux等双系统的卸载
- python高校学生田径会信息管理系统
- 国家互联网信息办公室:发布关于《区块链信息服务管理规定(征求意见稿)》
- 【Vue3】源码解析
热门文章
- 经典好书:DSP嵌入式常用模块与综合系统设计实例精讲
- 多伦多大学好吗_大家对多伦多大学有什么评价?
- 【HAN】代码逐句理解三
- Linux Deepin蓝牙更新内核后无法使用的问题的各种方法尝试-service\heitool\hciconfig\blueman
- 成都电子科技大学计算机尹佳,电子科技大学成都研究院
- JAVA游戏土行孙_挖掘机的三种形态《非人学园》土行孙快速上手指南
- PDF文件编辑工具 V9.0.01
- 阿里云ECS部署Nginx配置域名访问
- sci论文宝典,科研入门,如何进行科研
- 2022年度总结:拒绝无效努力,实现破圈成长。