ios 自定义键盘的按键音效和震动效果
问题:有一些应用有这样的需求,自定义键盘按键时增加字符放大效果和音效、震动效果,仿系统键盘;
说明:按键的放大效果,比较简单,这里不做说明,读者可以自己去完成;这里主要介绍下增加按键音效和震动效果;
ios 播放声音文件的方法很多,有System Sound Service、AVAudioPlayer、Audio Queue Services 等多种方法;由于按键音效属于短而小的声音,对于这些短小且需要频繁播放的音频,最好将其加入到系统声音(system sound)里。
但是要注意几点:
需要播放的音频文件不能超过30秒
必须是IMA/ADPCM格式[in linear PCM or IMA4(IMA/ADPCM) format]
必须是.caf .aif .wav文件
不能控制播放的进度,方法调用后直接播放;
使用系统声音播放的方法:
1、导入头文件:
#import <AudioToolbox/AudioServices.h>
2、初始化音频文件:
NSString * file_sound = [[NSBundle mainBundle] pathForResource:@"ButtonSound" ofType:@"WAV"];
3、创建系统声音,同时返回一个ID;
SystemSoundID soundID;
AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:file_sound], &soundID);
4、根据ID播放自定义系统声音;
AudioServicesPlayAlertSound(soundID);
5、增加震动效果,震动效果,其实是一个预定义的音效文件:kSystemSoundID_Vibrate ;
AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);
完..
ios 自定义键盘的按键音效和震动效果相关推荐
- Android 自定义键盘 随机键盘
之前上传的另外一个自定义键盘,并没有实现键盘弹出的时候,布局向上自动调整.(网络上所有的自定义键盘都没有添加自适应的功能,而且布局没这么好看,上一个例子资源链接为:http://download.cs ...
- iOS开发中键盘样式和自定义键盘。
文章目录 系统自带的样式 自定义键盘 在系统自带键盘基础上自定义键盘 完全自定义键盘 自定义全部类型键盘 系统自带的样式 在iOS开发中系统自带键盘已经有很多样式,但是有时候并不能满足我们都开发需求, ...
- 自定义键盘KeyboardView如何添加点击音效
前段时间通过继承KeyboardView做了个自定义键盘,后来测试发现在打开触摸按键音时没有按键音效果.经过多番尝试最后终于解决了问题. 关于View的点击音是如何实现的请参考: 点击打开链接 Key ...
- ios中设置app音效音效和震动
在项目中使用AudioServicesPlaySystemSound 这个接口来进行声音和震动的播放, 当然需要在工程中加入AudioToolBox.framework 我们可以写一个文件来封装声音和 ...
- ios键盘通知和自定义键盘
一.键盘通知 当文本View(如UITextField,UITextView, UIWebView内的输入框)进入编辑模式成为first responder时,系统会自动显示键盘.成为firstres ...
- ios 输入法扩展_动态输入法 iOS 版如何自定义键盘
动态输入法 iOS 版(V3.5)提供了灵活的自定义键盘设置,几乎可以把整个 Unicode 字符表装进去.尽管在 App 里有简短的说明,但一般的用户可能注意不到这么实用的功能,而有兴趣的用户又可能 ...
- 自定义键盘按键AutoHotKey的简单使用
自定义键盘按键AutoHotKey的简单使用 自己一个罗技键盘,哪哪都合适.因为没有home和end经常被自己抛弃.偶然机会从王越同事,那里得到AutoHotKey的脚本文件 ,完美解决问题,甚至大大 ...
- ios如何 自定义键盘
样式 1.数字加字母 2.数字 3.数字加字母加部分符号 调用 ZQKeyBoardView *keyBoardView = [[ZQKeyBoardView alloc]initWithFrame: ...
- VUEJS项目实践四之自定义键盘指令(按键即获取焦点)
上回书说到怎么在vue.js中添加bootstrap样式,这次来写一下键盘按键指令吧- 一.先来说一下vue.js本来就有的按键指令吧- 这个就灰常的简单和方便啦- 1.随便找一个vue页面文件,在& ...
最新文章
- ES的跨索引查询有多便利?对比下分库分表、分片更直观
- excel之根据单元格内容自动修改单元格颜色
- 带毫秒的字符转换成时间(DateTime)格式的通用方法
- 2020 我的C++学习之路 C++PrimerPlus第五章课后习题
- pagerank算法实现matlab,Matlab 入门及PageRank算法求解.ppt
- 设计模式:单例和简单工厂
- centos7无法使用epel的解决方法
- typescript和 java区别_typescript中interface和type的区别
- OpenGL基础16:视角
- C++迭代器 iterator
- CSDN获得c币办法
- [谈现在的PSP与NDSi]
- 华三ASPF技术白皮书
- 地理信息数据 中国省级行政区划 SHP
- Unity 外部资源无法拖入Unity
- Cocos2d-x游戏开发之骨骼动画详解-Spine
- Android动态更改通知图标,修改通知标志 | Android 开发者 | Android Developers
- 单片机(中断系统-串口通信)
- 直方图均衡化(II)
- 深入理解风控中的 KS 原理