CN116030846B - 计时跳变同步的方法及电子设备 - Google Patents
计时跳变同步的方法及电子设备 Download PDFInfo
- Publication number
- CN116030846B CN116030846B CN202210715521.XA CN202210715521A CN116030846B CN 116030846 B CN116030846 B CN 116030846B CN 202210715521 A CN202210715521 A CN 202210715521A CN 116030846 B CN116030846 B CN 116030846B
- Authority
- CN
- China
- Prior art keywords
- time
- timing
- timer
- slave
- jump
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Telephone Function (AREA)
Abstract
本申请提供了一种计时跳变同步的方法及电子设备,属于终端技术领域。该方法包括:响应于从计时器开始计时,查询主计时器的状态;当主计时器的状态为开始计时或者暂停后恢复计时时,根据从计时器的计时参数和主计时器的计时参数,获取从计时器的同步调整时长;根据同步调整时长调整所述从计时器的计时开始时刻或者暂停总时长,使得从计时与主计时同步跳变。该方法通过在使用两个计时器控件的场景中,对两个独立的计时器的跳变频率进行自适应的同步,使得两计时器在视觉上形成统一的动画,给用户带来更好的界面使用体验。
Description
本申请要求于2022年05月30日提交国家知识产权局、申请号为202210603470.1、申请名称为“计时跳变同步的方法及电子设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及终端技术领域,尤其涉及一种计时跳变同步的方法及电子设备。
背景技术
目前的计时多采用计时时间每秒跳变一次的方式。当两个计时器的计时时间在一个显示界面上同时显示时,如果两个计时器分别对应的计时时间跳变不一致,会导致用户体验不佳。
发明内容
本申请实施例提供了一种计时跳变同步的方法及电子设备,通过在使用两个计时器控件的场景中,对两个独立的计时器的跳变频率进行自适应的同步,使得两计时器在视觉上形成统一的动画,给用户带来更好的界面使用体验。
第一方面,提供了一种计时跳变同步的方法,应用于电子设备,所述电子设备包括第一界面,所述第一界面包括主计时和从计时,所述主计时对应主计时器,所述从计时对应从计时器,所述方法包括:
响应于所述从计时器开始计时,查询所述主计时器的状态;
当所述主计时器的状态为开始录制或者暂停后恢复录制时,根据所述从计时器的计时参数和所述主计时器的计时参数,获取从计时器的同步调整时长;
根据所述同步调整时长调整所述从计时器的计时开始时刻或者暂停总时长,使得所述从计时与所述主计时同步跳变。
根据本实现方式提供的计时跳变同步的方法,通过在使用两个计时器控件的场景中,对两个独立的计时器的跳变频率进行自适应的同步,能够使得两计时器在视觉上形成统一的动画,给用户带来更好的界面观看体验。
结合第一方面,在第一方面的某些实现方式中,当所述主计时器的状态为开始录制时,且所述主计时器的计时开始时刻早于所述从计时器的计时开始时刻时;或者,当所述主计时器暂停后恢复计时,从主计时器开始计时,且所述主计时器的恢复时刻早于所述从计时器的计时开始时刻时,所述方法具体包括:
获取第一同步调整时长,所述第一同步调整时长为从计时器的计时开始时刻减去所述主计时器的计时开始时刻的差值;
当所述第一同步调整时长小于跳变周期的一半时,将所述从计时器的计时开始时刻增大所述第一同步调整时长,以获取调整后的所述计时器的计时开始时刻;
当所述第一同步调整时长大于或等于跳变周期的一半时,将所述从计时器的计时开始时刻减小所述第一同步调整时长,以获取调整后的所述计时器的计时开始时刻。
结合第一方面,在第一方面的某些实现方式中当所述主计时器的状态为开始录制时,且所述主计时器的计时开始时刻晚于所述从计时器的计时开始时刻时,所述方法具体包括:
获取第二同步调整时长,所述第二同步调整时长为主计时器的计时开始时刻减去所述从计时器的计时开始时刻的差值;
当所述第二同步调整时长小于跳变周期的一半时,将所述从计时器的计时开始时刻增大所述第二同步调整时长,以获取调整后的所述计时器的计时开始时刻;
当所述第二同步调整时长大于或等于跳变周期的一半时,将所述从计时器的计时开始时刻减小所述第二同步调整时长,以获取调整后的所述计时器的计时开始时刻。
结合第一方面,在第一方面的某些实现方式中当所述主计时器暂停后恢复计时,从主计时器开始计时,且所述方法具体包括:
获取所述主计时器恢复计时后的下一次理论跳变时刻;
获取第三同步调整时长,所述第三同步调整时长为所述将所述下一次理论跳变时刻和所述从计时器的计时开始时刻的差值对跳变周期的取余;
当所述第三同步调整时长小于跳变周期的一半时,将所述从计时器的计时开始时刻增大所述第三同步调整时长,以获取调整后的所述计时器的计时开始时刻;
当所述第三同步调整时长大于或等于跳变周期的一半时,将所述从计时器的计时开始时刻减小所述第三同步调整时长,以获取调整后的所述计时器的计时开始时刻。
结合第一方面,在第一方面的某些实现方式中当所述从计时器暂停后恢复计时,所述主计时器保持计时时,所述方法具体包括:
获取所述主计时器相对于从计时器恢复时刻的下一次理论跳变时刻;
计算所述从计时器恢复时刻距离所述下一次理论跳变时刻的第一差距时长;
获取第四同步调整时长,所述第四同步调整时长为所述下一次理论跳变时刻减去所述第一差距时长和从计时器的恢复时刻的差值;
将所述从计时器的暂停总时长增大所述第四同步调整时长,以获取调整后的所述从计时器的暂停总时长。
结合第一方面,在第一方面的某些实现方式中当所述主计时器和所述从计时器均暂停后恢复计时时,所述方法具体包括:
获取所述主计时器恢复计时后的下一次理论跳变时刻;
计算所述主计时器恢复时刻距离所述下一次理论跳变时刻的第二差距时长,以及所述从计时器恢复时刻距离所述下一次理论跳变时刻的第三差距时长;
获取第五同步调整时长,所述第五同步调整时长为所述第二差距时长减去所述第三差距时长的差值;
将所述从计时器的暂停总时长增大所述第五同步调整时长,以获取调整后的所述从计时器的暂停总时长。
结合第一方面,在第一方面的某些实现方式中所述方法还包括:
当多次调整后的所述从计时器的计时时间与真实计时时间的误差绝对值大于跳变周期时,将所述从计时器的计时时间调快或调慢一个跳变周期对应的时长。
结合第一方面,在第一方面的某些实现方式中所述当多次调整后的所述从计时器的计时时间与真实计时时间的误差绝对值大于跳变周期时,将所述从计时器的计时时间提前后延后一个跳变周期对应的时长,具体包括:
所述当多次调整后的所述从计时器的计时时间与真实计时时间的误差绝对值大于跳变周期时,若调慢一个跳变周期对应的时长,得到的修正计时时间小于未修正时的所述计时时间,则保持当前未修正时的所述计时时间。
第二方面,提供了一种电子设备,包括:一个或多个处理器;一个或多个存储器;所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得所述电子设备执行如上述第一方面中任一实现方式所述的方法。
第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行程序指令,所述计算机可执行程序指令在被计算机上运行时,使所述计算机执行如上述第一方面中任一实现方式所述的方法。
第四方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在计算机上运行时,使所述计算机执行如上述第一方面中任一实现方式所述的方法。
附图说明
图1为本申请实施例提供的一种电子设备的结构示意图。
图2为本申请实施例提供的一种电子设备100的软件结构框图。
图3A至图3D为本申请实施例提供的一些主角模式拍摄过程涉及的图形用户界面GUI示意图。
图4为本申请实施例场景一涉及到的计时跳变同步调整规则的示意图。
图5为本申请实施例场景二涉及到的计时跳变同步调整规则的示意图。
图6和图7为本申请实施例场景三涉及到的计时跳变同步调整规则的示意图。
图8和图9为本申请实施例场景四涉及到的计时跳变同步调整规则的示意图。
图10和图11为本申请实施例场景五涉及到的计时跳变同步调整规则的示意图。
图12为本申请实施例提供的一种辅助理解计算恢复录制时刻到理论跳变时刻时长的时间示意图。
图13为本申请实施例提供的另一种辅助理解计算恢复录制时刻到理论跳变时刻时长的时间示意图。
图14为本申请实施例提供的又一种辅助理解计算恢复录制时刻到理论跳变时刻时长的时间示意图。
图15为本申请实施例提供的一种计时跳变同步的方法的示意性流程图。
图16为本申请实施例提供的另一种计时跳变同步的方法的示意性流程图。
图17为本申请实施例提供的一种计时跳变同步的方法的时序图。
具体实施方式
需要说明的是,本申请实施例的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联障碍物的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,除非另有说明,“多个”是指两个或多于两个,“至少一个”、“一个或多个”是指一个、两个或两个以上。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”特征可以明示或者隐含地包括一个或者更多个该特征。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其它一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其它方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其它方式另外特别强调。
随着终端技术的发展和生活习惯的变迁,越来越多的用户习惯利用手机等电子设备来录制视频记录生活。为了满足用户多样的需求,电子设备提供了越来越多样化的视频录制模式。在一些视频录制模式下,同一界面能够同时显示多个视频录制窗口以便用户对不同对象进行拍摄。不同视频录制窗口通常会独立显示各自的拍摄计时,然而当不同窗口在不同时间开启拍摄时,很容易出现多个窗口计时跳变不一致的现象,导致用户体验不佳。
有鉴于此,本申请实施例提供了一种计时跳变同步的方法,通过在使用两个计时器控件的场景中,对两个独立的计时器的跳变频率进行自适应的同步,使得两个计时器的计时跳变在视觉上形成步频一直的动画,给用户带来更好的界面观看体验。
示例性的,如图1所示,为本申请实施例提供的一种电子设备100的结构示意图。
电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了***的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器110可以包含多组I2C总线。处理器110可以通过不同的I2C总线接口分别耦合触摸传感器180K,充电器,闪光灯,摄像头193等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C总线接口通信,实现电子设备100的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器110可以包含多组I2S总线。处理器110可以通过I2S总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过I2S接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过PCM总线接口耦合。在一些实施例中,音频模块170也可以通过PCM接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过UART接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过UART接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等***器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现电子设备100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现电子设备100的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与***设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他终端,例如AR设备等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为终端供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星***(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯***(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位***(global positioning system,GPS),全球导航卫星***(global navigation satellite system,GLONASS),北斗卫星导航***(beidounavigation satellite system,BDS),准天顶卫星***(quasi-zenith satellitesystem,QZSS)和/或星基增强***(satellite based augmentation systems,SBAS)。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。显示屏194用于显示图像,视频等。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。视频编解码器用于对数字视频压缩或解压缩。NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。陀螺仪传感器180B可以用于确定电子设备100的运动姿态。磁传感器180D包括霍尔传感器。电子设备100可以利用磁传感器180D检测翻盖皮套的开合。加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。还可以用于识别终端姿态,应用于横竖屏切换,计步器等应用。接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备100通过发光二极管向外发射红外光。环境光传感器180L用于感知环境光亮度。电子设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。指纹传感器180H用于采集指纹。温度传感器180J用于检测温度。触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。骨传导传感器180M可以获取振动信号。
此外,电子设备100还包括气压传感器180C和距离传感器180F。其中,气压传感器180C用于测量气压。在一些实施例中,电子设备100通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。
距离传感器180F,用于测量距离。电子设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,电子设备100可以利用距离传感器180F测距以实现快速对焦。
示例性的,电子设备100的软件***可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android***为例,示例性说明电子设备100的软件结构。图2是本申请实施例的电子设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android***分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和***库,以及内核层。
应用程序层可以包括一系列应用程序包。如图2所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图***,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图***包括可视控件,例如显示文字的控件,显示图片的控件等。视图***可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在***顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓***的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行障碍物生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
***库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子***进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
本申请实施例提供的计时跳变同步的方法可以应用于电子设备利用两个计时分别进行计时的场景下,尤其可以应用于主角模式拍摄时大小窗口单独计时的场景下。为了便于理解,下文结合主角模式的拍摄场景,对本申请实施例提供的计时跳变同步的方法进行介绍。
示例性的,主角模式是指在拍摄过程中,将拍摄场景中的某一对象作为拍摄主角,在大窗口拍摄的同时聚焦该主角,并在拍摄画面上同时显示小窗口以展示对主角的拍摄画面。
为便于理解,本申请实施例以电子设备100是手机为例,对利用主角模式拍摄视频的场景进行介绍。示例性的,图3A至图3D为本申请实施例提供的一些主角模式拍摄过程涉及的图形用户界面(graphical user interface,GUI)示意图。
其中,图3A示出了手机的解锁模式下,手机的屏幕显示***当前输出的界面内容301,该界面内容301为手机的主屏幕界面。该主屏幕界面可以包括应用图标显示区域10,用于显示多种类型的应用程序(application,App)图标,如时钟图标、日历图标、图库图标、备忘录图标、文件管理图标、电子邮件图标、音乐图标、计算器图标、录音机图标、运动健康图标、天气图标、浏览器图标、设置图标等。多个应用程序图标下方可以有页面指示符显示区域20,该区域包括的页面指示符用于表明当前显示的页面与其他页面的位置关系。页面指示符的下方可以显示有托盘应用图标显示区域30,用于显示多个托盘应用图标,例如相机应用图标、通讯录应用图标、电话拨号应用图标、信息应用图标等。在另一些实施例中,手机主屏幕界面可以包括比图示更多或更少的应用程序图标或托盘应用图标,本申请对此不作限定。在该界面的上方还可以显示有状态栏40,该状态栏40可以包括:移动通信信号(或称蜂窝信号)的一个或多个信号强度指示符、无线高保真(wireless fidelity,Wi-Fi)信号的一个或多个信号强度指示符,手机1的电量指示符,时间指示符等。
当手机检测到用户针对主屏幕界面301上的相机应用输出点击302的操作后,可以启动相机应用,显示如图3B所示的拍摄界面303。该拍摄界面303可以包括取景框、相册图标、拍摄控件和旋转控件等。
其中,取景框用于获取拍摄预览的图像,实时显示预览图像。相册图标用于快捷进入相册,当手机检测到用户点击相册的图标后,可以在触摸屏上展示已经拍摄的照片或者视频等。拍摄控件用于拍摄或者录像,当手机检测到用户点击拍摄控件后,手机执行拍照操作,并将拍摄的照片保存下来;或者,当手机处于录像模式时,用户点击拍摄控件后,手机执行录像操作,并将录制的录像保存下来。摄像头旋转控件用于控制前置摄像头和后置和摄像头的切换。
此外,该拍摄界面303还包括用于设置拍摄模式的功能控件,如图3B所示的夜景拍摄模式、人像拍摄模式、拍照模式、录像模式、主角模式和更多模式等。
在一些实施例中,当手机检测到用户针对主角模式输入点击操作304时,可以进入主角拍摄模式,此时如图3C所示,在取景框的预览画面上方可以显示主角模式的操作提示“点击人像追踪框,可额外生成一段追焦视频”,并在被拍对象上显示追焦框。
当手机检测到针对预览图像中的某一对象追焦框的点击操作305时,对该对象进行聚焦拍摄。同时,在拍摄界面显示如图3D所示的拍摄窗口306。为了便于区分,下文将主预览界面对应的显示窗口称为大窗口,拍摄窗口306称为小窗口。如图3D所示,在主角模式下,大窗口和小窗口可以分别显示各自对应的计时时间。由于大窗口和小窗口的拍摄时间分别为两个计时器单独计时,在拍摄过程中,两个计时器数字可能不一致,但跳变需要一致,以较好地满足用户的观感。
为满足计时跳变一致,需要对小窗口计时时间进行同步。需要说明的是,在需要计时跳变同步的场景下,通常只要在有拍摄状态(开始(start)、停止(stop)、暂停(pause)、恢复(resume))发生改变时,都应该进行同步计时的操作。但是在本申请实施例所介绍的主角模式下,大窗口作为主摄窗口,用户的交互逻辑存在如下限制:
(1)小窗口的录制在大窗口开始录制之后,或者与大窗口同步开启录制;
(2)大窗口暂停之后恢复录制可以触发小窗口的开始录制;
(3)大窗口暂停录制时,小窗口也会录制暂停;大窗口录制结束时,小窗口也会录制结束;
(4)大窗口正常录制中,小窗口可以独立地暂停或恢复录制。
示例性的,主角模式下,涉及到的场景可以如表1所示:
表1
当一个计时器处于暂停或结束计时状态,另一个正常计时时,由于不存在计时比较对象,因此并不涉及跳变同步。也就是说,本申请实施例提供的计时跳变同步的方法适用于在两个计时器无时序地开始计时或暂停恢复计时的场景中,也即适应于表1中时序问题存在结果为Y场景中。
在本申请实施例中,大窗口和小窗口的显示时间可以通过以下公式(1-1)计算:
TsetTextTime=TrealTime-TstartTime-TpauseTotalDuration (1-1)
其中,TsetTextTime为大窗口/小窗口当前显示的计时时间;TrealTime为当前时刻对应的***时间;TstartTime为大窗口/小窗口开始录制时对应的***时间;TpauseTotalDuration为暂停录制的总时长。
为便于区分,下文中大窗口对应的计时参数用T(大写)表示,小窗口对应的计时参数用t(小写)表示。
需要说明的是,***时间可以对应***自身的计时时间,无法调整,本申请实施例可将其作为计时的参考标准。
还需要说明的是,大窗口和小窗口当前显示的计时时间可以不相同,比如在大窗口录制了4s视频之后小窗口才被开启录制,那么此时大窗口显示的计时时间为00:04,小窗口显示的计时时间为00:00。但是由于大窗口和小窗口的计时跳变周期相同(以每隔1s跳变一次为例),因此,如果能将小窗口的跳变时刻和某一次大窗口的跳变时刻对齐,就可以实现大小窗口跳变同步。
基于此,本申请提供的计时跳变同步的方法采用主从逻辑,以大窗口的计时时间作为主计时(master timer),小窗口的计时时间作为从计时(slave timer),从计时的计时跳变根据主计时当前的状态变化。具体来说,就是将大窗口作为拍摄的主摄场景,将其计时(master timer)作为参考系,按照上述公式(1-1)计算获得,不作同步调整,小窗口根据自身开始录制或暂停恢复录制时对应的大窗口的实际录制状态,调整自身的当前显示的计时时间(具体通过调整小窗口的tstartTime)或者暂停录制的总时长(tpauseTotalDuration)实现)。而当存在时序问题时,如果小窗口无法实时获取大窗口的状态(如大窗口是否开始录制/恢复录制),小窗口的计时器会通过对应的计时刷新机制,执行对大窗口状态的轮询操作,周期性地查询大窗口的状态。当轮询过程中获取大窗口的状态发生变化(如大窗口开始录制/恢复录制)时,小窗口的计时器会立即进行同步调整,之后结束轮询。
其中,上述所说的计时刷新机制可以指:在主计时和从计时连续两次计时跳变之间,计时器会在后台按照一定的刷新频率对显示的计时时间进行刷新,例如1秒内进行多次(如4-5次)相同数字的刷新,而不是1秒刷新1次。如果计时时间未达到跳变时刻,刷新之后的计时时间不会发生变化;如果计时时间达到或晚于计时跳变时刻,则刷新之后的计时时间会发生跳变,显示跳变后的时间。举例来说,以刷新频率为5次/秒(也即每200ms刷新一次计时时间)为例,假设当前(大窗口或者小窗口)的计时时间为00:04,那么计时器会在00:04+200ms的时刻对计时时间进行刷新,由于此时的时间未达到下次计时跳变时刻(00:05),因此刷新之后计时时间仍显示为00:04,之后每隔200ms都进行刷新。当达到下次计时跳变时刻(00:05)时,刷新后的计时时间显示为00:05,此时在用户的视角来看,计时时间发生了从00:04到00:05的跳变。
上文对同步调整计时跳变的方式和涉及到的相关背景进行了介绍。以下结合具体的场景,对本申请实施例提供的计时跳变同步的方法进行介绍。
场景一:同步小窗口的录制计时开始时刻,时序为大窗口先开始录制,小窗口后开始录制。
示例性的,如图4所示,为场景一涉及到的计时跳变同步调整规则的示意图。
在一种可能的场景下,在大窗口视频录制过程中,主角模式开启,小窗口开始视频录制,此时主计时对应的计时开始时刻早于从计时的计时开始时刻。如图4所示,主计时在TstartTime时刻开始计时,从计时在tstartTime时刻开始计时。
在一些实施例中,当从计时器开始计时后,小窗口可以轮询大窗口的状态,其中轮询频率可以与刷新机制对应的刷新频率相同,如每200ms轮询一次。当在轮询过程中确定大窗口开始录制,则进行同步调整计时跳变。
在一些实施例中,在轮询过程中,小窗口还可以查询大窗口对应的其他计时参数,如开始录制时刻(TstartTime),以及与小窗口计时开始时刻邻近的前一次跳变时刻(T1)和邻近的后一次跳变时刻(T2)。
结合图4,小窗口进行同步调整的规则可以包括:(1)计算小窗口的开始录制时刻(tstartTime)和大窗口与其相邻的前一次跳变时刻(T1)之间的差值Δt,其中,Δt=tstartTime-T1;(2)根据该差值确定小窗口开始录制时刻tstartTime更加接近大窗口的哪一次跳变时刻,也即判断tstartTime时刻与T1时刻更为接近,还是tstartTime时刻与T2时刻更为接近;(3)当小窗口的开始录制时刻和大窗口中与其相邻的前一次跳变时刻(T1)更为接近时,将小窗口的计时开始时刻提前Δt,也即将小窗口的计时开始时刻同步调整为T1。
由于小窗口和大窗口的跳变周期相同,因此将小窗口的计时开始时刻修正为与大窗口的某一跳变时刻(这里为T1)对齐后,后续小窗口与大窗口对应的跳变时刻相同,也即实现小窗口和大窗口的跳变同步。
或者,从显示的计时时间的角度来说,对小窗口进行同步调整之后,其计时开始时刻为T1,则根据上述公式(1-1),小窗口的计时时间tsetTextTime为:tsetTextTime=TrealTime-T1-tpauseTotal。由于在该场景下,大小窗口均未发生暂停,故TpauseTotal取0,也即tsetTextTime=TrealTime-T1。类似地,大窗口的计时时间TsetTextTime可以表示为TsetTextTime=TrealTime-TstartTime。
由于T1和TstartTime之间相差了整数倍的跳变周期,因而大窗口的计时时间和小窗口的计时时间也相差了整数倍的跳变周期,故两者的计时跳变对齐。
类似地,如果在上述规则(3)中,小窗口的开始录制时刻和大窗口中与其相邻的后一次跳变时刻(T2)更为接近时,那么可以通过将小窗口的计时开始时刻延后(1-Δt),也即将小窗口的计时开始时刻同步调整为T2,以实现小窗口与大窗口计时跳变同步。
也就是说,针对该场景一,同步调整小窗口计时开始时刻的规则是判断小窗口计时开始时刻距离大窗口上一次跳变时刻近还是距离大窗口下一次跳变时刻近,若距离大窗口上一次跳变时刻近,则将小窗口的计时开始时刻调整为大窗口的上一次跳变时刻,否则将其调整为大窗口的下一次跳变时刻。
需要说明的是,在跳变周期为1秒时,基于上述调整会对小窗口的计时开始时刻造成±0.5s的误差。其中,针对误差修正的方法将在下文进行介绍,此处暂不详述。
根据本申请实施例提供的计时跳变同步的方法,通过在使用两个计时器控件的场景中,对两个独立的计时器的跳变频率进行自适应的同步,能够使得两计时器在视觉上形成统一的动画,给用户带来更好的界面观看体验。
场景二:同步小窗口的录制计时开始时刻,时序为小窗口先开始录制,大窗口后开始录制。
示例性的,如图5所示,为场景二涉及到的计时跳变同步调整规则的示意图。
在一种可能的场景下,用户可以在开启录制功能之前(如点击录制控件之前),先选择主角模式。当拍摄界面同时显示大窗口和小窗口之后,用户点击录制。此时在用户视角来看,大窗口和小窗口同步开始录制。然而,实际的录制开始时序为:小窗口先开始录制,大窗口后开始录制。
在一些实施例中,当小窗口计时器开始计时后,小窗口可以轮询大窗口的状态,其中轮询频率可以与刷新机制对应的刷新频率相同,如每200ms轮询一次。当在轮询过程中确定大窗口开始录制,则进行同步调整计时跳变。在轮询过程中,小窗口可以查询大窗口是否开始录制,以及大窗口对应的其他计时参数,如开始录制时刻(TstartTime)。
结合图5,小窗口进行同步调整的规则可以包括:(1)计算大窗口计时开始时刻和小窗口计时开始时刻的差值,利用该差值对跳变周期(1s)取余,得到结果startDiff,其中,startDiff(TstartTime-tstartTime)%1s;(2)通过比较startDiff与0.5s(也即跳变周期的一半)的大小关系,判断大窗口的录制计时开始时刻TstartTime更加接近小窗口中与TstartTime前后相邻的哪一次跳变时刻,也即判断TstartTime时刻与t1时刻更为接近,还是TstartTime时刻与t2时刻更为接近;(3)当大窗口的录制计时开始时刻TstartTime和小窗口中与TstartTime相邻的前一次跳变时刻(t1)更为接近时,将小窗口的计时开始时刻延后startDiff,也即将小窗口的计时开始时刻同步调整为tstartTime+startDiff;当大窗口的录制计时开始时刻TstartTime和小窗口中与TstartTime相邻的后一次跳变时刻(t2)更为接近时,将小窗口的计时开始时刻提前(1-startDiff),也即将小窗口的计时开始时刻同步调整为tstartTime(1-startDiff)。
也就是说,当大窗口的录制计时开始时刻晚于小窗口时,若其计时开始时刻距小窗口上一跳变时刻近,则小窗口的录制计时开始时刻向后调整startDiff的时长,使得小窗口上一跳变时刻与大窗口的计时开始时刻对齐;否则,小窗口录制计时开始时刻向前调整(1-startDiff)时长,使得小窗口下一跳变时刻与大窗口的计时开始时刻对齐。这里的上一跳变时刻和下一跳变时刻均是相对于大窗口的录制计时开始时刻而言。
需要说明的是,在跳变周期为1秒时,基于上述调整会对小窗口的计时开始时刻造成±0.5s的误差(误差值为startDiff或(1-startDiff))。其中,针对误差修正的方法将在下文进行介绍,此处暂不详述。
根据本申请实施例提供的计时跳变同步的方法,通过在使用两个计时器控件的场景中,对两个独立的计时器的跳变频率进行自适应的同步,使得两计时器在视觉上形成统一的动画,给用户带来更好的界面观看体验。
场景三:大窗口暂停恢复录制触发小窗口开始录制,同步小窗口的录制计时开始时刻。
示例性的,如图6和图7所示,为场景三涉及到的计时跳变同步调整规则的示意图。
在一种可能的场景下,用户开启大窗口录制(此时未开启主角模式),一段时间之后,大窗口录制暂停,暂停过程中开启主角模式,当大窗口暂停恢复时,触发小窗口开始录制。此时在用户视角来看,大窗口的暂停恢复和小窗口的开始录制同步。然而,实际的录制时序可以分为两种:时序1,小窗口先开始录制,大窗口后恢复录制;时序2,大窗口先恢复录制,小窗口后开始录制,且大窗口恢复录制到小窗口开始录制之间大窗口存在计时跳变。
针对时序1:当小窗口开始录制,即计时器开始计时后,小窗口可以轮询大窗口的状态,其中轮询频率可以与刷新机制对应的刷新频率相同,如每200ms轮询一次。当在轮询过程中确定大窗口开始录制,则进行同步调整计时跳变。在轮询过程中,小窗口可以查询大窗口是否恢复录制,以及大窗口对应的计时参数,如恢复录制时刻。
结合图6,小窗口进行同步调整的规则可以包括:(1)根据查询到的大窗口的计时参数,计算大窗口下次理论跳变时刻TnextsetTextTime;(2)计算大窗口下次理论跳变时刻TnextsetTextTime和小窗口计时开始时刻的差值,利用该差值对跳变周期(1s)取余,得到结果startDiff,其中,startDiff=(TnextsetTextTime-tstartTime)%1s;(3)通过比较startDiff与0.5s(也即跳变周期的一半)的大小关系,判断大窗口的录制恢复时刻Tresume更加接近小窗口中与Tresume相邻的哪一次跳变时刻;(4)当大窗口的录制恢复时刻Tresume和小窗口中与Tresume相邻的前一次跳变时刻更接近时,将小窗口的计时开始时刻延后startDiff,也即将小窗口的计时开始时刻同步调整为tstartTime+startDiff(该情形对应的同步前后小窗口计时时间可以如图6所示);当大窗口的录制恢复时刻Tresume和小窗口中与Tresume相邻的后一次跳变时刻更接近时,将小窗口的计时开始时刻提前(1-startDiff),也即将小窗口的计时开始时刻同步调整为tstartTime-(1-startDiff)(该情形对应的同步前后小窗口计时时间可以如图7所示)。
也就是说,当大窗口的下次理论跳变时刻距小窗口上一秒近,则小窗口的计时开始时刻向后调整startDiff的时长,使得小窗口上一秒时刻与大窗口的暂停恢复时刻对齐;否则,小窗口计时开始时刻向前调整(1-startDiff)时长,使得小窗口下一秒(也即小窗口开始录制后的第一次计时跳变)与大窗口的暂停恢复时刻对齐。
需要说明的是,本场景中涉及到的大窗口下次理论跳变时刻TnextsetTextTime需要计算获得,具体计算方式将在下文进行具体介绍,此处暂不详述。
针对时序2:由于在暂停恢复录制之后,大窗口存在计时跳变,大窗口的暂停-恢复录制动作对小窗口的状态没有影响,因而可以忽略大窗口的恢复录制,视为大窗口正常运行时对小窗口的开始录制同步,也即将该情形视为场景一中的情形,此时可采用场景一对应的调整规则。具体可参见上文的相关介绍,此处不再赘述。
需要说明的是,在跳变周期为1秒时,该场景三中的调整方式会对小窗口的计时开始时刻造成±0.5的误差(误差值为startDiff或(1-startDiff)),后续可能需要对误差进行修正。其中,针对误差修正的方法将在下文进行介绍,此处暂不详述。
根据本申请实施例提供的计时跳变同步的方法,通过在使用两个计时器控件的场景中,对两个独立的计时器的跳变频率进行自适应的同步,使得两计时器在视觉上形成统一的动画,给用户带来更好的界面观看体验。
场景四:小窗口由于失焦暂停录制,焦点恢复后自动恢复录制,大窗口在整个过程中处于正常录制状态(也即小窗口计时器单独发生暂停-恢复录制)。
示例性的,如图8和图9所示,为场景四涉及到的计时跳变同步调整规则的示意图。
针对场景四,小窗口进行同步调整的规则可以包括:(1)根据查询到的大窗口的计时参数,计算该大窗口下次理论跳变时刻TnextsetTextTime;(2)计算小窗口恢复时刻距离大窗口下次理论跳变时刻的时长tresumegap;(3)根据大窗口下次理论跳变时刻TnextsetTextTime、小窗口恢复时刻距离大窗口下次理论跳变时刻的时长tresumegap以及小窗口的恢复时刻tresume,计算小窗口本次同步需要调整的时长tresumeDiff,其中,tresumeDiff=TnextsetTextTime-tresumegap-tresume;(4)根据小窗口本次同步需要调整的时长tresumeDiff和小窗口本次实际暂停的总时长tpauseTotalDuration,计算小窗口本次同步的修正暂停总时长tpausefixed,其中,tpausefixed=tpauseTotalDuration+tresumeDiff。
当0<tresumeDiff<1时,调整后的修正暂停总时长tpausefixed增大tresumeDiff,此时对应的同步后的小窗口计时时间如图8所示。
当-1<tresumeDiff≤0时,调整后的修正暂停总时长tpausefixed减小tresumeDiff,此时对应的同步后的小窗口计时时间如图9所示。
上述对暂停总时长的修正,也可以视为将小窗口的计时开始时刻调整tstartDiff时长,其中,tstartDiff=tresumeDiff。具体地,如图8所示,当0<tresumeDiff<1时,可以视为将小窗口的计时开始时刻延后tstartDiff时长;如图9所示,当-1<tresumeDiff≤0时,可以视为将小窗口的计时开始时刻提前tstartDiff时长。
需要说明的是,由于操作的不确定性,tresumeDiff的理论取值范围为(-1,1),即相比于实际的暂停总时长tpauseTotalDuration,小窗口调整后获取的修正暂停总时长tpausefixed可能增大/减小,因此,调整后会造成±1s以内的误差(tresumeDiff)。
根据本申请实施例提供的计时跳变同步的方法,通过在使用两个计时器控件的场景中,对两个独立的计时器的跳变频率进行自适应的同步,使得两计时器在视觉上形成统一的动画,给用户带来更好的界面观看体验。
场景五:对小窗口同步恢复。小窗口失焦暂停录制后,大窗口也暂停录制,随后小窗口焦点恢复录制,大窗口也恢复录制(大小窗口同时恢复录制)。
示例性的,如图10和图11所示,为场景五涉及到的计时跳变同步调整规则的示意图。
针对场景五,小窗口进行同步调整的规则可以包括:(1)计算大窗口恢复时刻Tresume距离该大窗口下次理论跳变时刻的时长Tresumegap,这里的大窗口下次理论跳变时刻可以理解为图10和图11中所示的“若未暂停,大窗口正常录制对应的跳变时刻”;(2)计算小窗口恢复时刻tresume距离该小窗口下次理论跳变时刻的时长tresumegap,这里的小窗口下次理论跳变时刻可以理解为图10和图11中所示的“若未暂停,小窗口正常录制对应的跳变时刻”;(3)根据大窗口恢复时刻距离下次理论跳变时刻的时长Tresumegap、小窗口恢复时刻距离下次理论跳变时刻的时长tresumegap,计算小窗口本次同步需要调整的时长trusumeDiff,其中tresumeDiff=Tresumegap-tresumegap;(4)根据小窗口本次同步需要调整的时长trusumeDiff和小窗口本次实际暂停的总时长tpauseTotalDuration,计算小窗口本次同步的修正暂停总时长tpausefixed,其中tpausefixed=tpauseTotalDuration+trusumeDiff。
当0<tresumeDiff<1时,调整后的修正暂停总时长tpausefixed增大tresumeDiff,此时对应的同步后的小窗口计时时间如图10所示。
当-1<tresumeDiff≤0时,调整后的修正暂停总时长tpausefixed减小tresumeDiff,此时对应的同步后的小窗口计时时间如图11所示。
上述对暂停总时长的修正,也可以视为将小窗口的计时开始时刻调整tstartDiff时长,其中,tstartDiff=tresumeDiff。具体地,如图10所示,当0<tresumeDiff<1时,可以视为将小窗口的计时开始时刻延后tstartDiff时长;如图11所示,当-1<tresumeDiff≤0时,可以视为将小窗口的计时开始时刻提前tstartDiff时长。
与场景四类似,由于操作的不确定性,tresumeDiff的理论取值范围为(-1,1),即相比于实际的暂停总时长tpauseTotalDuration,小窗口调整后获取的修正暂停总时长tpausefixed可能增大/减小,因此,调整后会造成±1s以内的误差(tresumeDiff)。
根据本申请实施例提供的计时跳变同步的方法,通过在使用两个计时器控件的场景中,对两个独立的计时器的跳变频率进行自适应的同步,使得两计时器在视觉上形成统一的动画,给用户带来更好的界面观看体验。
在本申请实施例提供的计时同步跳变的方法中,小窗口同步大窗口的计时跳变频率后,小窗口的显示的计时时间会与真实录制时间存在误差,并且这个误差会随着每次恢复录制而积累。之所以出现此类问题,是因为小窗口每次开始录制或者恢复录制时,都需要根据大窗口的状态提前或延后小窗口计时器的显示时间。因此,为了使得显示的计时时间与小窗口的真实录制时间更加接近,需要对计时时间进行修正。以下对本申请实施例提供的计时同步跳变的方法中采用的误差修正的方法进行具体介绍。
针对误差,本申请计时同步跳变的方法提供的解决思路是:小窗口计时器增加误差补偿逻辑,当累计误差超过0.5s(跳变周期的一半)时进行补偿,补偿操作将为小窗口显示时间强行“调快/慢”1秒。经上文分析,对于小窗口的同步开始,造成的误差在0.5s之内,符合规格不做调整;对于小窗口的同步恢复造成的误差在1s之内,且会累加,需要进行补偿。
具体来说,在小窗口第n次恢复录制后,小窗口的显示时长(也即显示时间)和真实时长分别如公式(1-2)和(1-3):
显示时长:tsetTextTime(n)=trealTime-tstartTime-tfixedPauseTotalDuration(n) (1-2)
真实时长:tsetTextTime(n)’=trealTime-tstartTime-trealPauseTotalDuration(n) (1-3)
上述两式相减,得到第n次恢复录制造成的误差error(n),如公式(1-4)所示:
error(n)=tsetTextTime(n)-tsetTextTime(n)'=trealPauseTotalDuration(n)-tfixedPauseTotalDuration(n) (1-4)
第n次恢复录制后,由于error(n)∈(-1,1),而前面n-1次恢复录制累积的误差sumError(n-1)在0.5s内,即sumError(n-1)∈(-0.5,0.5),因而n次总误差sumError(n)∈(-1.5,1.5)。根据n次总误差sumError(n)具体所属的数值范围,补偿方式可以分为三种情况:
(1)当sumError(n)∈(-0.5,0.5)时,误差在可接受范围内,不做补偿;
(2)当sumError(n)∈(-1.5,-0.5)时,补偿措施为推迟1s,误差更正为(-0.5+1,-0.5+1),即(-0.5,0.5),补偿后再次符合误差规格;
(3)当sumDiff(n)∈(0.5,1.5)时,补偿措施为显示时间提前1s,误差更正为(0.5-1,1.5-1),即(-0.5,0.5),补偿后再次符合误差规格。
本申请实施例中对误差的补偿逻辑时强行将小窗口的计时时间“调快/调慢”1秒。而时间显示的逻辑是向下取整,不足1s时不会跳变。因而,为了保证时间单增的正确性,不同情况下可以通过以下方式进行处理:
方式一:当强行调慢1s时,最终误差为(-0.5,0.5),而当最终误差小于0时,补偿动作可能造成显示时间立即减小1s,视觉上体现为时间“倒流”。此时,需要增加额外的特判条件克服计时时间不单增的问题,该特判条件为:与上次刷新的计时器数值比较,若误差修正后的计时时间小于上次数值,则本次不刷新,保持显示当前的计时数值,保证计时器刷新数值不会小于上次刷新的数值。
方式二:当强行调快1s时,也可能造成时间立即增大1s,但由于时间本身的显示逻辑为整数连续单增,因而计时时间立即增大1s符合单增规则,此时无须特判。
上文场景四和场景五计算小窗口的调整时长时,需要录制恢复时刻至下一次理论跳变时刻的时长,也即Tresumegap和tresumegap。以下对该参数的具体计算方式进行介绍。
示例性的,如图12所示,为本申请实施例提供的一种辅助理解计算恢复录制时刻到理论跳变时刻时长的时间示意图。
需要说明的时,本申请实施例中的下一次理论跳变时刻是相对于大窗口和/或小窗口的恢复录制时刻而言的,具体可以是当大窗口和/或小窗口的恢复录制之后的首次计时跳变。
当大窗口或小窗口的暂停时,基于暂停时刻和相对于该暂停时刻的上一次跳变时刻可以确定对应的Tresumegap或tresumegap,也即在暂停时即可确定Tresumegap或tresumegap。假设本次恢复录制为第n次,相对于本次恢复录制的上一次计时的跳变时刻为tlastSetTextTime,可以分为如下几种情况(以小窗口的计时参数为例):
情况1,本次暂停时刻和上一次恢复时刻之间存在计时跳变,那么本次恢复时刻至下一次理论跳变时刻的时长tresumeGap(n)=1-(tpasuseTime(n)–tlastSetTextTime)。
其中,结合图12所示,tpasuseTime(n)为第n次暂停时刻,tlastSetTextTime为第n次暂停对应的上一次跳变时刻。当小窗口在tpasuseTime(n)暂停录制时,距离上一次跳变时刻tlastSetTextTime的时长为:(tpasuseTime(n)–tlastSetTextTime);假如tpasuseTime(n)时刻未发生暂停,理论上来说距离下一次跳变时刻的时长应该为:1-(tpasuseTime(n)–tlastSetTextTime),其中,1的含义是跳变周期,也即1s。由于在暂停过程中,计时时间保持不变,因而当恢复录制之后,距离下一次跳变时刻的时长仍然还需1-(tpasuseTime(n)–tlastSetTextTime),也即本次恢复时刻至下一次理论跳变时刻的时长tresumeGap(n)=1-(tpasuseTime(n)–tlastSetTextTime)。
情况2,本次暂停时刻和上一次恢复时刻之间不存在计时跳变,那么本次恢复时刻至下一次理论跳变时刻的时长tresumeGap=tresumeGap(n-1)–(tpasuseTime(n)–tresumeTime(n-1))。
其中,结合图13所示,tresumeGap(n-1)是第(n-1)次暂停时刻距离下一次理论跳变时刻的时长,tpasuseTime(n)是第n次暂停时刻,tresumeTime(n-1)第(n-1)次恢复时刻。当小窗口在tpasuseTime(n-1)发生第(n-1)次暂停录制时,其对应的距离下一次理论跳变时刻的时长tresumeGap(n-1)可以根据情况1中的方式进行计算。
情况3,结合图14所示,第n次暂停时刻和第(n-1)次恢复时刻之间,理论上应该存在计时跳变(tsetTextTime),但是由于操作太快(第(n-1)次恢复时刻距离第n次暂停时刻的时长小于计时器刷新频率200ms),程序未来得及刷新,则第n次恢复时刻时计时时间应该立即刷新计时时间,进行计时跳变,此时tresumeGap=0。其中,这里的立即刷新计时时间,进行计时跳变可以指与第n次恢复时刻同时,或者,在性能限制的基础上尽可能快地时间进行计时跳变。
根据本申请实施例提供的计时跳变同步的方法,通过在使用两个计时器控件的场景中,对两个独立的计时器的跳变频率进行自适应的同步,使得两计时器在视觉上形成统一的动画,给用户带来更好的界面使用体验。
在上文介绍的计时跳变同步之外,本申请实施例提供的计时跳变同步的方法还可以进行红点动画同步。示例性的,如图15所示,为本申请提供的一种计时跳变同步的方法的示意性流程图。
S1501,小窗口计时器开始录制或恢复录制。
S1502,小窗口红点动画开始。
S1503,判断大窗口计时器是否开始录制。
当大窗口计时器开始录制(也即判断结果为“是”)时,执行步骤S1504和步骤S1505。当大窗口计时器未开始录制(也即判断结果为“否”)时,执行步骤S1506。
S1504,小窗口红点动画获取大窗口实时差值器数值。
S1505,设置小窗口红点动画差值器数值等于大窗口实时差值器数值。
在一些实施例中,计时器处于计时态时,小窗口计时器获取大窗口计时器红点动画差值器的实时数值,然后将自身的差值器数值更新为大窗口的数值。
在一些实施例中,可以利用安卓的原生动画差值器,设置总持续时长为1s的无限重复动画,根据差值器变化速度,更新透明度,当差值器数值小于0.5时,设置透明度为大于0.5时设置透明度为255。
S1506,小窗口红点动画按默认策略执行。
其中,默认策略可以有多种,如按照预设周期闪烁,此处不做限定。
根据本申请实施例提供的计时跳变同步的方法,通过将大小窗口计时器红点闪烁同步,能够使得两计时器在视觉上形成统一的动画,给用户带来更好的界面使用体验。
示例性的,如图16所示,为本申请提供的另一种计时跳变同步的方法的示意性流程图。该流程主要用于对上文场景一至场景五中的文本计时时间(或数字计时时间)进行跳变同步。
S1601,小窗口计时器开始计时。
S1602,判断大窗口计时器是否开始计时。
当大窗口计时器未开始计时(也即判断结果为“否”),执行步骤S1603;当大窗口计时器开始计时(也即判断结果为“是”),执行步骤S1604。
S1603,小窗口不调整计时开始时刻,也即isStratTimeFixed=ture。
S1604,小窗口调整计时开始时刻,也即isStratTimeFixed=false。
S1605,判断大窗口上一次和下一次计时文本刷新之间是否存在暂停-恢复。
当大窗口上一次和下一次计时文本刷新之间存在暂停-恢复(也即判断结果为“是”),执行步骤S1606;当大窗口上一次和下一次计时文本刷新之间不存在暂停-恢复(也即判断结果为“否”),执行步骤S1607。
S1606,小窗口恢复录制时不调整计时开始时刻,也即fixedStratTimeWhenResume=ture。
S1607,调整小窗口的计时开始时刻为大窗口上一次文本跳变时刻。
S1608,设置小窗口计时器定时器(setRecorderTimer)。
S1609,判断小窗口是否结束录制。
当小窗口结束录制(也即判断结果为“是”),结束流程;当小窗口未结束录制(也即判断结果为“否”),执行步骤S1610。
S1610,判断小窗口是否暂停后恢复录制。
当小窗口暂停后恢复录制(也即判断结果为“是”),执行以下步骤:
S1611,根据大窗口状态计算期下一次刷新文本计时时间,调整小窗口本次暂停总时长。
S1612,计算恢复显示的计时时间与真实录制时长之间的误差
S1613,计算并修复累计误差。
当小窗口未暂停后恢复录制(也即判断结果为“否”),执行以下步骤:
S1614,判断是否大窗口开始录制且小窗口不调整计时开始时刻(isStartTimeFixed=true)。
当大窗口未开始录制或小窗口调整计时开始时刻(也即判断结果为“否”),执行步骤S1608。当大窗口开始录制且小窗口不调整计时开始时刻(也即判断结果为“是”),执行步骤S1615。
S1615,小窗口不调整计时开始时刻(isStratTimeFixed=true)。
S1616,判断是否大窗口恢复录制且小窗口恢复录制时不调整计时开始时刻。
当大窗口未恢复录制或小窗口恢复录制时调整计时开始时刻(也即判断结果为“否”),执行步骤S1608;当恢复录制且小窗口恢复录制时不调整计时开始时刻(也即判断结果为“是”),执行步骤S1617。
S1617,小窗口恢复录制时调整计时开始时刻(fixedStratTimeWhenResume=false)。
S1618,小窗口调整计时开始时刻,与大窗口保持整秒步长。
之后,可以执行步骤S1608。继续动态条调整小窗口的计时时间,使得小窗口和大窗口计时跳变同步。
根据本申请实施例提供的计时跳变同步的方法,通过在使用两个计时器控件的场景中,对两个独立的计时器的跳变频率进行自适应的同步,使得两计时器在视觉上形成统一的动画,给用户带来更好的界面使用体验。
示例性的,如图17所示,为本申请提供的一种计时跳变同步的方法的时序图。
在一些实施例中,大窗口计时器接口实现类模块向大窗口计时器子类模块发送开始计时指令;响应于该开始计时指令,大窗口计时器子类模块向大窗口对应的计时器基类模块发送开始计时指令;响应于该开始计时指令,计时器基类模块执行刷新计时数字的操作。大窗口计时器子类模块设置动画差值器。
在小窗口一侧,小窗口计时器接口实现类模块向小窗口计时器子类模块发送开始计时指令;响应于该开始计时指令,小窗口计时器子类模块设置主计时器(也即大窗口的计时器),并向小窗口对应的计时器基类模块发送开始计时指令;响应于该开始计时指令,计时器基类模块执行轮询大窗口是否开始录制或恢复录制的操作。
之后,小窗口对应的计时器基类模块向大窗口对应的计时器基类模块查询获取数字刷新时间。小窗口对应的计时器基类模块基于获取的大窗口数字刷新时间修正计时开始时刻。小窗口计时器子类模块向大窗口计时器子类模块查询获取该大窗口的差值器数值,并根据该大窗口的差值器数值重置自身差值器。小窗口对应的计时器基类模块修正计时开始时刻的过程中,刷新计时数字。
在一些实施例中,大窗口计时器接口实现类模块向大窗口计时器子类模块发送暂停计时指令;响应于该暂停计时指令,大窗口计时器子类模块向大窗口对应的计时器基类模块发送暂停计时指令;响应于该暂停计时指令,计时器基类模块执行更新计时状态的操作。大窗口计时器子类模块对红点动画暂停。
在小窗口一侧,小窗口计时器接口实现类模块向小窗口计时器子类模块发送暂停计时指令。响应于该暂停计时指令,小窗口计时器子类模块对红点动画暂停,并向小窗口对应的计时器基类模块发送暂停计时指令。响应于该暂停计时指令,计时器基类模块执行计算下一次恢复后第一次跳变的理论时差tresumegap的操作。
在一些实施例中,大窗口计时器接口实现类模块向大窗口计时器子类模块发送暂停恢复计时指令;响应于该暂停恢复计时指令,大窗口计时器子类模块向大窗口对应的计时器基类模块发送暂停暂停恢复指令;响应于该暂停计时指令,计时器基类模块执行更新计时状态的操作。大窗口计时器子类模块对红点动画恢复。
在小窗口一侧,小窗口计时器接口实现类模块向小窗口计时器子类模块发送暂停恢复计时指令。响应于该暂停恢复计时指令,小窗口计时器子类模块向小窗口对应的计时器基类模块发送暂停恢复计时指令。响应于该暂停计时指令,小窗口对应的计时器基类模块向大窗口对应的计时器基类模块查询并获取大窗口最新的Tresumegap,并开始执行修正暂停总时长、修正累计误差的操作。
在一些实施例中,小窗口计时器子类模块向大窗口计时器子类模块查询并获取大窗口插值器数值,并根据大窗口插值器数值重置自身动画差值器。大窗口对应的计时器基类模块在恢复录制之后执行刷新计时数字的操作,小窗口计时器子类模块设置将大窗口刷新的计时数字记录至记录文本,并且供小窗口对应的计时器基类模块执行更新计时状态、刷新计时数字的操作。
本申请还包括以下实施例:
在一些实施例中,本申请提供的一种计时跳变同步的方法,应用于电子设备,所述电子设备包括第一界面,所述第一界面包括主计时和从计时,所述主计时对应主计时器,所述从计时对应从计时器,所述方法包括:响应于所述从计时器开始计时,查询所述主计时器的状态;当所述主计时器的状态为开始录制或者暂停后恢复录制时,根据所述从计时器的计时参数和所述主计时器的计时参数,获取从计时器的同步调整时长;根据所述同步调整时长调整所述从计时器的计时开始时刻或者暂停总时长,使得所述从计时与所述主计时同步跳变。
在一些实施例中,当所述主计时器的状态为开始录制时,且所述主计时器的计时开始时刻早于所述从计时器的计时开始时刻时;或者,当所述主计时器暂停后恢复计时,从主计时器开始计时,且所述主计时器的恢复时刻早于所述从计时器的计时开始时刻时,所述方法具体包括:获取第一同步调整时长,所述第一同步调整时长为从计时器的计时开始时刻减去所述主计时器的计时开始时刻的差值;当所述第一同步调整时长小于跳变周期的一半时,将所述从计时器的计时开始时刻增大所述第一同步调整时长,以获取调整后的所述计时器的计时开始时刻;当所述第一同步调整时长大于或等于跳变周期的一半时,将所述从计时器的计时开始时刻减小所述第一同步调整时长,以获取调整后的所述计时器的计时开始时刻。
在一些实施例中,当所述主计时器的状态为开始录制时,且所述主计时器的计时开始时刻晚于所述从计时器的计时开始时刻时,所述方法具体包括:获取第二同步调整时长,所述第二同步调整时长为主计时器的计时开始时刻减去所述从计时器的计时开始时刻的差值;当所述第二同步调整时长小于跳变周期的一半时,将所述从计时器的计时开始时刻增大所述第二同步调整时长,以获取调整后的所述计时器的计时开始时刻;当所述第二同步调整时长大于或等于跳变周期的一半时,将所述从计时器的计时开始时刻减小所述第二同步调整时长,以获取调整后的所述计时器的计时开始时刻。
在一些实施例中,当所述主计时器暂停后恢复计时,从主计时器开始计时,且所述方法具体包括:获取所述主计时器恢复计时后的下一次理论跳变时刻;获取第三同步调整时长,所述第三同步调整时长为所述将所述下一次理论跳变时刻和所述从计时器的计时开始时刻的差值除以跳变周期的取余;当所述第三同步调整时长小于跳变周期的一半时,将所述从计时器的计时开始时刻增大所述第三同步调整时长,以获取调整后的所述计时器的计时开始时刻;当所述第三同步调整时长大于或等于跳变周期的一半时,将所述从计时器的计时开始时刻减小所述第三同步调整时长,以获取调整后的所述计时器的计时开始时刻。
在一些实施例中,当所述从计时器暂停后恢复计时,所述主计时器保持计时时,所述方法具体包括:获取所述主计时器相对于从计时器恢复时刻的下一次理论跳变时刻;计算所述从计时器恢复时刻距离所述下一次理论跳变时刻的第一差距时长;获取第四同步调整时长,所述第四同步调整时长为所述下一次理论跳变时刻减去所述第一差距时长和从计时器的恢复时刻的差值;将所述从计时器的暂停总时长增大所述第四同步调整时长,以获取调整后的所述从计时器的暂停总时长。
在一些实施例中,当所述主计时器和所述从计时器均暂停后恢复计时时,所述方法具体包括:获取所述主计时器恢复计时后的下一次理论跳变时刻;计算所述主计时器恢复时刻距离所述下一次理论跳变时刻的第二差距时长,以及所述从计时器恢复时刻距离所述下一次理论跳变时刻的第三差距时长;获取第五同步调整时长,所述第五同步调整时长为所述第二差距时长减去所述第三差距时长的差值;将所述从计时器的暂停总时长增大所述第五同步调整时长,以获取调整后的所述从计时器的暂停总时长。
在一些实施例中,所述方法还包括:当多次调整后的所述从计时器的计时时间与真实计时时间的误差绝对值大于跳变周期时,将所述从计时器的计时时间调快或调慢一个跳变周期对应的时长。
在一些实施例中,所述当多次调整后的所述从计时器的计时时间与真实计时时间的误差绝对值大于跳变周期时,将所述从计时器的计时时间提前后延后一个跳变周期对应的时长,具体包括:所述当多次调整后的所述从计时器的计时时间与真实计时时间的误差绝对值大于跳变周期时,若调慢一个跳变周期对应的时长,得到的修正计时时间小于未修正时的所述计时时间,则保持当前未修正时的所述计时时间。
基于同样的技术构思,本申请实施例还提供了一种电子设备,包括一个或多个处理器;一个或多个存储器;所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。
基于同样的技术构思,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机可执行程序指令,所述计算机可执行程序指令在被计算机上运行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。
基于同样的技术构思,本申请实施例还提供了一种包含指令的计算机程序产品,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其它可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何在本申请实施例揭露的技术范围内的变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种计时跳变同步的方法,其特征在于,应用于电子设备,所述电子设备包括第一界面,所述第一界面包括第一视频录制窗口的主计时和第二视频录制窗口的从计时,所述主计时对应主计时器,所述从计时对应从计时器,所述方法包括:
响应于所述从计时器开始计时,查询所述第一视频录制窗口的状态;
当所述第一视频录制窗口的状态为开始录制或者暂停后恢复录制时,根据所述从计时器的计时参数和所述主计时器的计时参数,获取从计时器的同步调整时长,所述同步调整时长用于调整所述从计时器的计时开始时刻或者所述从计时器的暂停总时长,将所述从计时器的计时跳变与某一次主计时器的计时跳变对齐;所述从计时器的计时参数和所述主计时器的计时参数包括以下至少一项:
所述主计时器的计时开始时刻、所述从计时器的计时开始时刻、所述主计时器中与所述从计时器的计时开始时刻最邻近的跳变时刻、跳变周期、所述主计时器的计时恢复时刻、所述主计时器恢复计时后的下一次理论跳变时刻、所述主计时器相对于从计时器的计时恢复时刻的下一次理论跳变时刻、所述从计时器的计时恢复时刻、所述从计时器恢复计时后的下一次理论跳变时刻;
以所述主计时器的计时作为参考系,不作同步调整,根据所述同步调整时长减小或者增大所述从计时器的计时开始时刻;或者,根据所述同步调整时长增大所述从计时器的暂停总时长,使得所述从计时与所述主计时同步跳变。
2.根据权利要求1所述的方法,其特征在于,当所述主计时器保持计时,且所述主计时器的计时开始时刻早于所述从计时器的计时开始时刻时;或者,当所述主计时器暂停后恢复计,从主计时器开始计时,且所述主计时器的计时恢复时刻早于所述从计时器的计时开始时刻,且所述主计时器的计时恢复时刻和所述从计时器的计时开始时刻之间存在计时跳变时,所述方法具体包括:
获取第一同步调整时长,所述第一同步调整时长为从计时器的计时开始时刻减去所述主计时器的计时开始时刻的差值;
当所述第一同步调整时长小于跳变周期的一半时,将所述从计时器的计时开始时刻增大所述第一同步调整时长,以获取调整后的所述从计时器的计时开始时刻;
当所述第一同步调整时长大于或等于跳变周期的一半时,将所述从计时器的计时开始时刻减小所述第一同步调整时长,以获取调整后的所述从计时器的计时开始时刻。
3.根据权利要求1所述的方法,其特征在于,当所述主计时器和所述从计时器开始计时,且所述主计时器的计时开始时刻晚于所述从计时器的计时开始时刻时,所述方法具体包括:
获取第二同步调整时长,所述第二同步调整时长为主计时器的计时开始时刻减去所述从计时器的计时开始时刻的差值;
当所述第二同步调整时长小于跳变周期的一半时,将所述从计时器的计时开始时刻增大所述第二同步调整时长,以获取调整后的所述从计时器的计时开始时刻;
当所述第二同步调整时长大于或等于跳变周期的一半时,将所述从计时器的计时开始时刻减小所述第二同步调整时长,以获取调整后的所述从计时器的计时开始时刻。
4.根据权利要求1所述的方法,其特征在于,当所述主计时器暂停后恢复计时,从主计时器开始计时,所述主计时器的计时恢复时刻早于所述从计时器的计时开始时刻,且所述主计时器的计时恢复时刻和所述从计时器的计时开始时刻之间不存在计时跳变时,所述方法具体包括:
获取所述主计时器恢复计时后的下一次理论跳变时刻;
获取第三同步调整时长,所述第三同步调整时长为将所述下一次理论跳变时刻和所述从计时器的计时开始时刻的差值对跳变周期的取余;
当所述第三同步调整时长小于跳变周期的一半时,将所述从计时器的计时开始时刻增大所述第三同步调整时长,以获取调整后的所述从计时器的计时开始时刻;
当所述第三同步调整时长大于或等于跳变周期的一半时,将所述从计时器的计时开始时刻减小所述第三同步调整时长,以获取调整后的所述从计时器的计时开始时刻。
5.根据权利要求1所述的方法,其特征在于,当所述从计时器暂停后恢复计时,所述主计时器保持计时时,所述方法具体包括:
获取所述主计时器相对于从计时器的计时恢复时刻的下一次理论跳变时刻;
计算所述从计时器的计时恢复时刻距离所述下一次理论跳变时刻的第一差距时长;
获取第四同步调整时长,所述第四同步调整时长为所述下一次理论跳变时刻减去所述第一差距时长和从计时器的计时恢复时刻的差值;
将所述从计时器的暂停总时长增大所述第四同步调整时长,以获取调整后的所述从计时器的暂停总时长。
6.根据权利要求1所述的方法,其特征在于,当所述主计时器和所述从计时器均暂停后恢复计时时,所述方法具体包括:
获取所述主计时器恢复计时后的下一次理论跳变时刻;
计算所述主计时器的计时恢复时刻距离所述主计时器恢复计时后下一次理论跳变时刻的第二差距时长,以及所述从计时器的计时恢复时刻距离所述从计时器恢复计时后下一次理论跳变时刻的第三差距时长;
获取第五同步调整时长,所述第五同步调整时长为所述第二差距时长减去所述第三差距时长的差值;
将所述从计时器的暂停总时长增大所述第五同步调整时长,以获取调整后的所述从计时器的暂停总时长。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:
当多次对所述从计时器的计时开始时刻或暂停总时长调整后,所述从计时器的计时时间与真实计时时间之间累积的误差绝对值大于跳变周期时,将所述从计时器的计时时间调快或调慢一个跳变周期对应的时长。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
若调慢一个跳变周期对应的时长,得到的修正计时时间小于未修正时的所述计时时间,则保持当前未修正时的所述计时时间。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
一个或多个存储器;
所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得所述电子设备执行如权利要求1至8中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行程序指令,所述计算机可执行程序指令在被计算机上运行时,使所述计算机执行如权利要求1至8中任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2022106034701 | 2022-05-30 | ||
CN202210603470 | 2022-05-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116030846A CN116030846A (zh) | 2023-04-28 |
CN116030846B true CN116030846B (zh) | 2023-10-20 |
Family
ID=86071033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210715521.XA Active CN116030846B (zh) | 2022-05-30 | 2022-06-23 | 计时跳变同步的方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116030846B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005300255A (ja) * | 2004-04-08 | 2005-10-27 | Seiko Precision Inc | 競技用計時システムおよび、時刻同期方法 |
CN1920965A (zh) * | 2002-12-26 | 2007-02-28 | 株式会社日立制作所 | 记录方法和盘记录设备 |
CN102439857A (zh) * | 2009-05-21 | 2012-05-02 | 摩托罗拉*** | 利用增强型轮询管理的移动计算设备和方法 |
CN103023694A (zh) * | 2012-11-27 | 2013-04-03 | 中国科学院声学研究所 | 一种atca架构中双管理板的协调启动方法及其*** |
CN107155129A (zh) * | 2017-04-23 | 2017-09-12 | 佛山市高明区云大机械科技有限公司 | 一种视频计时方法 |
CN110495220A (zh) * | 2017-03-31 | 2019-11-22 | 中兴通讯股份有限公司 | 用于低功率装置同步的方法和设备 |
CN111367930A (zh) * | 2020-03-03 | 2020-07-03 | 深圳大学 | 区块链交易池信息的同步方法、装置、设备及介质 |
CN113612884A (zh) * | 2021-07-14 | 2021-11-05 | 荣耀终端有限公司 | 关机闹钟的实现方法、电子设备及计算机可读存储介质 |
CN113949918A (zh) * | 2021-07-29 | 2022-01-18 | 努比亚技术有限公司 | 一种画中画显示的方法、终端及存储介质 |
CN114302021A (zh) * | 2021-04-30 | 2022-04-08 | 海信视像科技股份有限公司 | 显示设备和音画同步方法 |
WO2022089216A1 (zh) * | 2020-10-28 | 2022-05-05 | 华为技术有限公司 | 一种界面显示的方法和电子设备 |
CN114510183A (zh) * | 2022-01-26 | 2022-05-17 | 荣耀终端有限公司 | 动效时长管理方法及电子设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130173742A1 (en) * | 2011-12-28 | 2013-07-04 | United Video Properties, Inc. | Systems and methods for latency-based synchronized playback at multiple locations |
US9654817B2 (en) * | 2012-01-27 | 2017-05-16 | Avaya Inc. | System and method to synchronize video playback on mobile devices |
-
2022
- 2022-06-23 CN CN202210715521.XA patent/CN116030846B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1920965A (zh) * | 2002-12-26 | 2007-02-28 | 株式会社日立制作所 | 记录方法和盘记录设备 |
JP2005300255A (ja) * | 2004-04-08 | 2005-10-27 | Seiko Precision Inc | 競技用計時システムおよび、時刻同期方法 |
CN102439857A (zh) * | 2009-05-21 | 2012-05-02 | 摩托罗拉*** | 利用增强型轮询管理的移动计算设备和方法 |
CN103023694A (zh) * | 2012-11-27 | 2013-04-03 | 中国科学院声学研究所 | 一种atca架构中双管理板的协调启动方法及其*** |
CN110495220A (zh) * | 2017-03-31 | 2019-11-22 | 中兴通讯股份有限公司 | 用于低功率装置同步的方法和设备 |
CN107155129A (zh) * | 2017-04-23 | 2017-09-12 | 佛山市高明区云大机械科技有限公司 | 一种视频计时方法 |
CN111367930A (zh) * | 2020-03-03 | 2020-07-03 | 深圳大学 | 区块链交易池信息的同步方法、装置、设备及介质 |
WO2022089216A1 (zh) * | 2020-10-28 | 2022-05-05 | 华为技术有限公司 | 一种界面显示的方法和电子设备 |
CN114302021A (zh) * | 2021-04-30 | 2022-04-08 | 海信视像科技股份有限公司 | 显示设备和音画同步方法 |
CN113612884A (zh) * | 2021-07-14 | 2021-11-05 | 荣耀终端有限公司 | 关机闹钟的实现方法、电子设备及计算机可读存储介质 |
CN113949918A (zh) * | 2021-07-29 | 2022-01-18 | 努比亚技术有限公司 | 一种画中画显示的方法、终端及存储介质 |
CN114510183A (zh) * | 2022-01-26 | 2022-05-17 | 荣耀终端有限公司 | 动效时长管理方法及电子设备 |
Non-Patent Citations (1)
Title |
---|
施利萍 ; 赵建宏 ; .高速跳频网络中时间同步的研究与实现.计算机工程与科学.2019,(第05期),61-67. * |
Also Published As
Publication number | Publication date |
---|---|
CN116030846A (zh) | 2023-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4044609A1 (en) | Cross-device content projection method and electronic device | |
WO2022257977A1 (zh) | 电子设备的投屏方法和电子设备 | |
WO2020108356A1 (zh) | 一种应用显示方法及电子设备 | |
US20220165191A1 (en) | Frequency Adjustment Method and Apparatus Applied to Terminal, and Electronic Device | |
CN114449599B (zh) | 基于电子设备位置的网络链路切换方法和电子设备 | |
CN114089933B (zh) | 显示参数的调整方法、电子设备、芯片及可读存储介质 | |
US20230123223A1 (en) | Distributed Service Scheduling Method and Related Apparatus | |
CN115514882B (zh) | 一种分布式拍摄方法,电子设备及介质 | |
EP4184905A1 (en) | Device recognition method and related apparatus | |
CN116156417A (zh) | 一种设备定位方法及其相关设备 | |
WO2022156721A1 (zh) | 一种拍摄方法及电子设备 | |
JP7193647B2 (ja) | 接続確立方法および端末デバイス | |
WO2022166435A1 (zh) | 分享图片的方法和电子设备 | |
CN114827696A (zh) | 一种跨设备的音视频数据同步播放的方法和电子设备 | |
US20230335081A1 (en) | Display Synchronization Method, Electronic Device, and Readable Storage Medium | |
CN116030846B (zh) | 计时跳变同步的方法及电子设备 | |
EP4246921A1 (en) | Chat interaction method, electronic device, and server | |
CN114830608A (zh) | 一种多路http通道复用的方法及终端 | |
CN114584817B (zh) | 投屏方法及*** | |
WO2023011220A1 (zh) | 一种数据同步方法、终端和*** | |
CN116723382B (zh) | 一种拍摄方法及相关设备 | |
CN118426722A (zh) | 一种显示方法、装置、电子设备及存储介质 | |
CN116567328A (zh) | 一种采集音频的方法及电子设备 | |
CN114827439A (zh) | 一种全景图像的拍摄方法及电子设备 | |
CN116170782A (zh) | 一种投屏方法、相关装置及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |