振动输出方法及相关装置与流程

文档序号:33251551发布日期:2023-02-18 02:57阅读:35来源:国知局
振动输出方法及相关装置与流程
振动输出方法及相关装置
1.本技术要求于2021年8月12日提交中国专利局、申请号为202110927059.5、申请名称为“一种振动输出方法及相关装置”的中国专利申请的优先权,其全部内容通过引用结合在本技术中。
技术领域
2.本技术涉及终端领域,尤其涉及一种振动输出方法及相关装置。


背景技术:

3.随着终端技术的发展,电子设备已经越来越广泛地应用于日常生活中。尤其是电子设备上丰富多彩的应用,例如,一些游戏应用,为生活增添不少乐趣。
4.目前,当电子设备运行一些指定应用(例如,游戏应用)时,上述指定应用可以通过用户持有的电子设备输出振动响应,以用于给予用户提示或给用户带来更为沉浸式的感官体验。然而,在电子设备运行指定应用的过程中,当cpu负载较高时,cpu资源无法及时处理时长较长的振动数据,因此,会造成指定应用运行时的画面帧率小于指定阈值,从而导致画面掉帧、应用卡顿的现象,给用户造成非常不好的体验。


技术实现要素:

5.本技术提供了一种振动输出方法及相关装置,实现了电子设备可以基于振动描述文件确定出的振动标识,从本地存储空间中获取到对应的驱动波形数据,并基于该驱动波形数据驱动马达输出相应的振动响应。这样,电子设备可以不用基于振动描述文件计算生成对应的驱动波形数据,节省了cpu资源,提高了振动输出的效率,从而避免了画面掉帧造成应用卡顿的情况。
6.第一方面,本技术提供了一种振动输出方法,该方法包括:电子设备获取到应用的第一振动描述文件。该电子设备基于该第一振动描述文件,确定出第一振动标识。当该电子设备基于该第一振动标识确定出本地存储空间中存储有该第一振动标识对应的第一驱动波形数据时,该电子设备基于该第一驱动波形数据,驱动马达输出第一振动响应。这样,电子设备可以不用基于振动描述文件计算生成对应的驱动波形数据,节省了cpu资源,提高了振动输出的效率,从而避免了画面掉帧造成应用卡顿的情况。
7.在一种可能的实现方式中,该方法还包括:当该电子设备基于该第一振动标识确定出该本地存储空间中没有该第一驱动波形数据时,该电子设备基于该第一振动描述文件,生成该第一驱动波形数据。该电子设备在该本地存储空间中存储该第一振动标识和该第一驱动波形数据。该电子设备基于该第一驱动波形数据,驱动马达输出第一振动响应。这样,电子设备存储了第一振动标识和第一驱动波形数据,后续当电子设备再次获取到第一振动标识时,可以直接获取到第一驱动波形数据,而不用基于第一振动描述文件计算生成第一驱动波形数据,节省了cpu资源,提高了振动输出的效率,从而避免了画面掉帧造成应用卡顿的情况。
8.在一种可能的实现方式中,该电子设备在该本地存储空间中存储该第一振动标识和该第一驱动波形数据,具体包括:当该电子设备确定出该本地存储空间中已存储的驱动波形数据的数量小于第一数量时,该电子设备在该本地存储空间中存储该第一振动标识和该第一驱动波形数据。这样,可以更加高效地存储振动标识和驱动波形数据。
9.在一种可能的实现方式中,该电子设备存储该第一振动标识和该第一驱动波形数据,具体包括:当该电子设备确定出该本地存储空间中已存储的驱动波形数据的数量等于第一数量时,该电子设备清除该本地存储空间中已存储的驱动波形数据中的第二驱动波形数据以及该第二驱动波形数据对应的第二振动标识。该电子设备在该本地存储空间中存储该第一振动标识和该第一驱动波形数据。这样,可以更加高效地存储振动标识和驱动波形数据。
10.在一种可能的实现方式中,该第一振动描述文件包括该第一振动响应的振动总时长。在该电子设备基于该第一振动标识确定出本地存储空间中存储有该第一振动标识对应的第一驱动波形数据之前,该方法包括:当该电子设备确定出该第一振动响应的振动总时长大于第一预设时长时,该电子设备基于该第一振动标识判断该本地存储空间中是否存储有该第一驱动波形数据。这样,电子设备基于振动时长是否大于预设时长来确定是否基于振动标识获取到驱动波形数据,可以节省了cpu资源,提高振动输出的效率,从而避免了画面掉帧造成应用卡顿的情况。
11.在一种可能的实现方式中,该电子设备基于该第一振动描述文件,确定出该第一振动描述文件对应的第一振动标识,具体包括:该第一振动描述文件包括一个或多个振动频率以及各振动频率对应的振动时长。该电子设备基于该第一算法、该一个或多个振动频率和各振动频率对应的振动时长,计算出该第一振动描述文件对应的该第一振动标识。
12.在一种可能的实现方式中,该第一振动描述文件包括该第一振动标识。该电子设备基于该第一振动描述文件,确定出该第一振动描述文件对应的第一振动标识,具体包括:该电子设备从该第一振动描述文件中获取该第一振动标识。
13.在一种可能的实现方式中,该第二驱动波形数据是该本地存储空间中调用频率最低的驱动波形数据。
14.在一种可能的实现方式中,该第二驱动波形数据是该本地存储空间中最先存储的驱动波形数据。
15.在一种可能的实现方式中,该本地存储空间是该电子设备中的运行内存和/或磁盘。
16.在一种可能的实现方式中,该第一振动标识为该第一振动描述文件对应的振动标识。
17.第二方面,本技术实施例提供了一种电子设备,该电子设备包括:一个或多个处理器、一个或多个存储器、马达和收发器。该一个或多个存储器与一个或多个处理器耦合,该一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当该一个或多个处理器执行该计算机指令时,使得该电子设备执行上述第一方面中任一项可能的实现方式中的方法。这样,节省了cpu资源,提高了振动输出的效率,从而避免了画面掉帧造成应用卡顿的情况。
18.第三方面,本技术实施例提供了一种计算机可读存储介质,包括计算机指令,当该
计算机指令在电子设备上运行时,使得该电子设备执行上述第一方面中任一项可能的实现方式中的方法。这样,节省了cpu资源,提高了振动输出的效率,从而避免了画面掉帧造成应用卡顿的情况。
19.第四方面,本技术实施例提供了一种计算机程序产品,当该计算机程序产品在电子设备上运行时,使得该电子设备执行上述第一方面中任一项可能的实现方式中的方法。这样,节省了cpu资源,提高了振动输出的效率,从而避免了画面掉帧造成应用卡顿的情况。
附图说明
20.图1为本技术实施例提供的一种电子设备100的硬件结构示意图;
21.图2a-图2d为本技术实施例提供的一组用户界面示意图;
22.图2e为本技术实施例提供的一种帧数示意图;
23.图3为本技术实施例提供的一种振动输出方法的流程示意图;
24.图4为本技术实施例提供的一种软件结构示意图。
具体实施方式
25.本技术以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本技术的限制。如在本技术得到说明书和所附权利要书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,本技术中使用的术语“和/或”是指包含一个或多个所列出醒目的任何或所有可能组合。在本技术实施例中,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本技术实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
26.首先,介绍本技术实施例中提供的一种电子设备100。
27.请参考图1,图1示例性示出了本技术实施例中提供的一种电子设备100的硬件结构示意图。
28.如图1所示,电子设备100可以是手机、平板电脑、pc、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本、个人数字助理(personaldigital assistant,pda)等电子设备,本技术实施例对该电子设备的具体类型不作特殊限制。
29.电子设备100可以包括处理器101、存储器102、显示屏104、传感器模块105和马达109等。上述各个模块可以通过总线或者其他方式连接,本技术实施例以通过总线连接为例。
30.可以理解的是,本技术实施例示意的结构并不构成对电子设备100的具体限定。在本技术另一些实施例中,电子设备100还可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或软件和硬件的组合来实现。
31.处理器101可以包括一个或多个处理器单元,例如处理器101可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,视频编解码器,数字
信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
32.处理器101中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器101中的存储器为高速缓冲存储器。该存储器可以保存处理器101刚用过或循环使用的指令或数据。如果处理器101需要再次使用该指令或数据,可以从所述存储器中直接调用。避免了重复存取,减少了处理器101的等待时间,因而提高了系统的效率。
33.在一些实施例中,处理器101可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,i2c)接口,集成电路内置音频(inter-integrated circuit sound,i2s)接口,脉冲编码调制(pulse code modulation,pcm)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,uart)接口,移动产业处理器接口(mobile industry processor interface,mipi),通用输入输出(general-purpose input/output,gpio)接口,用户标识模块(subscriber identity module,sim)接口,和/或usb接口等。
34.存储器102与处理器101耦合,用于存储各种软件程序和/或多组指令。具体实现中,存储器102可以包括易失性存储器(volatile memory),例如随机存取存储器(randomaccessmemory,ram);也可以包括非易失性存储器(non-vlatile memory),例如rom、快闪存储器(flash memory)、硬盘驱动器(hard disk drive,hdd)或固态硬盘(solid state drives,ssd);存储器102还可以包括上述种类的存储器的组合。存储器102还可以存储一些程序代码,以便于处理器101调用存储器102中存储的程序代码,以实现本技术实施例在电子设备100中的实现方法。存储器102可以存储操作系统,例如ucos、vxworks、rtlinux等嵌入式操作系统。
35.显示屏104可以用于显示图像、视频等。显示屏104可以包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,lcd),有机发光二极管(organic light-emitting diode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,amoled),柔性发光二极管(flex light-emitting diode,fled),miniled,microled,micro-oled,量子点发光二极管(quantum dot light emitting diodes,qled)等。在一些实施例中,电子设备100可以包括1个或n个显示屏104,n为大于1的正整数。
36.传感器模块105可以包括触摸传感器模块105a等等。触摸传感器模块105a也可以称为“触控器件”。触摸传感器模块105a可以设置于显示屏104,由触摸传感器模块105a与显示屏104组成触摸屏,也称“触控屏”。触摸传感器模块105a可以用于检测作用于其上或附近的触摸操作。可选的,传感器模块105还可以包括有陀螺仪传感器(图1未示出)、加速度传感器(图1未示出)等等。其中,陀螺仪传感器可以用于确定电子设备100的运动姿态,在一些实施例中,电子设备100可以通过陀螺仪传感器确定出电子设备100围绕三个轴(即,x,y和z轴)的角速度。加速度传感器可以用于检测电子设备100在各个方向上(一般为x,y和z轴)加速度的大小。当电子设备100静止时可以检测出重力的大小及方向。
37.马达109可以产生振动提示。马达109可以用于来电振动提示,也可以用于触摸振
动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏104不同区域的触摸操作,马达109也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
38.需要说明的是,图1仅仅用于示例性解释本技术,并不应对本技术构成具体限制。
39.接下来,结合应用场景,介绍本技术实施例中提供的一种振动输出流程。
40.在一些应用场景中,电子设备100可以接收到应用中一个或多个振动数据。电子设备100可以按照指定顺序(例如,按照获取到上述一个或多个振动数据的时间顺序)处理该一个或多个振动数据。电子设备100可以基于上述振动数据生成各振动数据对应的驱动波形。电子设备100可以通过马达基于上述的驱动波形输出振动响应。
41.然而,在电子设备运行指定应用的过程中,当cpu负载较高时,cpu资源无法及时处理时长较长的振动数据,因此,会造成指定应用运行时的画面帧率小于指定阈值,从而导致画面掉帧、应用卡顿的现象,给用户造成非常不好的体验。
42.示例性的,以游戏应用场景为例,应用可以是游戏应用。电子设备100可以接收到用户针对该游戏应用的输入1。响应于该输入1,电子设备100可以运行该游戏应用,并在电子设备100上的显示屏上显示出该游戏应用的游戏界面。当用户操控该游戏界面上的目标对象进行游戏的过程中,电子设备100可以接收并响应于用户的输入2,获取到该游戏应用中一个或多个振动数据。电子设备100可以按照指定顺序(例如,按照获取到振动数据的时间顺序)处理上述一个或多个振动数据,生成各振动数据对应的驱动波形。电子设备100可以通过马达基于上述的驱动波形输出振动响应。
43.如图2a所示,电子设备100可以显示出主界面200。该主界面200可以显示有一个或多个应用图标。其中,该一个或多个应用图标可以包括天气应用图标、股票应用图标、计算器应用图标、设置应用图标、邮件应用图标、主题应用图标、音乐应用图标、视频应用图标和游戏应用对应的游戏应用图标201等等。
44.可选的,主界面200还可以显示有状态栏、页面指示符和托盘图标区域。其中,状态栏可以包括移动通信信号(又可以被称为蜂窝信号)的一个或多个信号强度指示符、无线保真(wirelessfidelity,wi-fi)信号的信号强度指示符、电池状态指示符、时间指示符等等。页面指示符可以用于表明当前显示的页面与其他页面的位置关系。托盘图标区域可以包括有多个托盘图标(例如,拨号应用图标、信息应用图标、联系人应用图标、相机应用图标等等),上述托盘图标在页面切换时保持显示。上述页面也可以包括多个应用图标和页面指示符,页面指示符可以不是页面的一部分,页面指示符可以单独存在,上述托盘图标也是可选的,本技术对此不作限制。
45.电子设备100可以接收到用户作用于游戏应用图标201上的触摸操作(也可以被称为输入1,例如,点击),响应于该触摸操作,电子设备100可以显示出游戏应用对应的游戏界面。
46.如图2b所示,电子设备100可以显示出游戏界面210。其中,该游戏界面210可以包括游戏画面、一个或多个控件(例如方向控件211、地图控件212、任务控件213、大招控件214和普攻控件215等)和目标对象216。其中,方向控件211可以用于接收用户作用于该控件区域的触摸操作(例如,点击),响应于该触摸操作,电子设备100可以显示出目标对象216在相
应方向上(例如,向上、向下、向左或向右等)的移动。目标对象216是游戏应用中所操作的主体。大招控件214和普攻控件215可以接收到用户作用于其上的触摸操作(例如,点击),响应于该触摸操作,电子设备100可以显示出目标对象216施放相应技能的画面。
47.如图2c-图2d所示,电子设备100可以接收到用户作用于大招控件214上的触摸操作(例如,点击),响应于该触摸操作,电子设备100可以在游戏界面210中显示出目标对象216施放出大招技能的游戏画面。同时,在该过程中,电子设备100可以接收并响应于用户的上述作用在大招控件214上的触摸操作(也可以被称为输入2),获取到该游戏应用中一个或多个振动数据。电子设备100可以按照指定顺序(例如,按照获取到振动数据的时间顺序)处理上述一个或多个振动数据,生成各振动数据对应的驱动波形。电子设备100可以通过马达基于上述的驱动波形输出振动响应。
48.然而,由上述过程中可以看出,当在用户在进行游戏的过程中,当cpu负载较高时,cpu资源无法及时处理时长较长的振动数据,因此,会造成游戏运行时的画面帧率小于指定阈值(例如,60帧/秒),从而导致画面掉帧、游戏卡顿的现象。示例性的,电子设备100可以通过指定测试工具(例如,perfdog测试工具)对该场景下的画面帧率进行测试,从而获得如图2e所示的帧率视图。其中,该帧率视图以60帧/秒为指定阈值,y轴表示帧率数值,x轴表示时间数值。由上述帧率图2e所示的帧率视图可以看出,当cpu资源无法及时处理时长较长的振动数据时,游戏运行时的画面帧率往往会小于60帧/秒,因此导致了游戏画面掉帧,从而造成游戏卡顿的情况发生。
49.因此,本技术实施例提供了一种振动输出方法。
50.电子设备100可以获取到应用(例如,游戏应用、视频应用、音乐应用和购物应用等等)中的振动描述文件1。该振动描述文件1可以包括一个或多个振动频率以及各振动频率对应的振动时长。电子设备100可以基于上述振动频率和各振动频率对应的振动时长确定出振动描述文件1对应的振动标识1。例如,电子设备100可以根据上述振动频率、各振动频率对应的振动时长和指定算法(例如,循环冗余校验(cyclic redundancy check,crc)32加密算法或信息-摘要算法5(message-digest algorithm 5,md5)等)计算出振动描述文件1对应的振动标识1。当电子设备100确定出该振动标识1对应的驱动波形数据1存在于本地存储空间中时,电子设备100可以直接从本地存储空间中获取到该驱动波形数据1,而不需要基于振动描述文件1计算确定出驱动波形数据1。然后,电子设备100可以通过马达基于上述驱动波形数据1,输出相应的振动响应。
51.这样,电子设备100可以不用处理振动描述文件1生成对应的驱动波形数据1,而是基于振动描述文件1对应的振动标识1从本地存储空间中获取到对应的驱动波形数据1,节省了cpu资源,提高了振动输出的效率,因此可以使得应用(例如,游戏应用、视频应用、音乐应用和购物应用等等)运行时的画面帧率不小于指定阈值(例如,60帧/秒),从而避免了画面掉帧造成应用卡顿的情况。
52.下面,介绍本技术实施例提供的一种振动输出方法。
53.请参考图3,图3示例性示出了本技术实施例提供的一种振动输出方法的具体流程图。
54.s301、电子设备100获取应用中的振动描述文件1(也可以被称为第一振动描述文件)。
55.具体的,该振动描述文件1可以包括该振动描述文件对应的振动总时长、一个或多个振动频率以及各振动频率对应的振动时长。电子设备100可以基于应用中的指定场景获取到振动描述文件1;电子设备100也可以接收到用户针对指定控件的输入,响应于该输入,电子设备100可以基于指定控件的标识获取到振动描述文件1。本技术对此不作限制。
56.示例性的,以游戏应用场景为例,应用可以是游戏应用。其中,游戏应用中的振动描述文件与游戏场景或游戏控件的映射关系可以如表1所示:
57.表1
[0058][0059]
由表1可知,在该游戏应用中,“大招”控件对应有振动描述文件1,也即是说,当电子设备100接收到用户针对于“大招”控件上的触摸操作(例如,点击),响应于该触摸操作,电子设备100可以获取到振动描述文件1;“普攻”控件可以对应有振动描述文件2,也即是说,当电子设备100接收到用户针对于“普攻”控件上的触摸操作(例如,点击),响应于该触摸操作,电子设备100可以获取到振动描述文件2;游戏应用中的雨天场景对应有振动描述文件3,也即是说,当电子设备100检测到游戏应用显示出雨天场景的游戏界面时,电子设备100可以获取到振动描述文件3。
[0060]
需要说明的是,该表1仅仅用于示例性解释本技术,在具体实现中,表1可以包括更多或更少的振动描述文件以及振动描述文件对应的游戏控件或游戏场景。本技术对此不作限制。
[0061]
在一种可能的实现方式中,振动描述文件1、振动描述文件2和振动描述文件3等振动描述文件可以存储在应用的存储区域中,也即是说,当电子设备100可以基于识别到的指定场景和/或响应于接收到的用户作用在指定控件上的输入,通过应用获取到指定的振动描述文件;在另一种可能的实现方式中,振动描述文件1、振动描述文件2和振动描述文件3等振动描述文件可以存储在区别于应用对应存储空间的存储区域中,也即是说,当电子设备100可以基于识别到的指定场景和/或响应于接收到的用户作用在指定控件上的输入,电子设备100从上述存储区域中获取到指定的振动描述文件;在另一种可能的实现方式中,振动描述文件1、振动描述文件2和振动描述文件3等振动描述文件可以存储在云服务器上,也即是说,当电子设备100可以基于识别到的指定场景和/或响应于接收到的用户作用在指定控件上的输入,电子设备100可以从云服务器上获取到获取到指定的振动描述文件。本技术对此不作限制。
[0062]
电子设备100可以接收到用户针对该游戏应用的输入1。响应于该输入1,电子设备100可以显示出游戏界面1。上述过程中所示的用户界面可以参考前述图2a-图2b所示实施例中的描述,在此不再赘述。电子设备100可以接收到用户作用于“大招”控件上的触摸操作(也可以被称为输入2,例如,点击),响应于该触摸操作,电子设备100可以获取到“大招”控件对应的振动描述文件1。上述过程中所示的用户界面可以参考前述图2c-图2d所示实施例中的描述,在此不再赘述。
[0063]
其中,振动描述文件1可以包括该振动描述文件1对应的振动总时长、多个振动频率和各振动频率的振动时长,如表2所示:
[0064]
表2
[0065][0066][0067]
由表2可知,该振动描述文件1对应的振动总时长可以是1秒,在0毫秒到250毫秒的时间段中,振动频率为150hz;在250毫秒到500毫秒的时间段中,振动频率为250hz;在500毫秒到750毫秒的时间段中,振动频率为500hz;在750毫秒到1秒的时间段中,振动频率为250hz。
[0068]
需要说明的是,表2仅仅用于示例性解释本技术,不应对本技术构成具体限制。
[0069]
s302、电子设备100基于振动描述文件1,确定出振动描述文件1对应的振动标识1(也可以被称为第一振动标识)。
[0070]
具体的,电子设备100可以基于振动描述文件1中的一个或多个振动频率和各振动频率对应的振动时长,确定出振动描述文件1对应的振动标识。例如,电子设备100可以基于振动描述文件1中的一个或多个振动频率和各振动频率对应的振动时长,通过指定算法(也可以被称为第一算法,例如,crc32算法或md5算法等),计算出振动描述文件1对应的振动标识1。该振动标识1具体的值可以是指定的字节(例如,6字节或8字节等)。
[0071]
示例性的,以表2所示的振动描述文件1为例,该振动描述文件1的数据码流可以是例如“100101011100011010001000100
……”
,以上述数据码流为输入,电子设备100可以根据crc32算法,计算出该振动描述文件1对应的振动标识1。该振动标识1具体的值可以是“ef54060d”。
[0072]
s303、当电子设备100确定出振动描述文件1的总振动时长大于预设时长1(也可以被称为第一预设时长,例如,100毫秒)时,电子设备100基于振动标识1,判断本地存储空间中是否存储有振动标识1对应的驱动波形数据1。
[0073]
具体的,在电子设备100判断本地存储空间中是否存储有振动标识1对应的驱动波形数据1之前,电子设备100可以存储有指定数量(例如,10个)的振动描述文件对应的振动标识以及该振动标识对应的驱动波形数据。
[0074]
示例性的,振动描述文件和振动标识的映射关系可以如表3所示:
[0075]
表3
[0076][0077]
由表3可知,振动描述文件1对应振动标识1,振动描述文件2对应振动标识2,振动描述文件3对应振动标识3,振动描述文件4对应振动标识4,振动描述文件5对应振动标识5,振动描述文件6对应振动标识6,振动描述文件7对应振动标识7,振动描述文件8对应振动标识8,振动描述文件9对应振动标识9,振动描述文件10对应振动标识10等。
[0078]
需要说明的是,表3仅仅用于示例性解释本技术,不应对本技术构成具体限制。
[0079]
以电子设备100的本地存储空间可以存储10个振动标识以及各振动标识对应的驱动波形数据为例,电子设备100在本地存储空间中存储的振动标识以及该振动标识对应的驱动波形数据可以如表4所示:
[0080]
表4
[0081]
振动标识1驱动波形数据1振动标识2驱动波形数据2振动标识3驱动波形数据3振动标识4驱动波形数据4振动标识5驱动波形数据5振动标识6驱动波形数据6振动标识7驱动波形数据7振动标识8驱动波形数据8振动标识9驱动波形数据9振动标识10驱动波形数据10
[0082]
由表4可知,电子设备100的存储空间中存储有振动描述文件1对应的振动标识1,以及振动标识1对应的驱动波形数据1;振动描述文件2对应的振动标识2,以及振动标识2对应的驱动波形数据2;振动描述文件3对应的振动标识3,以及振动标识3对应的驱动波形数据3;振动描述文件4对应的振动标识4,以及振动标识4对应的驱动波形数据4;振动描述文件5对应的振动标识5,以及振动标识5对应的驱动波形数据5;振动描述文件6对应的振动标识6,以及振动标识6对应的驱动波形数据6;振动描述文件7对应的振动标识7,以及振动标识7对应的驱动波形数据7;振动描述文件8对应的振动标识8,以及振动标识8对应的驱动波形数据8;振动描述文件9对应的振动标识9,以及振动标识9对应的驱动波形数据9;振动描
述文件10对应的振动标识10,以及振动标识10对应的驱动波形数据10等。
[0083]
需要说明的是,表4仅仅用于示例性解释本技术,不应对本技术构成具体限制。
[0084]
s304、当电子设备100确定出本地存储空间中存在该驱动波形数据1时,电子设备100获取到该振动标识1对应的驱动波形数据1(也可以被称为第一驱动波形数据)。
[0085]
其中,在一些实施例中,该本地存储空间可以是电子设备100上的运行内存。当该本地存储空间是电子设备100上的运行内存时,电子设备100可以更为快速地从本地存储空间中读取到驱动波形数据1,提高电子设备100的运行效率。在一些实施例中,本地存储空间可以是电子设备100上的磁盘。当该本地存储空间是电子设备100上的磁盘时,本地存储空间可以存储更多的驱动波形数据以及各驱动波形数据对应的振动标识。
[0086]
s305、电子设备100基于上述驱动波形数据1,驱动马达输出对应的振动响应(也可以被称为第一振动响应)。
[0087]
s306、当电子设备100确定出本地存储空间中没有振动标识1对应的驱动波形数据1时,电子设备100判断本地存储空间中是否存储有指定数量(例如,10个)的振动标识。
[0088]
s307、当电子设备100确定出本地存储空间中的振动标识以及对应的驱动波形数据小于指定数量(也可以被称为第一数量,例如,10个)时,电子设备100基于振动描述文件1生成对应的驱动波形数据1。
[0089]
示例性的,例如电子设备100本地存储空间中可以存储10个振动标识以及个振动标识对应的驱动波形数据,此时,电子设备100判断出本地存储空间中存储有7个振动标识以及个振动标识对应的驱动波形数据,且其中不包括振动标识1以及振动标识1对应的驱动波形数据1,如表5所示:
[0090]
表5
[0091]
振动标识2驱动波形数据2振动标识3驱动波形数据3振动标识4驱动波形数据4振动标识5驱动波形数据5振动标识6驱动波形数据6振动标识7驱动波形数据7振动标识8驱动波形数据8
[0092]
由表5可知,此时,电子设备100的本地存储空间中存储有振动描述文件2对应的振动标识2,以及振动标识2对应的驱动波形数据2;振动描述文件3对应的振动标识3,以及振动标识3对应的驱动波形数据3;振动描述文件4对应的振动标识4,以及振动标识4对应的驱动波形数据4;振动描述文件5对应的振动标识5,以及振动标识5对应的驱动波形数据5;振动描述文件6对应的振动标识6,以及振动标识6对应的驱动波形数据6;振动描述文件7对应的振动标识7,以及振动标识7对应的驱动波形数据7;振动描述文件8对应的振动标识8,以及振动标识8对应的驱动波形数据8。
[0093]
然后,以前述表1所示的振动描述文件1为例,电子设备100可以基于该振动描述文件1生成驱动波形数据1。
[0094]
s308、电子设备100存储振动标识1、驱动波形数据1以及振动标识1和驱动波形数据1的映射关系。
[0095]
示例性的,电子设备100可以将振动标识1、该振动描述文件1对应的驱动波形数据1以及两者间的映射关系存储在基于表5所示的本地存储空间中,如表6所示:
[0096]
表6
[0097][0098][0099]
s309、电子设备100基于上述驱动波形数据1,驱动马达输出对应的振动响应。
[0100]
s310、当电子设备100确定出本地存储空间中存储的振动标识的个数等于指定数量(也可以被称为第一数量,例如,10个)时,电子设备100可以根据指定规则(例如,按照存储时间的先后顺序或调用频率由低到高)清除预设数量(例如,1个)的振动标识及对应的驱动波形数据。
[0101]
示例性的,以指定数量是10个为例,若本地存储空间中存储的振动标识的个数等于10个时,电子设备100可以清除本地存储空间中调用频率最低的第二驱动波形数据和该第二驱动波形数据对应的第二振动标识。
[0102]
s311、电子设备100基于振动描述文件1生成对应的驱动波形数据1。
[0103]
s312、电子设备100在本地存储空间中存储振动标识1、驱动波形数据1以及振动标识1和驱动波形数据1的映射关系。
[0104]
s313、电子设备100基于上述驱动波形数据1,驱动马达输出对应的振动响应。
[0105]
需要说明的是,上述实施例中有些步骤是可选的。例如,步骤s303中电子设备100确定出振动描述文件1的总振动时长大于预设时长1是可选的,电子设备100可以不判断振动描述文件1的总振动时长是否大于预设时长1,而是直接基于振动标识1,判断本地存储空间中是否存储有振动标识1对应的驱动波形数据1。本技术对此不作限制。
[0106]
在一些实施例中,电子设备100可以基于两个或两个以上的振动描述文件,确定出两个或两个以上的振动标识。电子设备100可以基于上述两个或两个以上的振动标识,从本地存储空间中获取到对应的两个或两个以上的驱动波形数据。然后,电子设备100可以驱动马达同时输出该两个或两个以上的驱动波形数据,或者,电子设备100驱动马达输出该两个或两个以上的驱动波形数据中,振动时长最长的驱动波形数据。
[0107]
示例性的,电子设备100的本地存储空间中存储有驱动波形数据1和驱动波形数据2,其中,驱动波形数据1的振动时长大于驱动波形数据2的振动时长。电子设备100可以通过识别到的指定场景和/或用户作用在指定控件上的输入,获取到振动描述文件1和振动描述文件2。然后,电子设备100可以基于振动描述文件1确定出振动标识1,基于振动描述文件2确定出振动标识2。电子设备100可以基于振动标识1从本地存储空间中获取到振动标识1对应的驱动波形数据1,基于振动标识2从本地存储空间中获取到振动标识2对应的驱动波形
数据2。电子设备100可以驱动马达同时输出驱动波形数据1和驱动波形数据2,或者,当电子设备100确定出驱动波形数据1振动时长大于驱动波形数据2的振动时长时,电子设备100可以驱动马达输出该驱动波形数据1。
[0108]
在一些实施例中,当电子设备100确定出振动描述文件1的总时长小于预设时长1(例如,100毫秒)时,电子设备100可以基于振动描述文件1生成对应的驱动波形数据1。然后,电子设备100基于上述驱动波形数据1,通过马达输出对应的振动响应。
[0109]
在一些实施例中,电子设备100可以按照预设周期(例如,2毫秒)检测本地存储空间中的驱动波形数据。若在预设时长2(例如,100毫秒)内,本地存储空间中的驱动波形数据没有调用或本地存储空间中没有驱动波形数据进行更新时,电子设备100可以清除指定数量(例如,10个)的振动标识及各振动标识对应的驱动波形数据。
[0110]
在一些实施例中,振动描述文件1中也可以包括应用所设置的对应的振动标识。该振动标识可以和振动标识1相同,也可以和振动标识1不同。当振动描述文件1中包括有上述振动标识时,电子设备100可以不需要通过指定算法(例如,crc32算法或md5算法等)和振动描述文件1中的一组或多组振动信息计算出振动标识1,而是直接基于应用所设置的振动标识判断电子设备100的本地存储空间中是否存在对应的驱动波形数据。若有,则电子设备100基于驱动波形数据,驱动马达输出对应的振动响应;若无,则电子设备100基于振动描述文件1生成驱动波形数据,将该驱动波形数据、应用所设置的振动标识以及两者间的映射关系存储在本地存储空间中,并驱动马达基于上述驱动波形数据输出对应的振动响应。本技术对此不作限制。
[0111]
下面,介绍本技术实施例提供的一种软件结构。
[0112]
请参考图4,图4示例性示出了一种本技术实施例提供的软件结构示意图。
[0113]
如图4所示,电子设备100的软件结构可以分为应用程序层、应用程序框架层、硬件抽象层和内核层。
[0114]
应用程序层可以包括一系列应用程序包。
[0115]
如图4所示,应用程序包可以包括相机、日历、备忘录、天气、视频应用、音乐应用和游戏应用程序等。其中,前述图3所示实施例中的应用可以是能够通过电子设备100输出振动响应的应用,例如视频应用、音乐应用和游戏应用等等。
[0116]
应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。
[0117]
如图4所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器和振动标识确定模块等等。
[0118]
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
[0119]
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
[0120]
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
[0121]
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,
挂断等)。
[0122]
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
[0123]
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
[0124]
振动标识确定模块可以基于从应用程序层中的应用下发的振动描述文件1确定出该振动描述文件1对应的振动标识1,该过程可以参考前述图3所示实施例中的步骤s302中的描述,在此不再赘述。在一些实施例中,振动标识确定模块也可以根据振动描述文件1中有应用所设置的振动标识确定出振动描述文件1对应的振动标识。
[0125]
硬件抽象层可以包括驱动波形数据判断模块。其中,该驱动波形数据模块可以接收到由应用程序框架层下发的振动标识1,并基于该振动标识1判断本地存储空间中是否存在对应的驱动波形数据1。该过程可以参考前述图3所示实施例中步骤303-步骤305或步骤306-步骤s309中的描述,在此不再赘述。
[0126]
内核层可以包括显示驱动、摄像头驱动、音频驱动、传感器驱动和马达驱动等。其中,马达驱动可以接收到驱动波形数据判断模块下发的驱动波形数据1,并基于该驱动波形数据1驱动硬件层中的马达输出对应的振动响应。
[0127]
在一些实施例中,驱动波形数据判断模块可以存在于内核层中。本技术对此不作限制。
[0128]
上述实施例中所用,根据上下文,术语“当

时”可以被解释为意思是“如果
…”
或“在

后”或“响应于确定
…”
或“响应于检测到
…”
。类似地,根据上下文,短语“在确定

时”或“如果检测到(所陈述的条件或事件)”可以被解释为意思是“如果确定
…”
或“响应于确定
…”
或“在检测到(所陈述的条件或事件)时”或“响应于检测到(所陈述的条件或事件)”。
[0129]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如dvd)、或者半导体介质(例如固态硬盘)等。
[0130]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:rom或随机存
储记忆体ram、磁碟或者光盘等各种可存储程序代码的介质。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1