使用AudioServices相关接口(底层c接口)的连续震动实现(ios)
废话不多说,先上接口
AudioServicesAddSystemSoundCompletion(kSystemSoundID_Vibrate, NULL, NULL, systemAudioCallback, NULL);
AudioServicesRemoveSystemSoundCompletion(kSystemSoundID_Vibrate);
这两个接口的用途是绑定和取消指定soundID对应的回调方法;kSystemSoundID_Vibrate为soundID类型,其回调方法认准的也是这个soundID,在任何地方使用这个id去执行AudioServicesPlaySystemSound(xxxSoundID)都会调用到该回调方法。而一旦调用remove方法取消回调,同样的在任何地方使用这个id去执行AudioServicesPlaySystemSound(xxxSoundID)都不会调用到这个回调。说的这么绕,其实就是说这俩接口的影响是全局的,威力很大。
我们只要在回调方法里面再调用AudioServicesPlaySystemSound接口,就可以实现连续震动了;当我们想要停止震动时,调用remove接口,ok,回调方法就歇火了。
优化:
经过测试发现震动之间太连续,体验不符合要求;所以我们在c回调里面通过单例(全局变量性质的指针)调用到oc的方法进行[self performSelector:@selector(triggerShake) withObject:nil afterDelay:1](triggerShake是震动接口);在停止震动时候我们需要调用
[NSObject cancelPreviousPerformRequestsWithTarget:self
selector:@selector(triggerShake)
object:nil]; 停止之前可能的回调;这两个方法的成对使用既好用又简便,对于需要定时调用的场景很适合,也免去维护定时器的麻烦。
使用AudioServices相关接口(底层c接口)的连续震动实现(ios)相关推荐
- ETERM放大软件 机票实时查询接口 底层开发接口
(1).凯讯科技PID放大共享软件率先 支持新版信天游 单独的扣位接口.实惠.实用.更稳定. {底层开发通讯协议包及webservices访问.支持 黑屏所有功能 更便于开发.更稳定} (2). ...
- SIM800/SIM900/SIM7000/SIM7600底层操作接口_句柄方式完全分离通信底层
使用SIMCOM公司通信模块已经好几年了,周末抽空把底层重新写了,将底层的通信与应用完全进行了分离,便于移植. SIMCOM.h //定义了相关的结构体与类型. SIMCOM_AT.c//定义了底层的 ...
- Golang之接口底层分析
目录 GoLang之iface 和 eface 的区别是什么? GoLang之接口的动态类型和动态值 [引申1]接口类型和 `nil` 作比较 [引申2] [引申3]如何打印出接口的动态类型和值? G ...
- ArcGIS Engine开发之旅08--和查询相关的对象和接口
ArcGIS Engine开发之旅08--和查询相关的对象和接口 原文:ArcGIS Engine开发之旅08--和查询相关的对象和接口 查询在GIS领域应该是一个很频繁的操作,在GIS中除了具有属性 ...
- 【全栈接口测试进阶系列教程】精通api接口测试,接口分类,接口架构,http,webservice,dubbo接口协议,接口流程,接口工具,cookie,session,token接口鉴权原理以及实战
目录 一,[什么是接口测试?为什么要作接口测试] 1.接口的作用 2.为什么要做接口测试 3.接口都有哪些类型? 二,[接口测试的分类] 接口的分类: http和webservice接口区别: 三,[ ...
- SAP工具箱 自动生成发出接口程序(二 接口定义表)
点击蓝字 关注我们 一 前言 前文介绍了发出接口程序的执行原理及怎么自动生成发出接口程序. 详见链接 无峰,公众号:ABAP 技巧与实战SAP工具箱 自动生成发出接口程序(一) 本文主要介绍生成发出接 ...
- 物联网中,北向接口和南向接口是什么?
物联网技术蓬勃发展,很多工厂已经实现自动化和智能化,但有着更多的工业和企业不了解相关领域,承担着较高的设备成本.运维成本.管理成本,利润回收周期也是较长,往往都是做不久就亏钱跑路,我们需要向着那些智能 ...
- Go 学习笔记(35)— Go 接口 interface (接口声明、接口初始化、接口方法调用、接口运算、类型断言、类型查询、空接口)
1. 接口概念 接口是双方约定的一种合作协议.接口实现者不需要关心接口会被怎样使用,调用者也不需要关心接口的实现细节.接口是一种类型,也是一种抽象结构,不会暴露所含数据的格式.类型及结构. 接口内部存 ...
- 【Android 异步操作】FutureTask 分析 ( Future 接口解析 | Runnable 接口解析 | Callable 接口解析 )
文章目录 一.Future 接口 1.Future 接口简介 2.取消任务方法 3.Future 接口源码注释 二.Callable 接口 三.Runnable 接口 上一篇博客 [Android 异 ...
最新文章
- 基于OSS存储搭建Hadoop集群
- 什么是婚礼一条龙服务及一站式服务
- linux文件目录类常用命令
- C++ 下使用curl 获取ftp文件
- Prolog基本程序
- Delphi RTC
- html5 动态 menuitem,利用HTML 5中的Menu和Menuitem元素快速创建菜单
- Node.js webpack Vue单文件
- 企业生产环境数据库备份锁表问题
- Mac 安装php redis扩展
- HTTP接口测试工具Postman
- 关于python中的round()和javascript中的round()的比较
- 【资讯】国内 42 所一流大学综合排名出炉!清北之后谁是国内第三?
- 雷达信号处理——雷达系统
- error PRJ0003 : 生成“C:\WINDOWS\system32\cmd.exe”时出错
- 免费的顶级域名要在哪申请?
- Windows 使用命令行查看 wifi 密码
- VC学习路线书籍+视频
- 深度操作系统20.6发布
- 凤凰新闻自动评论推荐软件--把自己的评论推荐到最前面,然后通过头像、用户名或者评论内容进行展示