iphone7震动很奇怪起来很爽?那Taptic Engine是个什么鬼

当前位置:
&&&什么是Taptic Engine?3D Touch到底用处大吗?
什么是Taptic Engine?3D Touch到底用处大吗?
庭有苹果树,乔帮主生前所手植也,今已亭亭如盖矣。这一代的iPhone 7/7 Plus虽然在外观设计上没有,但是内在的几乎进行了全面提升。让人印象深刻的就是iPhone 7的&不可按压Home键&&&通过震动反馈替代机械按压。苹果的物理Home按键延续了这么多代,却在这次突然改用压感的Home键,是不是一种冒险之举?
用上3D Touch的Home键
现在智能机功能越来越全面,而苹果的死对头三星,早就将防水功能用在自家的旗舰机上,而且在自家三星Galaxy S7上已经支持了最高等级IP68的防水防尘,在这方面苹果确实有些落后了。这一代的iPhone 7系列可能是考虑到加入了IP67的防水功能,才将物理Home键改为电容按压式,这样能大大的增加机器的防水功能,也可能只是采取新的尝试。
Home键按压的三个力度
也许苹果考虑到了这一改变会有很多用户不习惯,于是在iPhone 7/7 Plus下巴附近增加了Taptic Engine震动马达来模拟物理Home键的反馈效果。并且为了更好的模拟物理反馈的效果,苹果针对iPhone 7系列还提供了3个等级的按压力度,用户可以根据自己的习惯进行选择。不过这是通过Taptic Engine震动马达进行模拟反馈,无法完美地呈现出机械结构按键那种按压的感觉。
iPhone 7上Home键的感受
什么是Taptic Engine?
说到这个Taptic Engine,大家肯定会有疑问,实际上Taptic Engine是苹果产品上推出的全新震动模块,该元件最早出现在Apple Watch智能手表设备中,包括苹果的上一代产品iPhone 6s和iPhone 6s Plus手机上,都内置了内置了Taptic Engine震动马达,并且在设计上有所升级,而这次iPhone 7系列上的Taptic Engine进行了进一步升级。
iPhone 7的Home键
振动器共分为旋转离心式和线性震动式两种。其中,后者的优势在于不仅可以产生震动,还能控制振幅以及频率,从而产生强弱分明且十分安静的震动。Taptic Engine便是一款线性震动器,能够准确再现点击、触碰以及其他触觉效果,有效地创建了一种引人关注的用户体验。而最新的iPhone 7就将Taptic Engine与3D Touch完美的融合在一起。
人机交互的三个维度
大家都知道,人机交互重要的三个维度分别是视觉、触觉、听觉。而机器的屏幕就承担视觉的角色、扬声器则承担了听觉的部分,而这个Taptic Engine承担了触摸的感觉&&感觉维度也就是现在苹果所做的触觉反馈机制。
Taptic Engine震动马达
Taptic Engine发展已经有一段时间了,该元件从Apple Watch智能手表开始,一直被苹果沿用,并不断升级。由于新的Taptic Engine模块体积变大,iPhone 6s电池容量相比上一代iPhone 6还缩水95mAh,这部分的空间用于放Taptic Engine马达。Apple Watch的Force Touch触控技术和iPhone 6s中加入的3D Touch触控技术都与Taptic Engine技术有关,包括目前的Macbook、iPhone 7也都加入Taptic Engine并与系统很好的融合。
Taptic Engine与UI的融合
人们知道屏幕后面的信息和内容,是通过UI进行交互的,从这一点来说,交互方式其实也决定了人与信息之间的距离。Taptic Engine让UI变得&可以触摸得到&,同时也让人机交互变得更立体&&除了触摸到屏幕,还能以触觉反馈的形式感受到不同的信息。
3D Touch体验
就拿iPhone 6s和iPhone 7上的3D Touch来说,这项技术和Force&Touch都是基于Taptic Engine的技术衍生而来,而3D&Touch要更优于Apple Watch的Force&Touch,3D Touch类似PC上的右键,有Peek(轻按)、Pop(重压)两种手势,而苹果称之为新一代多点触控技术,利用压力感应屏幕感应不同力度对触控形成的新的交互方式。
3D Touch在照相的体验
加入了3D Touch的iPhone 6s和iPhone 7,在很多地方都很方便。例如,拍照界面直接Peek缩略图可以预览刚才的图片,不需要在相机和图库之间来回跳转,还有在看邮件的时候,也可以用Peek进行预览,不需要每个每个的点开看,这样方便了很多。现在支持3D&Touch的第三方应用的App开始逐渐增多,功能越发强大。让很多用户与屏幕交互的过程中更有效率。
由Taptic Engine衍生而来的Force Touch和3D Touch触控新技术,带来屏幕触控的变革性体验,相信未来还会有更先进的交互方式。比如在应用上,点击容量不同的icon(图标)会产生不同的&重量感&,玩愤怒的小鸟拉弹弓会越来越紧等,都是未来的升级的方向。
不得不感叹,苹果一直走在科技界的前端。在苹果看来,如今的手机和移动设备的屏幕在显示和触控操作已经达到了很高的境界,如何找到更多创新,是个很值得深思的问题,苹果考虑到提升最直观的操控体验就是给出触控回馈,就连福布斯也将iPhone 6s称作向未来触控屏进发的重要一步。
iPhone 7 Plus
目前已经也有安卓机开始尝试3D Touch,例如魅族PRO 6,但是都没办法达到iOS下优秀的体验。这项技术面世的时间还不长,还有升级的空间,相信以苹果的实力,未来还会从Taptic Engine上挖掘出更多实用有趣的功能。
Ta的热门文章
1858人申请泰捷mix电视盒子
2089人申请畅呼吸智能空气净化器
2650人申请明基(BenQ)W1120 家用投影机
5299人申请北通手游W1游戏手柄
4389人申请暴风AI无屏电视Max6
¥3699【微鲸智能投影M1】微鲸智能投影M1 给你生活仪式感
¥3199【空气净化器】AIRX空气净化器A8:大风量无惧噪音
¥1899【ILIFE智意天目X660扫地机器人】ILIFE智意天目X660扫地机器人:全新打造
AI视觉清扫
¥1499【健腹器】SLENDERTONE健腹器:型动人生 大有不同
¥109【ROMOSS】罗马仕(ROMOSS)太阳神移动电源/充电宝 能量随时就位
你还可以分享到以下地方,获得10蘑菇参与!
免费试用:
微信添加"亿智蘑菇"获取我们的服务
微博添加"亿智蘑菇"获取我们的服务
下次自动登录
使用第三方登录&&[&& 原创&&]&& 作者:&&|&&责编:胡永彬
Taptic&Engine:非传统意义上的振动器&&&&&为配备完整的电脑架构并不是苹果的全部期望,作为一款极具创新精神的一款产品,苹果还在人机交互上做了更多努力,而Taptic&Engine就是这一努力的结晶。Taptic&Engine与手机上采用的线性振动器原理相同&&&&说的浅显一点,Taptic&Engine其实就是一个线性振动器,它和很多手机上采用的线性振动器的原理是一样的。如果从这一角度上讲苹果并没有做出什么创新。但在笔者看来,苹果在上面重新发明了这个模块的功能。线性震动器可以让Apple&Watch模拟人的心跳震动&&&&目前,振动器共分为旋转离心式和线性震动式两种。其中,后者的优势在于不仅可以产生震动,还能控制振幅以及频率,从而产生强弱分明且十分安静的震动。Taptic&Engine便是一款线性震动器,它甚至可以模拟出心跳那种频率忽高忽低的震动效果。Taptic&Engine负责人机交互的感觉维度&&&&苹果Apple&Watch的人机交互共分为三个维度,视觉维度由屏幕承担,听觉维度由内置扬声器实现,而感觉维度便是由Taptic&Engine做到的。当进行点按等操作时,有消息推送时或者有来电时,Apple&Watch就会通过Taptic&Engine,给手腕一个独有的震动方式,让使用者通过感觉震动便能够判断设备发出的信息。设计解读:&&&&仅仅一个振动器,只要认真去研究,那么它便能打开人机交互的一个全新维度,那就是感觉。苹果通过Taptic&Engine,实现了这种人机交互方式,但是使用者是否能够区分,或者是否这种交互容易被接受,这或许只有时间才知道答案。
...提示:支持键盘“← →”键翻页
产品定位 操作系统
投诉欺诈商家:
天津重庆哈尔滨沈阳长春石家庄呼和浩特西安太原兰州乌鲁木齐成都昆明贵阳长沙武汉郑州济南青岛烟台合肥南京杭州东莞南宁南昌福州厦门深圳温州佛山宁波泉州惠州银川
本城市下暂无经销商
4¥29995¥12496¥13997¥13998¥14999¥189910¥999当前位置: >
大神爆料:iPhone 8将采用全新震动单元Taptic Engine 2
日前,国外爆料大神 Benjamin Geskin 在推特上表示,iPhone 8 内部将采用全新的 Taptic Engine 2 震动单元,以便用户获得更好的操作反馈。据了解,目前 iPhone 7 系列采用的是新式 Taptic Engine 震动单元,由于其主屏幕按钮采用了固态按钮式设计,所以需要利用 Taptic Engine 提供精准的触觉反馈,也就是说主屏幕按钮实际并没有按下,但却会让用户产生已经按下的错觉。不过,由于 iPhone 8 已经彻底移除了 Home 键,因此苹果需要为用户提供更加精准和细腻的触觉反馈,这样看来 iPhone 8 采用第二代 Taptic Engine 也再情理之中。
扫一扫,关注265G果粉网官方微信,最新iPhone8资讯抢先看
扫描左侧二维码即可添加265G果粉网官方微信,您也可以在微信公众号上搜索“265G果粉网”,关注后即可每天了解最新iPhone动态。
扫码关注官方微信
获取苹果一手资讯
扫码关注官方微博
获取最新苹果情报
265G推荐游戏iOS中关于Taptic-Engine震动反馈的深入解析
作者:小鱼周凌宇
字体:[ ] 类型:转载 时间:
这篇文章主要给大家介绍了关于iOS中关于Taptic-Engine震动反馈的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
TapticEngine是什么总的来说,TapticEngine是苹果产品上推出的全新震动模块名称,最早出现在AppleWatch中,苹果iPhone6s和iPhone6sPlus也内置了TapticEngine,设计上有所升级。TapticEngine的全新震动模块,这颗震动模块经过特殊设计,能在短时间内达到震动的最佳状态,是普通振动马达所做不到的。Taptic这个单词本身没有什么含义,比较接近的词是Haptic(触觉)。
TapticEngine工作原理传统的手机震动器是马达带着偏振片一起转动,从而产生震动。
大概是这个样子滴。
而TapticEngine是直线电机驱动带着震块做直线往返运动。看看下面这两张蜜汁动感的示意图,你就一下子就明白它是怎么产生震动的了。
iPhone6s的内置的TapticEngine
AppleWatch的内置的TapticEngine,左边集成了扬声器
Taptic Engine 振动模块为 Apple Watch 以及 iPhone 6s、iPhone 7 提供了 Force Touch 以及 3D Touch,不同的屏幕操作,可以感受到不同的振动触觉效果,带来更好的用户体验。
What has Happened?
上周,leader 拿着 iPhone 7 打开了网易新闻,问我:『你看,你这里的下拉刷新是短震动,我们的手机数周遥控电视的时候只有长震动,产品那边问能不能用短震动』。
然后博主就去查看了一下关于短震动的方式,整个过程可以描述为——『资料真少!』。
不过最后通过一下午的搜集,最终还是总结整理出来了这份文档,也补充了自己对 iPhone 6s 之后对 Taptic Engine 的了解。
短震方法一 AudioServicesPlaySystemSound
常用调用:
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
以上代码在各个型号手机中反应为长震
API 系统版本支持:
__OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_2_0);
APPLE 公开的 SystemSoundID 有:
CF_ENUM(SystemSoundID)
kSystemSoundID_UserPreferredAlert = 0x,
kSystemSoundID_FlashScreen
= 0x00000FFE,
// this has been renamed to be consistent
kUserPreferredAlert
= kSystemSoundID_UserPreferredAlert
CF_ENUM(SystemSoundID)
kSystemSoundID_Vibrate
= 0x00000FFF
以上类型 没有短震动 。
但通过以下代码,可以得到更多类型的震动:
// 普通短震,3D Touch 中 Peek 震动反馈
AudioServicesPlaySystemSound(1519);
// 普通短震,3D Touch 中 Pop 震动反馈
AudioServicesPlaySystemSound(1520);
// 连续三次短震
AudioServicesPlaySystemSound(1521);
但以上 ID 均未在 Apple 的 Documents 中描述。显然,这是调用了一些私有一些属性 。
关于是否调用了私有 API,也有一些讨论,可以查看。
短震方法二 获取 _tapticEngine
这种方法是从搜集到的。
id tapticEngine = [[UIDevice currentDevice] performSelector: NSSelectorFromString(@"_tapticEngine")
withObject:nil];
[tapticEngine performSelector: NSSelectorFromString(@"actuateFeedback:")
withObject:@(0)];
id tapticEngine = [[UIDevice currentDevice] performSelector: NSSelectorFromString(@"_tapticEngine")
withObject:nil];
SEL selector = NSSelectorFromString(@"actuateFeedback:");
int32_t arg = 1001;
NSInvocation *inv = [NSInvocation invocationWithMethodSignature:[tapticEngine methodSignatureForSelector:selector]];
[inv setTarget:tapticEngine];
[inv setSelector:selector];
[inv setArgument:&arg atIndex:2];
[inv invoke];
显然, 这是调用了私有 API 。
这些方法,在实际测试的时候发现,在 iPhone 7 上调用没有震动反馈,在 iPhone 6S Plus 上调用有震动反馈,在 iPhone 6 上调用 无反馈。
短震方法三 UIImpactFeedbackGenerator
iOS10 引入了一种新的、产生触觉反馈的方式, 帮助用户认识到不同的震动反馈有不同的含义 。这个功能的核心就是由 UIFeedbackGenerator 提供。Apple 对于 UIImpactFeedbackGenerator 有一篇。
UIFeedbackGenerator 可以帮助你实现 haptic feedback。它的要求是:
支持 Taptic Engine 机型 (iPhone 7 以及 iPhone 7 Plus).
app 需要在前台运行
系统 Haptics setting 需要开启
Apple 曾表示公开了 Taptic Engine 的 API,但是鲜有文档。在搜罗了各种资料后,可以认为 UIImpactFeedbackGenerator 即 Taptic Engine 的 公开 API。
它的调用方式是:
UIImpactFeedbackGenerator *generator = [[UIImpactFeedbackGenerator alloc] initWithStyle: UIImpactFeedbackStyleLight];
[generator prepare];
[generator impactOccurred];
观察 UIImpactFeedbackGenerator 你会发现它继承于 UIFeedbackGenerator。除了 UIImpactFeedbackGenerator 还有三种 FeedbackGenerator:
UIImpactFeedbackGenerator
UISelectionFeedbackGenerator
UINotificationFeedbackGenerator
详情可参考 Apple 的 这篇 。
对于震动反馈的应用,Apple 也给出了示例场景:
- (IBAction)gestureHandler:(UIPanGestureRecognizer *)sender {
switch (sender.state) {
case UIGestureRecognizerStateBegan:
// Instantiate a new generator.
self.feedbackGenerator = [[UISelectionFeedbackGenerator alloc] init];
// Prepare the generator when the gesture begins.
[self.feedbackGenerator prepare];
case UIGestureRecognizerStateChanged:
// Check to see if the selection has changed...
if ([self myCustomHasSelectionChangedMethodWithTranslation:[sender translationInView: self.view]]) {
// Trigger selection feedback.
[self.feedbackGenerator selectionChanged];
// Keep the generator in a prepared state.
[self.feedbackGenerator prepare];
case UIGestureRecognizerStateCancelled:
case UIGestureRecognizerStateEnded:
case UIGestureRecognizerStateFailed:
// Release the current generator.
self.feedbackGenerator =
// Do nothing.
三种方法在测试机上不同的反馈结果
AudioServicesPlaySystemSound
iPhone 7(iOS 10)
三次连续短振
iPhone 6s Puls(iOS 9)
三次连续短振
iPhone 6(iOS 10)
获取 _tapticEngine&
iPhone 7(iOS 10)
iPhone 6s Puls(iOS 9)
iPhone 6(iOS 10)
UIImpactFeedbackGenerator
iPhone 7(iOS 10)
iPhone 6s Puls(iOS 9)
iPhone 6(iOS 10)
总结一下,希望同样的代码能在更多的机型上实现短振,建议使用 AudioServicesPlaySystemSound(1519)。不过可能会涉及到调用私有 API。安全起见,可以使用 UIImpactFeedbackGenerator。
测试代码在。
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具在WWDC2015上,Apple发布了Watch OS 2,增加了Taptic Engine的访问
先上核心代码
WKInterfaceDevice.currentDevice().playHaptic(type: WKHapticType)
超级简单是不是?就一句是不是?秒懂有木有!
那么我们来讲一讲最后一个参数
WKHapticType一共有9种
它们分别是
Notification &//这是在Apple Watch接受通知时的震动
DirectonUp &//上滑到头的震动
DirectionDown &//下滑到头的震动
Success &//成功返回的震动
Failure &//失败返回的震动
Retry &//表示重试的震动
Start &//表示开始的震动
Stop &//表示停止的震动
Click &//轻击的震动
高考水平的单词,大家应该都懂是什么意思,但造福人民,我还是注释一下
那么怎么用呢
我来举个例子
WKInterfaceDevice.currentDevice().playHaptic(.Click)
就是在这个语句执行后Apple Watch会用线性致动器轻击你的手腕
想记住它很简单:(Watch Kit Interface Device)Current Device Play Haptic
好,那么我们把它们带入到应用中去
1.新建一个watch os 2 project
2.打开watch的故事版
3.放置3个Group到ViewController上
4.设置所有group的height(在旁边的检查器)为relative to container并将数值写为0.33
5.拖入一个button,在同样的地方设置width的值为0.33,一组放三个,并起一个你喜欢的名字(能辨认出哪个是哪个即可)
6.在interface controller中加入以下代码
@IBAction func Notification()
WKInterfaceDevice.currentDevice().playHaptic(.Notification)
@IBAction func DirectionUp()
WKInterfaceDevice.currentDevice().playHaptic(.DirectionUp)
@IBAction func DirectionDown()
WKInterfaceDevice.currentDevice().playHaptic(.DirectionDown)
@IBAction func Success()
WKInterfaceDevice.currentDevice().playHaptic(.Success)
@IBAction func Failure()
WKInterfaceDevice.currentDevice().playHaptic(.Failure)
@IBAction func Retry()
WKInterfaceDevice.currentDevice().playHaptic(.Retry)
@IBAction func Start()
WKInterfaceDevice.currentDevice().playHaptic(.Start)
@IBAction func Stop()
WKInterfaceDevice.currentDevice().playHaptic(.Stop)
@IBAction func Click()
WKInterfaceDevice.currentDevice().playHaptic(.Click)
7.然后在view controller里关联好ibaction
8.运行你的应用吧
本文已收录于以下专栏:
相关文章推荐
一、什么是Complication?
二、怎么开始开发Complication?
1)新建一Watch OS 2 的Xcode项目
2)勾上Complication
3)创建这个项目
前言:在无数个明天之后,我写出了开发教程(二)供大家参考^_^
那么今天我来讲讲Complication的Provider
Provider大体而言总共有两个分类
CLKImageProvide...
AppGroups1.1-简介1.1.1-苹果沙盒机制我们都知道苹果的沙盒机制,不同的沙盒之间是不能互相访问数据的在开发Watch App的时候,假如说有一张图片文件,既要在iPhone中显示也要在W...
一.watch OS 的由来及现状
1.AppleWatch背景
Apple Watch 是苹果公司于2014年9月公布的一款智能手表 。
有Apple Watch、Apple Watc...
"回复 集赞" 抢 《Apple Watch 苹果开发教程》活动开始了!!!
他的最新文章
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 杜蕾斯震动环女的爽吗 的文章

 

随机推荐