问题:有一些应用有这样的需求,自定义键盘按键时增加字符放大效果和音效、震动效果,仿系统键盘;

说明:按键的放大效果,比较简单,这里不做说明,读者可以自己去完成;这里主要介绍下增加按键音效和震动效果;

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 自定义键盘的按键音效和震动效果相关推荐

  1. Android 自定义键盘 随机键盘

    之前上传的另外一个自定义键盘,并没有实现键盘弹出的时候,布局向上自动调整.(网络上所有的自定义键盘都没有添加自适应的功能,而且布局没这么好看,上一个例子资源链接为:http://download.cs ...

  2. iOS开发中键盘样式和自定义键盘。

    文章目录 系统自带的样式 自定义键盘 在系统自带键盘基础上自定义键盘 完全自定义键盘 自定义全部类型键盘 系统自带的样式 在iOS开发中系统自带键盘已经有很多样式,但是有时候并不能满足我们都开发需求, ...

  3. 自定义键盘KeyboardView如何添加点击音效

    前段时间通过继承KeyboardView做了个自定义键盘,后来测试发现在打开触摸按键音时没有按键音效果.经过多番尝试最后终于解决了问题. 关于View的点击音是如何实现的请参考: 点击打开链接 Key ...

  4. ios中设置app音效音效和震动

    在项目中使用AudioServicesPlaySystemSound 这个接口来进行声音和震动的播放, 当然需要在工程中加入AudioToolBox.framework 我们可以写一个文件来封装声音和 ...

  5. ios键盘通知和自定义键盘

    一.键盘通知 当文本View(如UITextField,UITextView, UIWebView内的输入框)进入编辑模式成为first responder时,系统会自动显示键盘.成为firstres ...

  6. ios 输入法扩展_动态输入法 iOS 版如何自定义键盘

    动态输入法 iOS 版(V3.5)提供了灵活的自定义键盘设置,几乎可以把整个 Unicode 字符表装进去.尽管在 App 里有简短的说明,但一般的用户可能注意不到这么实用的功能,而有兴趣的用户又可能 ...

  7. 自定义键盘按键AutoHotKey的简单使用

    自定义键盘按键AutoHotKey的简单使用 自己一个罗技键盘,哪哪都合适.因为没有home和end经常被自己抛弃.偶然机会从王越同事,那里得到AutoHotKey的脚本文件 ,完美解决问题,甚至大大 ...

  8. ios如何 自定义键盘

    样式 1.数字加字母 2.数字 3.数字加字母加部分符号 调用 ZQKeyBoardView *keyBoardView = [[ZQKeyBoardView alloc]initWithFrame: ...

  9. VUEJS项目实践四之自定义键盘指令(按键即获取焦点)

    上回书说到怎么在vue.js中添加bootstrap样式,这次来写一下键盘按键指令吧- 一.先来说一下vue.js本来就有的按键指令吧- 这个就灰常的简单和方便啦- 1.随便找一个vue页面文件,在& ...

最新文章

  1. ES的跨索引查询有多便利?对比下分库分表、分片更直观
  2. excel之根据单元格内容自动修改单元格颜色
  3. 带毫秒的字符转换成时间(DateTime)格式的通用方法
  4. 2020 我的C++学习之路 C++PrimerPlus第五章课后习题
  5. pagerank算法实现matlab,Matlab 入门及PageRank算法求解.ppt
  6. 设计模式:单例和简单工厂
  7. centos7无法使用epel的解决方法
  8. typescript和 java区别_typescript中interface和type的区别
  9. OpenGL基础16:视角
  10. C++迭代器 iterator
  11. CSDN获得c币办法
  12. [谈现在的PSP与NDSi]
  13. 华三ASPF技术白皮书
  14. 地理信息数据 中国省级行政区划 SHP
  15. Unity 外部资源无法拖入Unity
  16. Cocos2d-x游戏开发之骨骼动画详解-Spine
  17. Android动态更改通知图标,修改通知标志  |  Android 开发者  |  Android Developers
  18. 单片机(中断系统-串口通信)
  19. 直方图均衡化(II)
  20. 深入理解风控中的 KS 原理

热门文章

  1. Windows 和 android 平台Boost编译方法
  2. 如何最大程度的提高效率?ie分析软件为效率提高带来无限可能
  3. 求解斐波那契数列(Fibonacci Numbers)算法居然有9种,你知道哪几种吗?
  4. MapGuide 初步
  5. 上拉电阻,下拉电阻的实现原理
  6. 深谈SCI论文写作技巧
  7. 【液体倒进电脑了怎么办:个人处理经验】
  8. 福昕阅读器无法添加书签
  9. 流行的Go语言web框架简介
  10. object sender,EventArgs e