CN114245208A - 刷新率的设置方法及相关设备 - Google Patents

刷新率的设置方法及相关设备 Download PDF

Info

Publication number
CN114245208A
CN114245208A CN202111545011.4A CN202111545011A CN114245208A CN 114245208 A CN114245208 A CN 114245208A CN 202111545011 A CN202111545011 A CN 202111545011A CN 114245208 A CN114245208 A CN 114245208A
Authority
CN
China
Prior art keywords
application
video
interface
refresh rate
information
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.)
Pending
Application number
CN202111545011.4A
Other languages
English (en)
Inventor
冯晓刚
李飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202111545011.4A priority Critical patent/CN114245208A/zh
Publication of CN114245208A publication Critical patent/CN114245208A/zh
Priority to EP22879669.4A priority patent/EP4224873A4/en
Priority to US18/035,376 priority patent/US20240348869A1/en
Priority to PCT/CN2022/115418 priority patent/WO2023109185A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440281Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the temporal resolution, e.g. by frame skipping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • H04N21/4314Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for fitting data in a restricted space on the screen, e.g. EPG data in a rectangular grid
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44213Monitoring of end-user related data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4438Window management, e.g. event handling following interaction with the user interface
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Social Psychology (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

本申请公开了一种刷新率的设置方法及相关设备,涉及显示技术领域,目的在于满足电子设备在视频播放过程中的对刷新率的需求。具体方案为:响应于接收用户启动所述应用的操作,按照第一刷新率刷新显示应用的应用界面。响应于接收用户播放视频的操作,按照第一刷新率显示视频画面。在显示视频画面的过程中,若在预设时长内进行弹幕绘制,则按照第二刷新率刷新显示应用的应用界面,以满足弹幕场景的需求。若在预设时长内未进行弹幕绘制,则按照第三刷新率刷新显示应用的应用界面,以满足视频播放场景下的需求。

Description

刷新率的设置方法及相关设备
技术领域
本申请涉及显示技术领域,尤其涉及一种刷新率的设置方法及相关设备。
背景技术
刷新率为屏幕每秒画面被刷新的次数。随着显示技术的发展,手机、平板电脑等电子设备可支持的刷新率不断提高。目前,为了画面能显示流畅,电子设备通常是按照固定的高刷新率进行刷新显示,例如按照固定的60HZ、90HZ或者120HZ的固定刷新率进行刷新显示。
然而,在电子设备的视频播放场景下,往往对刷新率的需求较低,这就导致电子设备在播放视频过程中,会出现实际的刷新率高于需求的刷新率的情况,造成处理器的负载过重,对系统电量也造成了浪费。
发明内容
本申请提供了一种刷新率的设置方法及相关设备,目的在于满足视频播放过程中对刷新率的需求。
为了实现上述目的,本申请提供了以下技术方案:
第一方面,本申请提供了一种刷新率的设置方法,应用于电子设备,电子设备安装有应用,该方法包括:响应于接收用户启动应用的操作,按照第一刷新率刷新显示应用的应用界面。响应于接收用户播放视频的操作,按照第一刷新率显示视频画面。在显示视频画面的过程中,确定预设时长内是否进行弹幕绘制,若在预设时长内进行弹幕绘制,则按照第二刷新率刷新显示应用的应用界面,若在预设时长内未进行弹幕绘制,则按照第三刷新率刷新显示应用的应用界面,第三刷新率与第二刷新率不同。
由于本申请实施例中,在显示视频画面的过程中,实时确定预设时长内是否进行弹幕绘制,若在预设时长内进行弹幕绘制,则可以确定应用进入弹幕场景,因此按照第二刷新率刷新显示应用的应用界面,以满足弹幕场景下的显示需求,而若在预设时长内未进行弹幕绘制,则可以认为应用进入了视频播放场景,进而可以按照第三刷新率刷新显示应用的应用界面,以满足视频播放场景下的显示需求。
在一种可能的实现方式中,确定预设时长内是否进行弹幕绘制之前,方法还包括:根据应用界面的图层信息,确定是否为视频播放场景。视频播放场景为播放视频的场景,确定预设时长内是否进行弹幕绘制,可以是若确定为视频播放场景,则确定预设时长内是否进行弹幕绘制。
在另一种可能的实现方式中,确定预设时长内是否进行弹幕绘制之前,方法还包括,确定是否对视频进行解码。其中,若确定为视频播放场景,则确定预设时长内是否进行弹幕绘制,包括:若确定为视频播放场景且确定出对视频进行解码,则确定预设时长内是否进行弹幕绘制。
在另一种可能的实现方式中,根据应用界面的图层信息,确定是否为视频播放场景之前,还可以确定应用是否在播放白名单中,播放白名单为具有视频播放权限的应用名单。其中,根据应用界面的图层信息,确定是否为视频播放场景,可以是:若确定出应用在播放白名单中,则根据应用界面的图层信息,确定是否为视频播放场景。
在另一种可能的实现方式中,确定应用是否在播放白名单中,包括:根据应用界面的图层信息中携带的应用的包名,确定应用是否在播放白名单中。播放白名单,包括:每一个具有视频播放权限的应用的包名。
在另一种可能的实现方式中,根据应用界面的图层信息,确定是否为视频播放场景,包括:确定应用界面的图层信息中是否具有视频图层的特征信息。若应用界面的图层信息中具有视频图层的特征信息,则确定出处于视频播放场景,若应用界面的图层信息中不具有视频图层的特征信息,则确定出不处于视频播放场景。
在另一种可能的实现方式中,视频图层的特征信息为:图层名中携带的视频图层SurfaceView字段。
在另一种可能的实现方式中,第三刷新率根据视频的视频源帧率确定。
在另一种可能的实现方式中,还可以:响应于接收用户退出视频播放的操作,按照第一刷新率刷新显示应用的应用界面。
在另一种可能的实现方式中,电子设备的操作系统,包括:应用和图像合成器Surface Flinger。确定预设时长内是否进行弹幕绘制,包括:Surface Flinger确定预设时长内是否接收到应用进行弹幕绘制的信息。
在另一种可能的实现方式中,电子设备的操作系统还包括:帧率决策模块。若在预设时长内进行弹幕绘制,则按照第二刷新率刷新显示应用的应用界面,包括:SurfaceFlinger若在预设时长内接收到应用进行弹幕绘制的信息,则将弹幕场景信息发送至帧率决策模块,弹幕场景为播放视频的过程中显示弹幕的场景。帧率决策模块根据弹幕场景信息,确定第二刷新率。帧率决策模块将确定出的第二刷新率发送至Surface Flinge,Surface Flinge按照第二刷新率,控制电子设备的显示屏刷新显示应用的应用界面。
在另一种可能的实现方式中,电子设备的操作系统还包括:帧率决策模块。若在预设时长内未进行弹幕绘制,则按照第三刷新率刷新显示应用的应用界面,包括:SurfaceFlinger若在预设时长内未接收到应用进行弹幕绘制的信息,则将视频播放场景信息发送至帧率决策模块,视频播放场景为播放视频的场景。帧率决策模块根据视频播放场景信息和视频源帧率,确定第三刷新率。帧率决策模块将确定出的第三刷新率发送至SurfaceFlinge,Surface Flinge按照第三刷新率,控制电子设备的显示屏刷新显示应用的应用界面。
在另一种可能的实现方式中,电子设备的操作系统,还包括:绘制渲染模块。Surface Flinge将弹幕场景信息发送至帧率决策模块之前,还包括:应用调用绘制渲染模块绘制弹幕,绘制渲染模块将应用进行弹幕绘制的信息发送至Surface Flinger。
在另一种可能的实现方式中,电子设备的操作系统还包括:编解码器MediaCodec。响应于接收用户播放视频的操作之后,还包括:应用调用Media Codec对视频进行解码,Media Codec将视频的视频源帧率发送至帧率决策模块。
在另一种可能的实现方式中,电子设备的操作系统,包括:Surface Flinge。根据应用界面的图层信息,确定是否为视频播放场景,包括:Surface Flinge确定应用界面的图层信息中的图层名,是否携带SurfaceView字段。Surface Flinge若确定出图层名携带SurfaceView字段,则确定为视频播放场景,Surface Flinge若确定出图层名不携带SurfaceView字段,则确定不为视频播放场景。
在另一种可能的实现方式中,电子设备的操作系统,包括:应用、Surface Flinge以及绘制渲模块。按照第一刷新率显示视频画面,包括:Surface Flinge按照第一刷新率对应的Vsync信号节奏,触发应用对视频播放界面的图层进行绘制渲染,视频播放界面为用于显示视频画面的应用界面。应用按照第一刷新率对应的Vsync信号节奏,调用绘制渲染模块对视频播放界面的图层进行绘制渲染,绘制渲染模块按照第一刷新率对应的Vsync信号节奏,发送绘制渲染后的视频播放界面图像数据至Surface Flinge,Surface Flinge按照第一刷新率对应的Vsync信号节奏,使用绘制渲染后的视频播放界面图像数据进行图层合成。Surface Flinge按照第一刷新率对应的Vsync信号节奏,将合成后的视频播放界面图像数据输出至显示屏显示。
在另一种可能的实现方式中,电子设备的操作系统还包括:AMS和窗口管理模块WMS。Surface Flinge按照第一刷新率对应的Vsync信号节奏,触发应用对视频播放界面的图层进行绘制渲染之前还包括:
应用发送启动视频播放Activity的请求至AMS;启动视频播放Activity的请求中携带有应用的包名和视频播放界面名,AMS根据应用的包名和视频播放界面名,启动视频播放Activity,AMS发送视频播放界面对应的窗口信息至WMS。WMS根据视频播放界面对应的窗口信息,创建视频播放界面的窗口,WMS发送视频播放界面的图层信息至Surface Flinge;图层信息中携带有应用的包名。视频播放界面的图层信息与视频播放界面的窗口对应。Surface Flinge根据视频播放界面的图层信息,创建视频播放界面的图层。
在另一种可能的实现方式中,电子设备的操作系统,包括:应用、Surface Flinge以及Media Codec;确定是否对视频进行解码,包括:Surface Flinge若接收到被调用的信息,则确定出应用调用Media Codec对视频进行解码。被调用的信息用于说明Media Codec被调用。Surface Flinge若未接收到被调用的信息,则确定出应用未调用Media Codec对视频进行解码。
在另一种可能的实现方式中,若Surface Flinge接收到被调用的信息,则SurfaceFlinge接收到被调用的信息之前还包括:应用调用Media Codec对视频进行解码,MediaCodec发送被调用的信息至Surface Flinge。
在另一种可能的实现方式中,应用调用Media Codec对视频进行解码之前,还包括:WMS发送视频播放界面的窗口创建完成的信息至应用。
在另一种可能的实现方式中,确定应用是否在播放白名单中,包括:
Surface Flinge根据应用界面的图层信息中携带的应用的包名,确定应用是否在播放白名单中。播放白名单,包括:每一个具有视频播放权限的应用的包名。
在另一种可能的实现方式中,电子设备的操作系统,包括:应用、Surface Flinge、帧率决策模块以及绘制渲染模块。按照第一刷新率刷新显示应用的应用界面,包括:
Surface Flinge按照第一刷新率对应的Vsync信号节奏,触发应用对应用主界面的图层进行绘制渲染,应用主界面为应用启动之后显示的应用界面。应用按照第一刷新率对应的Vsync信号节奏,调用绘制渲染模块对应用主界面的图层进行绘制渲染。绘制渲染模块按照第一刷新率对应的Vsync信号节奏,发送绘制渲染后的应用主界面图像数据至Surface Flinge。Surface Flinge按照第一刷新率对应的Vsync信号节奏,使用绘制渲染后的应用主界面图像数据进行图层合成。Surface Flinge按照第一刷新率对应的Vsync信号节奏,将合成后的应用主界面图像数据输出至显示屏显示。
在另一种可能的实现方式中,电子设备的操作系统还包括:桌面启动器Launcher、AMS以及WMS。Surface Flinge按照第一刷新率对应的Vsync信号节奏,触发应用对应用主界面的图层进行绘制渲染之前,还包括:
Launcher发送启动应用Activity的请求至AMS;启动应用Activity的请求中携带有应用的包名,AMS启动应用Activity,AMS向WMS发送应用主界面对应的窗口信息。其中,窗口信息中携带有应用的包名。WMS根据应用主界面对应的窗口信息,创建应用主界面的窗口,并发送应用的包名至帧率决策模块,WMS发送应用主界面的图层信息至SurfaceFlinge;应用主界面的图层信息与应用主界面的窗口对应,帧率决策模块根据应用的包名,确定出第一刷新率,其中第一刷新率为应用对应的预设刷新率。Surface Flinge根据应用主界面的图层信息,创建应用主界面的图层。
第二方面,本申请公开了一种电子设备,包括:一个或多个处理器、存储器以及显示屏。存储器、显示屏分别与一个或多个处理器耦合,显示屏用于显示应用界面,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,电子设备执行如上述第一方面中任一项的刷新率的设置方法。
应当理解的是,本申请中对技术特征、技术方案、有益效果或类似语言的描述并不是暗示在任意的单个实施例中可以实现所有的特点和优点。相反,可以理解的是对于特征或有益效果的描述意味着在至少一个实施例中包括特定的技术特征、技术方案或有益效果。因此,本说明书中对于技术特征、技术方案或有益效果的描述并不一定是指相同的实施例。进而,还可以任何适当的方式组合本实施例中所描述的技术特征、技术方案和有益效果。本领域技术人员将会理解,无需特定实施例的一个或多个特定的技术特征、技术方案或有益效果即可实现实施例。在其他实施例中,还可在没有体现所有实施例的特定实施例中识别出额外的技术特征和有益效果。
附图说明
图1为本申请实施例提出的视频应用的视频播放场景示意图一;
图2为本申请实施例提出的电子设备的硬件结构图;
图3为本申请实施例提出的电子设备的系统图;
图4a为本申请实施例提出的刷新率的设置方法在应用启动阶段的流程图;
图4b为本申请实施例提出的刷新率的设置方法在视频播放阶段的流程图;
图4c为本申请实施例提出的视频应用的视频播放场景示意图二;
图4d为本申请实施例提出的另一种刷新率的设置方法在视频播放阶段的流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本申请实施例中,“一个或多个”是指一个、两个或两个以上;“和/或”,描述关联对象的关联关系,表示可以存在三种关系;例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例涉及的多个,是指大于或等于两个。需要说明的是,在本申请实施例的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
为了下述各实施例的描述清楚简洁,首先给出一种刷新率的设置方案的简要介绍:
以手机这类电子设备为例,手机的各个应用可以设定有应用对应的预设刷新率,不同应用对应的预设刷新率可以相同,也可以不同。用户点击启动应用后,在应用运行过程中,手机可以采用应用对应的预设刷新率刷新屏幕。
具体的,举例说明,如图1的(1)所示,手机主界面上显示有时钟、日历、图库、备忘录、文件管理、电子邮件、音乐、计算器、视频、运动健康、天气以及浏览器应用。用户点击视频应用的图标,手机界面变化为图1的(2)。如图1的(2)所示,应用主界面上展示了视频1、视频2、视频3、视频4、视频5等可播放的视频。此时应用已启动,手机按照应用对应的预设刷新率60HZ,进行刷新。用户从应用主界面上点击视频1进行播放,手机界面变化为图1的(3)。图1的(3)显示了视频1的播放界面,视频1此时弹幕开关处于关闭状态,在图1的(3)所示出的视频1的播放过程中,视频画面仍然以60HZ的刷新率在刷新。用户点击开启弹幕,手机画面变化为图1的(4),此时弹幕开关处于开启状态,视频画面中有弹幕滚动,视频画面仍然以60HZ进行刷新显示。
然而,在应用的视频播放场景下,应用对应的预设刷新率难以满足视频播放过程对刷新率的需求。例如当图1的(3)所播放的视频1为电影时,仅需要24HZ的刷新率即可满足流畅显示画面的需求,而采用60HZ的刷新率去刷新视频画面,会造成处理器负载过大、耗电较高,不满足手机低功耗的需求。又例如,对于如图1的(4)所示出的视频播放、并开启弹幕的场景,由于画面上还需动态显示滚动弹幕,因此对刷新率的需求会高于图1的(3)所示出的未开启弹幕场景,刷新率过低了容易出现弹幕滚动画面卡顿。
由前述描述可知:(1)应用对应的预设刷新率高于视频播放场景下的实际需求刷新率,容易造成处理器负载过大、耗电较高的情况,不满足手机低功耗的需求。(2)应用对应的预设刷新率是固定不变的,而视频播放场景下对刷新率的需求是会动态变化的,应用对应的预设刷新率无法适用于视频播放场景下对刷新率的不同需求。
基于上述技术方案存在的问题,本申请实施例提出了一种刷新率的设置方法,以满足应用在视频播放场景下对刷新率的需求。
本申请实施例提出的一种刷新率的设置方法,可以适用于手机,平板电脑,笔记本电脑,超级移动个人计算机(Ultra-mobile Personal Computer,UMPC),手持计算机,上网本,个人数字助理(Personal Digital Assistant,PDA),可穿戴电子设备,智能手表等电子设备,该电子设备内安装有视频应用。其中,本申请实施例所提及的视频应用,均指的是具有播放视频功能的应用。
如图2所示,本申请实施例所提出的电子设备可以包括处理器110,外部存储器接口120,内部存储器121,充电管理模块130,电源管理模块131,电池132,天线1,天线2,移动通信模块140,无线通信模块150,音频模块160,扬声器160A,传感器模块170,以及显示屏180等。其中传感器模块170可以包括指纹传感器170A,触摸传感器170B等。
可以理解的是,本实施例示意的结构并不构成对电子设备的具体限定。在另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),视频编解码器。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。例如,在本申请中,处理器110可以用于执行本申请实施例提出的任一刷新率的设置方法,例如处理器110所包括的GPU可以用于实现在显示屏180上显示本申请实施例所提出的任一刷新率的设置方法中所涉及的图像和弹幕。具体的,可参阅下述图4a、图4b以及图4d部分的相关内容,此处不再赘述。
处理器110中还可以设置存储器,用于存储指令和数据。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括移动产业处理器接口(mobile industry processor interface,MIPI)等。
MIPI接口可以被用于连接处理器110与显示屏180等外围器件。MIPI接口包括显示屏串行接口(display serial interface,DSI)等。在一些实施例中,处理器110和显示屏180通过DSI接口通信,实现电子设备的显示功能。例如,本申请实施例中,处理器110和显示屏180通过DSI接口通信,实现在显示屏180上显示本申请实施例所提出的任一刷新率的设置方法中涉及的图像和弹幕。
可以理解的是,本实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备的结构限定。在本申请另一些实施例中,电子设备也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块130用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。
电源管理模块131用于连接电池132,充电管理模块130与处理器110。电源管理模块131接收电池132和/或充电管理模块130的输入,为处理器110,内部存储器121,显示屏180等供电。
电子设备的无线通信功能可以通过天线1,天线2,移动通信模块140,无线通信模块150,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。
移动通信模块140可以提供应用在电子设备上的包括2G/3G/4G/5G等无线通信的解决方案。
无线通信模块150可以提供应用在电子设备上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT)等无线通信的解决方案。
在一些实施例中,电子设备的天线1和移动通信模块140耦合,天线2和无线通信模块150耦合,使得电子设备可以通过无线通信技术与网络以及其他设备通信。
电子设备通过GPU,显示屏180,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏180和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。例如,本申请实施例中,GPU可以用于实现在显示屏180上显示本申请实施例所提出的任一刷新率的设置方法中所涉及的图像和弹幕。具体的,可参阅下述图4a、图4b、以及图4d部分的相关内容,此处不再赘述。
显示屏180用于显示图像,视频等。显示屏180包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED)等。在一些实施例中,电子设备可以包括1个或N个显示屏180,N为大于1的正整数。
电子设备的显示屏180上可以显示一系列图形用户界面(graphical userinterface,GUI)。例如,本申请实施例中,显示屏180可以用于显示本申请实施例所提出的任一刷新率的设置方法中所涉及的图像和弹幕。具体的,可参阅图4a、图4b以及图4d部分的相关内容,此处不再赘述。
视频编解码器用于对数字视频压缩或解压缩。电子设备可以支持一种或多种视频编解码器。这样,电子设备可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。例如,本申请实施例中,视频编解码器可以用于对本申请实施例所提出的任一刷新率的设置方法中所涉及的视频应用播放的视频进行解码。具体的,可参阅图4b部分的S4209相关内容,此处不再赘述。在另一些实施例中,视频编解码器也可以为软件,例如可以是下述图3示出的编解码器(MediaCodec)。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备的存储能力。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备的各种功能应用以及数据处理。例如,在本实施例中,处理器110可以通过执行存储在内部存储器121中的指令,执行本申请实施例所提及的任一刷新率的设置方法。具体的,可参阅下述图4a、图4b、以及图4d部分的相关内容,此处不再赘述。
音频模块160用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。
扬声器160A,也称“喇叭”,用于将音频电信号转换为声音信号。
指纹传感器170A用于采集指纹。电子设备可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
触摸传感器170B,也称“触控器件”。触摸传感器170B可以设置于显示屏180,由触摸传感器170B与显示屏180组成触摸屏,也称“触控屏”。
另外,在上述部件之上,运行有操作系统。例如iOS操作系统,Android开源操作系统,Windows操作系统等。在该操作系统上可以安装运行应用程序。
图3是本申请实施例的电子设备的结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Androidruntime)和系统库,以及内核层。
参阅图3,应用程序层可以包括桌面启动器(Launcher)和视频应用。
其中,Launcher用于启动应用Activity。
例如,在实施例中,如图3所示,Launcher响应于用户点击视频应用的图标的操作,下发启动应用Activity请求至Activity管理服务模块(Activity Manager Service,AMS),具体可以参阅下述图4a示出的步骤S4101的相关内容,此处不再赘述。
视频应用用于为用户提供视频播放功能。
例如,本实施例中,如图3所示,视频应用响应于用户点击视频播放的操作,调用编解码器(Media Codec)对视频进行解码,并下发启动视频播放Activity的请求至AMS。具体可以参阅下述图4b示出的步骤S4201和步骤S4206的相关内容,以及图4d中的步骤S4301和步骤S4306的相关内容,此处不再赘述。
例如,在本实施例中,如图3所示,视频应用被图像合成器(Surface Flinger)触发绘制渲染后,调用绘制渲染模块的绘制渲染线程,进行图像数据和/或,弹幕数据的绘制渲染,并将绘制渲染后的数据发送至Surface Flinger进行合成。具体可以参阅图4a示出的步骤S4110至步骤S4112的相关内容,图4b的步骤S4213的相关内容,以及图4d的步骤S4315的相关内容,此处不再赘述。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。如图3所示,应用程序框架层可以包括Media Codec,AMS,窗口管理模块(Window ManagerService,WMS),以及绘制渲染模块。
Media Codec用于处理音视频的编解码。
例如,本实施例中,如图3所示,Media Codec对视频应用需播放的视频进行解码,并将视频源帧率和被调用的信息发送给帧率决策模块。具体可以参阅图4b示出的步骤S4207的相关内容,以及图4d的步骤S4307的相关内容,此处不再赘述。
AMS用于管理应用进程以及进程的Activity。
例如,如图3所示,本实施例中,AMS响应于Launcher下发的启动应用Activity请求,启动应用Activity,然后向WMS下发创建窗口的信息,具体可以参阅图4a示出的步骤S4102至步骤S4103的相关内容,此处不再赘述。
又例如,如图3所示,本实施例中,AMS响应于视频应用下发的视频播放Activity请求,启动视频播放Activity,并向WMS下发创建窗口的信息,具体可以参阅图4b示出的步骤S4202至步骤S4204的相关内容,以及图4d的步骤S4302至步骤S4304,此处不再赘述。
WMS用于管理窗口,例如负责窗口的启动、添加和删除等。
例如,本实施例中,WMS用于根据AMS发送的视频应用主界面对应的窗口信息,创建视频应用主界面的窗口。具体可以参阅图4a的步骤S4104的相关内容。WMS还可以根据视频播放界面的窗口信息,创建视频播放界面的窗口,具体可参阅图4b的步骤S4204,以及图4d的步骤S4304。
例如,本实施例中,WMS用于下发视频应用的包名至帧率决策模块。具体可以参阅图4a示出的步骤S4107的相关内容,此处不再赘述。
例如,如图3所示,本实施例中,WMS用于下发视频应用主界面的图层信息、或者下发视频播放界面的图层信息至Surface Flinger,具体可以参阅图4a示出的步骤S4105,图4b示出的步骤S4208,以及图4d示出的步骤S4309的相关内容,此处不再赘述。
绘制渲染模块用于启动绘制渲染线程进行绘制渲染,得到绘制渲染后的图像数据,和/或,弹幕数据等。
例如,如图3所示,本实施例中,视频应用调用绘制渲染模块中的绘制渲染线程,以使得绘制渲染模块绘制视频应用主界面的图层,视频播放界面的图层和/或弹幕,具体可以参阅图4a示出的步骤S4111至步骤S4112的相关内容,图4b示出的步骤S4213、步骤S4219以及步骤S4224的相关内容,以及图4d示出的步骤S4315、步骤S4321以及步骤S4326的相关内容,此处不再赘述。
又例如,本实施例中,绘制渲染模块绘制弹幕时,会向Surface Flinger发送视频应用进行弹幕绘制的信息。具体可以参阅图4b示出的步骤S4214的相关内容,以及图4d示出的步骤S4316的相关内容,此处不再赘述。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如图3所示,系统库包括:帧率决策模块和Surface Flinger。
帧率决策模块用于发送目标刷新率(也可以称为目标刷新率)给SurfaceFlinger,以使得Surface Flinger按照目标刷新率控制显示数据的合成。
例如,如图3所示,本实施例中,帧率决策模块用于将被调用的信息发送给SurfaceFlinger,具体可以参阅图4d示出的步骤S4308的相关内容,此处不再赘述。
又例如,本实施例中,帧率决策模块还接收Surface Flinger发送的场景信息,根据场景信息确定出目标刷新率,并将目标刷新率发送给Surface Flinger。其中,场景信息,包括:视频场景信息或弹幕场景信息,具体可以参阅图4b示出的步骤S4217至步骤S4218,S4222至S4223的相关内容,以及参阅图4d示出的步骤S4319至步骤S4320,步骤S4324至步骤S4325的相关内容,此处不再赘述。
Surface Flinger用于合成显示数据。
例如,如图3所示,本实施例中,Surface Flinger用于创建视频应用主界面的图层或者创建视频播放界面的图层。具体可以参阅图4a示出的步骤S4106的相关内容以及图4b示出的步骤S4209的相关内容,以及参阅图4d示出的步骤S4310的相关内容,此处不再赘述。
例如,如图3所示,本实施例中,Surface Flinger用于触发视频应用进行绘制渲染,具体可以参阅图4a示出的步骤S4110的相关内容,此处不再赘述。
又例如,本实施例中,Surface Flinger还用于接收WMS发送的图层信息以及接收Media Codec发送的包名,根据图层信息中的图层特征以及包名,确定是否是视频播放场景,若为视频播放场景,则将视频播放场景信息发送至帧率决策模块。具体可以参阅图4b示出的步骤S4208至步骤4211的相关内容,以及图4d示出的步骤4309至步骤S4312的相关内容,此处不再赘述。
又例如,本实施例中,Surface Flinger还接收绘制渲染模块发送的弹幕绘制信息,根据弹幕绘制信息确定出弹幕场景,将弹幕场景信息发送至帧率决策模块。具体可以参阅图4b示出的步骤S4214至步骤S4216的相关内容,以及图4d示出的步骤S4315至步骤S4318的相关内容,此处不再赘述。
又例如,本实施例中,Surface Flinger还接收并缓存视频应用发送的绘制渲染后的图像数据和弹幕数据,与HWC(Hardware Composer)配合进行图层合成。
内核层是硬件和软件之间的层。内核层至少包含HWC,HWC用于利用硬件完成图像数据组合并显示。例如,如图3所示,本实施例中,HWC用于接收Surface Flinger发送的图层和目标刷新率,按照目标刷新率对图层进行处理,并送至硬件层的LCD进行显示。具体可以参阅图4a的S4113的相关内容,参阅图4b示出的步骤S4219和步骤S4224的相关内容,以及参阅图4d示出的步骤S4321和步骤S4326的相关内容,此处不再赘述。
需要说明的是,本申请实施例虽然以Android系统为例进行说明,但是其基本原理同样适用于基于iOS或Windows等操作系统的电子设备。还需要说明的是,图3示出的硬件层中除了可以使用LCD,也可以使用OLED等其他类型的显示屏,本申请实施例对此不做限制。
参阅图4a,图4a为本申请实施例提出的刷新率的设置方法中的任意一个视频应用的启动阶段流程的示意图,应用于本申请实施例提出的电子设备,具体包括以下步骤:
S4101、Launcher响应于用户启动视频应用的操作,下发启动应用Activity的请求至AMS。
具体的,Launcher接收用户启动视频应用的操作,进而响应于用户启动视频应用的操作,下发启动应用Activity的请求至AMS。示例性的,用户启动视频应用的操作可以是用户点击视频应用图标的操作、用户语音启动视频应用的操作、用户解锁自动启动视频应用的操作等。例如图4a所示,用户需要使用视频应用时,用户点击视频应用的图标,以使得电子设备中的Launcher响应于用户点击视频应用图标的操作,下发启动应用Activity的请求至AMS。
其中,Activity是一个负责与用户交互的应用程序组件,提供一个屏幕或界面,用户可以用来交互为了完成某项任务。应用Activity主要用于完成启动应用的任务,为用户提供应用的主界面。启动应用Activity的请求用于请求启动视频应用Activity,以实现启动视频应用,向用户展示视频应用的主界面。
在一些实施例中,启动应用Activity的请求中携带有视频应用的包名,在另一些实施例中,也可以是携带有视频应用的路径等视频应用所特有的唯一标识。在另一些实施例中,启动应用Activity的请求中除了视频应用所特有的唯一标识外,还可以携带有其他的信息。
在本申请实施例中,视频应用指的是具有视频播放功能的应用,具体可以是浏览器、某视频平台的应用、可播放音乐短片的音乐平台的应用等等。举例说明,如图1中的(1)所示,电子设备为手机时,用户点击界面上的“视频app”的图标,进而可触发手机中的Launcher响应于用户点击视频应用图标的操作,下发启动应用Activity的请求至AMS。
具体的,步骤S4101的执行过程和原理可以参考Android系统中启动应用过程中涉及Activity相关技术原理。
S4102、AMS启动应用Activity。
在一些实施例中,执行步骤S4102的过程为:AMS可以响应于启动应用Activity的请求,根据启动应用Activity的请求中所携带的视频应用的包名,创建应用Activity,并启动创建了的应用Activity。
具体的,AMS启动应用Activity的执行过程和原理可以参考Android系统中AMS启动应用Activity的相关技术原理。
S4103、AMS发送视频应用主界面对应的窗口信息至WMS。
AMS启动应用Activity后,需要完成启动视频应用的任务,为用户提供视频应用的主界面,以供用户与视频应用主界面的控件进行交互。
示例性的,视频应用主界面对应的窗口信息可以从视频应用的安装信息中获取。例如,AMS可以根据视频应用的包名,确定出视频应用的安装信息,进而从视频应用的安装信息中获取视频应用主界面对应的窗口信息。示例性的,可以是AMS与视频应用之间通过多次交互的方式,确定出视频应用主界面对应的窗口信息。
视频应用主界面对应的窗口信息可用于创建视频应用主界面对应的窗口,视频应用主界面对应的窗口信息可以携带有视频应用的包名,具体可以包括有:视频应用主界面的窗口属性信息、窗口层级信息等。例如,窗口属性信息可以是窗口名、窗口位置、窗口大小等,而视频应用主界面对应的窗口层级信息用于说明将视频应用主界面对应的窗口置于显示界面的最顶层。AMS确定出视频应用主界面对应的窗口信息后,即可将该窗口信息发送给WMS,以供WMS创建视频应用主界面对应的窗口。
需要说明的是,视频应用主界面所需要创建的窗口数量的不同并不影响本申请实施例的实现,本申请对此不作限制。
在一些实施例中,步骤S4103的执行过程可以是,AMS调用WMS,向WMS发送视频应用主界面对应的窗口信息。示例性的,AMS调用WMS线程,通过下发视频应用主界面对应的窗口信息,向WMS申请创建视频应用主界面的每一个窗口。
S4104、WMS根据视频应用主界面对应的窗口信息,创建视频应用主界面的窗口。
由于视频应用主界面对应的窗口信息中,包括有视频应用主界面的窗口名、窗口大小、窗口位置等窗口的属性信息,以及窗口的层级信息等,因此WMS可以根据视频应用主界面对应的窗口信息,确定出所需创建的视频应用主界面的窗口的大小、位置、层级等,进而可实现窗口创建。
具体的,步骤S4103至步骤S4104所描述的AMS与WMS之间交互实现创建窗口的过程和技术原理,可以参考Android系统等操作系统中AMS与WMS之间交互实现创建窗口的过程和技术原理。
S4105、WMS将视频应用主界面的窗口对应的图层信息发送至Surface Flinger。
其中,视频应用主界面的窗口对应的图层信息可用于创建视频应用主界面的窗口对应的图层,进而能够实现将视频应用主界面的窗口对应的图层,显示在对应的步骤S4104的窗口区域。视频应用主界面的窗口对应的图层信息携带有视频应用的包名,具体可以包括:视频应用主界面的窗口名,视频应用主界面的窗口对应的图层名,视频应用主界面的窗口对应的图层大小,以及视频应用主界面的窗口对应的图层位置等。示例性的,视频应用的包名可以携带于图层名中。
其中,视频应用主界面的窗口对应的图层信息可以是包含了多个图层的图层信息,具体根据视频应用主界面所需要创建的图层数量而定,本申请对此不作限制。
示例性的,视频应用主界面的窗口对应的图层信息可以从视频应用的安装信息中获取。例如,AMS可以通过视频应用的包名,确定出视频应用的安装信息,从视频应用的安装信息中获取图层信息,再将图层信息发送是WMS,WMS获取到图层信息之后,再发送至Surface Flinger。
示例性的,执行步骤S4105的过程可以是:WMS可以调用Surface Flinger,通过下发视频应用主界面的窗口对应的图层信息至Surface Flinger,以申请在Surface Flinger中创建视频应用主界面的窗口对应的图层。
S4106、Surface Flinger根据视频应用主界面的窗口对应的图层信息,创建视频应用主界面的窗口对应的图层。
由于视频应用主界面的窗口对应的图层信息中具有视频应用主界面的窗口名,窗口对应的图层名,图层大小,图层位置等能够实现图层创建的信息,进而Surface Flinger可以根据视频应用主界面的窗口对应的图层信息,创建出视频应用主界面窗口对应的图层。
示例性,步骤S4105至步骤S4106的过程中,WMS和Surface Flinger之间的交互通过ViewRootImpl等函数实现图层创建。
具体的,步骤S4105至步骤S4106中所涉及的WMS和Surface Flinger之间交互通信,实现在Surface Flinger中创建视频应用主界面的窗口对应的图层的过程和技术原理,可以参考Android系统中WMS与Surface Flinger之间交互实现创建图层的过程和技术原理。
S4107、WMS向帧率决策模块发送视频应用的包名。
其中,步骤S4107可以是在WMS完成窗口创建,即步骤S4104之后执行。由于步骤S4103中,WMS接收到的窗口信息中携带有视频应用的包名,因此在当前处于启动视频应用的阶段,WMS可以将步骤S4103中获取到的包名,发送至帧率决策模块,进而可使得帧率决策模块确定出当前需要启动的是视频应用。帧率决策模块可以根据视频应用的包名,确定出与视频应用对应的预设刷新率。
需要说明的是,WMS向帧率决策模块发送视频应用的包名的具体实现方式很多,只需实现让帧率决策模块可通过WMS下发的包名,确定出视频应用对应的预设刷新率即可,具体发送视频应用的包名的方式本申请实施例不做限制。
S4108、帧率决策模块根据视频应用的包名,确定出视频应用对应的预设刷新率。
在一些实施例中,电子设备中预先存储有包名与预设刷新率之间的对应关系。因此帧率决策模块可以通过视频应用的包名,查找到视频应用对应的预设刷新率。
S4109、帧率决策模块将视频应用对应的预设刷新率发送至Surface Flinger。
由于当前启动了视频应用,因此在显示过程中所使用的目标刷新率为视频应用对应的预设刷新率,帧率决策模块通过将视频应用对应的刷新率下发给Surface Flinger的方式,可控制Surface Flinger按照预设刷新率来合成需要显示的图像。
需要说明的是,在一些实施例中,也可以不执行步骤S4107和步骤S4108。例如,若所有应用的预设刷新率均是一致的时候,例如电子设备默认使用60HZ的刷新率,那么就不再需要执行步骤S4107和步骤S4108,而步骤S4109时则将所有应用默认使用的预设刷新率作为目标刷新率,下发给Surface Flinger即可。
S4110、Surface Flinger按照预设刷新率对应的垂直同步(Vsync,VerticalSync)信号的节奏,触发视频应用对视频应用主界面的的窗口对应的图层进行绘制渲染。
其中,Vsync信号用于控制显示画面的绘制渲染、图层合成、送显的节奏。步骤S4110中提及的预设刷新率为视频应用对应的预设刷新率,Surface Flinger按照预设刷新率对应的Vsync信号的节奏,触发视频应用启动对视频应用主界面的窗口对应的图层进行绘制渲染。Vsync信号的周期与预设刷新率相对应。预设刷新率对应的Vsync信号可以控制显示屏按照预设刷新率进行刷新显示。
具体的,Surface Flinger按照Vsync信号的节奏触发绘制渲染的过程可以参考Android系统中Surface Flinger对触发绘制渲染的过程和技术原理的相关内容。
S4111、视频应用按照预设刷新率对应的Vsync信号的节奏,调用绘制渲染模块对视频应用主界面的窗口对应的图层进行绘制渲染,得到绘制渲染后的主界面图像数据。
其中,绘制渲染后的主界面图像数据,指的是绘制渲染后的视频应用主界面的图像数据,也可以理解为是对视频应用主界面的窗口对应的图层进行绘制渲染之后,所得到的图像数据。
示例性的,执行步骤S4111的过程可以是,视频应用按照预设刷新率对应的Vsync信号的节奏,调用绘制渲染模块的绘制渲染线程,实现让绘制渲染模块对视频应用主界面的图层进行绘制渲染,进而绘制渲染模块可以得到绘制渲染后的主界面图像数据。
示例性的,绘制渲染模块进行绘制渲染的过程中,可以通过调用Open GL ES、Skia等函数对视频应用主界面的窗口对应的图层进行绘制渲染。
具体的,视频应用和绘制渲染模块之间交互实现绘制渲染图层的过程和技术原理,可以参考Android系统中对图层进行绘制渲染的过程和技术原理。
S4112、绘制渲染模块按照预设刷新率对应的Vsync信号的节奏,将绘制渲染后的主界面图像数据,发送至Surface Flinger。
步骤S4111中绘制渲染模块所得到的绘制渲染后的主界面图像数据,可以按照预设刷新率对应的Vsync信号的节奏,发送至Surface Flinger中。而具体的绘制渲染模块按照Vsync信号的节奏,将绘制渲染后的主界面图像数据发送至Surface Flinger的过程中,可以由其他模块共同配合实现。本申请实施例对于步骤S4112的具体实现过程不作限制。
S4113、Surface Flinger按照视频应用对应的预设刷新率,使用绘制渲染后的主界面图像数据进行图层合成,并将合成后的主界面图像数据送显。
Surface Flinger按照视频应用对应的预设刷新率,对每一帧的绘制渲染后的主界面图像数据进行图层合成,并将合成后的主界面数据送至显示屏(例如LCD)进行显示,以使得电子设备的显示屏上可以按照目标刷新率,刷新显示视频应用主界面。示例性的,Surface Flinger按照预设刷新率对应的Vsync信号的节奏,对每一帧的绘制渲染后的主界面图像数据进行图层合成,并将合成后的主界面数据,按照Vsync信号的节奏将合成后的主界面数据送至显示屏(例如LCD)进行显示,进而实现显示屏按照视频应用对应的预设刷新率,刷新显示视频应用主界面。
举例说明,如图1中的(2)所示,按照60HZ的预设刷新率,显示视频应用的主界面,主界面上显示有可播放的多个视频。
示例性的,Surface Flinger得到绘制渲染后的主界面图像数据后,可以通过HWC实现图层合成,例如Surface Flinger将目标刷新率下发至HWC,然后将绘制渲染后的主界面图像数据发送给HWC,以使得HWC按照目标刷新率对绘制渲染后的主界面图像数据进行图层合成,HWC按照目标刷新率将每一帧合成后的主界面图像数据输出至显示屏显示。
具体的,Surface Flinger将合成后的主界面图像数据送显的过程可以参考Android系统中Surface Flinger合成图层并送显的相关内容。
通过步骤S4101至步骤S4103,电子设备可在应用启动阶段,实现按照视频应用对应的预设刷新率,显示视频应用主界面,以供用户交互。
参阅图4b,图4b为本申请实施例提出的刷新率的设置方法中任意一个视频应用的视频播放阶段流程的示意图,应用于本申请实施例提出的电子设备,图4b示出的流程可在图4a示出的流程执行完成,显示出视频应用的视频应用主界面之后再开始执行,此时电子设备的前端仅显示有一个视频应用的视频应用主界面,具体的视频播放阶段流程包括以下步骤:
S4201、视频应用响应于用户播放视频的操作,下发启动视频播放Activity的请求至AMS。
其中,视频播放Activity用于实现提供一个视频播放界面,用户可以用来交互完成视频播放任务。
通过图4a的流程启动了视频应用之后,视频应用接收用户播放视频的操作,进而响应于用户播放视频的操作,触发发送启动视频播放Activity的请求至AMS,以使得AMS启动视频播放Activity。
其中,用户播放视频的操作的具体形式有很多,示例性的,用户播放视频的操作可以是在前述图4a的流程中显示的视频应用主界面上点击某个视频的操作,还可以是用户在视频应用主界面上搜索需要观看的视频,然后在搜索结果界面上点击某个视频的操作,也可以是用户语音输入需要播放的视频的操作。
举例说明,如图4c中的(1)所示,在视频应用主界面上,用户点击视频1,进而可触发视频应用下发启动视频播放Activity的请求至AMS。其中,图4c的(1)的具体描述也可以参考前述对图1的(2)的相关描述,此处不再赘述。
需要说明的是,从显示视频应用主界面到视频应用接收了用户的播放视频操作的过程有很多种具体实现形式,本申请实施例对此不作限制。
在一些实施例中,启动视频播放Activity的请求中携带有视频应用的包名和视频播放Activity的视频播放界面名。其中,视频播放界面名能够用于说明需要播放的视频所在界面的名称。例如参阅图4c的(1),用户点击视频1,进而触发视频应用发送启动视频播放Activity的请求,该启动视频播放Activity的请求中则可以携带有视频1的播放界面名。
在一些实施例中,启动视频播放Activity的请求中可以携带有除视频应用的包名之外的其他类型的视频应用的标识,例如可以是视频应用的路径等,本申请实施例对于视频应用的标识的具体形式不作限制。在另一些实施例中,动视频播放Activity的请求中可以携带有除视频播放界面名之外的其他类型的视频播放界面的标识,本申请实施例对此也不作限制。
在另一些实施例中,启动视频播放Activity的请求中还可以携带有其他的关于视频播放Activity的信息,本申请实施例对于启动视频播放Activity的请求中的具体信息不作限制。
需要说明的是,在另一些实施例中,也可以是视频应用或者其他应用自动触发视频应用下发启动视频播放Activity的请求至AMS,具体触发下发启动视频播放Activity的请求至AMS的方式的不同,并不影响本申请实施例的实现。
具体的,步骤S4201的执行过程和原理可以参考Android系统中在应用中启动视频播放过程中涉及Activity的相关技术原理。
S4202、AMS启动视频播放Activity。
在一些实施例中,执行步骤S4202的过程为:AMS可以响应于启动视频播放Activity的请求,根据启动视频播放Activity的请求中所携带的视频应用的包名和视频播放界面名,创建视频播放Activity,并启动创建了的视频播放Activity。
具体的,AMS启动视频播放Activity的执行过程和原理可以参考Android系统中AMS启动Activity的相关技术原理。
S4203、AMS发送视频播放界面对应的窗口信息至WMS。
其中,视频播放界面为用于显示视频画面的应用界面。AMS启动视频播放Activity后,需要完成视频播放的任务,为用户提供视频应用的视频播放界面,以供用户与视频应用播放界面的控件进行交互,满足用户的视频播放需求。视频播放界面对应的窗口信息可用于创建视频播放界面对应的窗口。
示例性的,视频播放界面对应的窗口信息可以从视频应用的安装信息中获取。例如,AMS可以根据视频应用的包名,确定出视频应用的安装信息,进而从视频应用的安装信息中获取视频播放界面对应的窗口信息。示例性的,可以是AMS与视频应用之间通过多次交互的方式,确定出视频播放界面对应的窗口信息。
视频播放界面对应的窗口信息可以携带有视频应用的包名,具体可以包括有:视频播放界面的窗口属性信息、窗口层级信息等。例如,窗口属性信息可以是窗口名、窗口位置、窗口大小等。而视频播放界面对应的窗口层级信息用于说明将视频播放界面对应的窗口置于显示界面的最顶层。AMS确定出视频播放界面对应的窗口信息后,即可将该窗口信息发送给WMS,以供WMS创建视频播放界面对应的窗口。
其中,AMS发送视频播放界面对应的窗口信息至WMS的过程和原理,可以参考前述图4a中步骤S4103的执行过程和原理,区别点在于步骤S4103需AMS发送的窗口信息与视频应用主界面相关,而步骤S4203中AMS发送的窗口信息与视频播放界面相关。
S4204、WMS根据视频播放界面对应的窗口信息,创建视频播放界面的窗口。
由于视频播放界面对应的窗口信息中,包括有视频播放界面的窗口名、窗口大小、窗口位置等窗口的属性信息,以及窗口的层级信息等,因此WMS可以根据视频播放界面对应的窗口信息,确定出所需创建的视频播放界面的窗口的大小、位置、层级等,进而可实现视频播放界面的窗口创建。
具体的,步骤S4204的执行过程和原理可以参考前述图4a示出的步骤S4104,区别点在于步骤S4104创建的窗口是视频应用主界面的窗口,而步骤S4204所创建的窗口是视频播放界面的窗口。
S4205、WMS发送窗口创建完成的信息至视频应用。
WMS在结束步骤S4204时,会将窗口创建完成的信息发送给视频应用,提示视频应用当前已完成窗口创建,视频应用可触发后续操作。
其中,窗口创建完成的信息可以携带有已完成创建的窗口的标识信息,例如窗口名等,本申请实施例对于窗口创建完成的信息的具体形式不作限制。
S4206、视频应用调用Media Codec进行视频解码。
示例性的,可以是视频应用在接收到步骤S4205所发送的窗口创建完成的信息之后,触发执行步骤S4206。
具体的,视频应用调用Media Codec,对步骤S4201中用户所需播放的视频进行视频解码。例如图4c的(1)所示,用户点击了视频1,因此视频应用会调用Media Codec对视频1进行视频解码。其中,图4c的(1)的相关内容可以参考前述对图1的(2)的描述,此处不再赘述。
具体的,步骤S4206的执行过程和原理可以参考Android系统中视频解码过程的相关技术原理。
S4207、Media Codec将视频源帧率发送给帧率决策模块。
其中,视频源帧率指的是用户所需播放的视频的视频源帧率。由于步骤S4206中,Media Codec在视频应用的调用下,对用户所需播放的视频进行了视频解码,因此MediaCodec通过用户所需播放的视频的视频源,获取该视频的视频源帧率。在另一些实施例中,Media Codec还可以获取视频的分辨率等视频源的信息。
其中,用户所需播放视频的视频源帧率能够说明用户所需播放的视频的需求刷新率,进而可为帧率决策模块进行刷新率决策时提供参考,具体可参阅后续的步骤S4222的描述。
S4208、WMS将视频播放界面的窗口对应的图层信息发送至Surface Flinger。
其中,视频播放界面的窗口对应的图层信息中携带有视频应用的包名。视频播放界面的窗口对应的图层信息可用于创建视频播放界面的图层,进而能够实现将视频播放界面的图层显示在对应的步骤S4204的窗口区域。视频播放界面对应的图层信息具体可以包括:视频播放界面的窗口对应的图层名、图层大小、图层位置以及窗口名等。示例性的,视频应用的包名可以携带在图层名中。
具体的,步骤S4208的执行过程和原理,可以参考前述图4a提及的步骤S4105的过程和原理,区别点在于步骤S4108发送的图层信息与视频应用主界面相关,而步骤S4208中发送的图层信息与视频播放界面相关。
S4209、Surface Flinger根据视频播放界面的窗口对应的图层信息,创建视频播放界面的窗口对应的图层。
具体的,步骤S4209的执行过程和原理,可以参考前述图4a提及的步骤S4106的过程和原理,区别点在于步骤S4109创建的图层与视频应用主界面相关,而步骤S4206所创建的图层与视频播放界面相关。
需要说明的是,S4203、S4204、S4208以及S4209可以是重复执行的步骤。示例性的,在执行完前述图4a的流程之后,显示屏按照预设刷新率刷新显示屏,因此当需要显示新的一帧的视频播放界面时,就需要通过S4203、S4204、S4208以及S4209,重新更新窗口、图层等信息。
示例性的,在执行步骤S4209之后,Surface Flinger则按照视频应用对应的预设刷新率所对应的Vsync信号节奏,触发视频应用对视频播放界面的窗口对应的图层进行绘制渲染,然后视频应用按照预设刷新率对应的Vsync信号节奏,调用绘制渲染模块对视频播放界面的窗口对应的图层进行绘制渲染,绘制渲染模块按照预设刷新率所对应的Vsync信号节奏,发送绘制渲染后的视频播放界面的图像数据至Surface Flinger,SurfaceFlinger即可按照视频应用对应的预设刷新率,使用绘制渲染后的视频播放界面的图像数据进行图层合成,并将合成后的视频播放界面的图像数据送显,实现令显示屏按照视频应用对应的预设刷新率刷新视频播放界面。具体可以参阅图4a示出的步骤S4110至步骤S4113的相关内容,区别点在于显示的界面不同。
需要说明的是,按照视频应用对应的预设刷新率,刷新显示视频播放界面的步骤,与后续描述的步骤S4211至步骤S4224的步骤的执行过程互不干扰,即本申请对步骤S4211与按照视频应用对应的预设刷新率,刷新显示视频播放界面的步骤的执行先后顺序不作限制,在帧率决策模块未发送新的刷新率至Surface Flinger之前,Surface Flinger可以按照视频应用对应的预设刷新率刷新显示视频播放界面,直至通过步骤S4211至步骤S4224的步骤,帧率决策模块所发送的刷新率发生变更,再重新以新的刷新率去刷新视频播放界面。
S4210、Surface Flinger根据图层信息中的包名,确定出视频应用是否在播放白名单中。
其中,播放白名单可以理解为是具有视频播放权限的应用的名单。步骤S4210中的图层信息可以理解为是视频播放界面的窗口对应的图层信息。由前述对步骤S4208的描述可知,图层信息中携带有视频应用的包名,因此可以通过视频应用的包名,确定出视频应用是否在播放白名单中。
示例性的,视频播放界面对应的图层信息中携带的图层名中可获取到视频应用的包名。例如,图层名的具体格式可以为:包名/图层特有的名称,进而能从图层信息中得到包名。举例说明,某个视频应用的视频播放界面的图层名为“xxx.xxxx.xx/com.xx.bangumi.ui.page.detail.BangumiDetailActivityV3#0SurfaceView-xxx.xxxx.xx/com.bi[...]age.detail.BangumiDetailActivityV3#0”,由图层名可知,该视频应用的包名为“xxx.xxxx.xx”。
示例性的,步骤S4210的执行过程为:Surface Flinger从播放白名单中查找是否存在有视频应用的包名,若存在有视频应用的包名,则确定出视频应用在播放白名单中,若在播放白名单中查找不到视频应用的包名,则说明视频应用不在播放白名单中。
若确定出视频应用在播放白名单中,则认为视频应用具有播放权限,执行步骤S4211,若确定出视频应用不在播放白名单中,则认为视频应用不具有播放权限,则结束流程,即不在显示屏上显示视频播放界面。在另一些实施例中,还可以在显示屏上显示用于提醒用户该视频应用不具有播放权限的提示信息。
在另一些实施例中,也可以不执行步骤S4210,即执行步骤S4209之后直接执行步骤S4211。
S4211、Surface Flinger根据视频播放界面的窗口对应的图层信息,确定是否为视频播放场景。
其中,视频播放界面的窗口对应的图层信息中具有能够用于说明是否为视频播放场景的图层特征信息。确定是否为视频播放场景可以理解为是确定视频应用当前所处的场景是否为视频播放场景。视频播放场景指的是应用播放视频的场景。
示例性的,图层特征信息可以为视频图层(SurfaceView),若图层信息中具有SurfaceView,则说明处于视频播放场景。举例说明,若图层信息中的图层名中存在有视频图层(SurfaceView)的字段,即可确定出为视频播放场景。例如某个视频应用的视频播放界面的图层名为“xxx.xxxx.xx/com.xx.bangumi.ui.page.detail.BangumiDetailActivityV3#0SurfaceView-xxx.xxxx.xx/com.bi[...]age.detail.BangumiDetailActivityV3#0”,当中携带有“SurfaceView”字段,因此确定出该视频应用当前处于视频播放场景,用户具有视频播放需求。
若步骤S4211确定出为视频播放场景,则执行步骤S4212,继续确定是否为视频播放场景下的弹幕场景,若步骤S4211确定出不为视频播放场景,则结束流程,即不再让帧率决策模块重新设置刷新率,显示屏继续按照图4a流程中所提及的视频应用对应的预设刷新率,刷新显示画面。
需要说明的是,当Surface Flinger在步骤S4211中确定出当前为视频播放场景时,就不会再重复进行视频播放场景的确定。示例性的,当步骤S4211确定为视频播放场景之后,若检测到前述提及的步骤S4209所创建的图层销毁时,则确定出当前不再处于视频播放场景,进而可以发送一个非视频播放场景的信息至帧率决策模块,以通知帧率决策模块确定出不处于视频播放场景,将目标刷新率重新设置为视频应用对应的预设刷新率。
S4212、Surface Flinger确定预设时长内是否接收到视频应用进行弹幕绘制的信息。
其中,视频应用进行弹幕绘制的信息用于说明视频应用调用了绘制渲染模块绘制弹幕。Surface Flinger通过步骤S4211确定当前处于视频场景之后,可以通过步骤S4212进一步确定视频应用是否处于弹幕场景。其中,弹幕场景可以理解为是视频播放过程中显示有弹幕的场景。
具体的,若步骤S4212确定出预设时长内接收到视频应用进行弹幕绘制的信息,则认为视频应用处于弹幕场景,如果S4212确定出预设时长内未接收到视频应用进行弹幕绘制的信息,则认为视频应用不处于弹幕场景,只处于步骤S4211所确定出的视频场景,即可以理解为当前视频应用在视频播放过程中不需要显示弹幕,执行步骤S4221。
其中,视频应用进行弹幕绘制的信息可以由绘制渲染模块发送。示例性的,当视频应用处于弹幕场景时,视频应用会按照视频应用的预设刷新率对应的Vsync信号的节奏,调用绘制渲染模块进行弹幕的绘制渲染。进而绘制渲染模块会按照Vsync信号的节奏向Surface Flinger发送视频应用进行弹幕绘制的信息。因此,弹幕场景下,Surface Flinger会按照Vsync信号的节奏接收到视频应用进行弹幕绘制的信息。
当Surface Flinger在Vsync信号的节奏下,在预设时长内均没有收到视频应用进行弹幕绘制的信息时,则可以认为当前不处于弹幕场景,仅处于视频播放场景。示例性的,当Surface Flinger最近一次接收到视频应用进行弹幕绘制的信息的时间点与当前时间点之间的时间差,大于或等于预设时长,则确定出在预设时长内均没有收到视频应用进行弹幕绘制的信息,认为当前不处于弹幕场景,仅处于视频播放场景。
而Surface Flinger如果在预设时长内有接收到视频应用进行弹幕绘制的信息,则可以认为当前处于弹幕场景。示例性的,Surface Flinger最新一次接收到视频应用进行弹幕绘制的信息的时间点与当前的时间点之间的时间差,小于预设时长,就可以确定出在预设时长内有接收到视频应用进行弹幕绘制的信息,当前处于弹幕场景。
示例性的,预设时长可以根据实际应用场景、经验等进行设定,例如,可以将预设时长设定为5秒,预设时长的具体设定方式本申请实施例对此不作限制。
需要说明的是,S4212可以是一个重复执行的步骤。例如,Surface Flinger可以根据当前的预设刷新率对应的Vsync信号的节奏,确认预设时长内是否接收到视频应用进行弹幕绘制的信息,以实现实时确认当前是否处于弹幕场景的目的。
在另一些实施例中,步骤S4211确定出为视频播放场景之后,在执行步骤S4212之前,还可以直接发送视频播放场景信息至帧率决策模块,由帧率决策模块根据视频播放场景信息以及视频源帧率,确定出目标刷新率,然后将目标刷新率发送至Surface Flinger,由Surface Flinger按照目标刷新率控制视频播放界面的显示,具体过程和执行原理可以参考后续对步骤S4221至步骤S4224,此处不再赘述。Surface Flinger控制显示屏按照视频播放场景信息所确定出的目标刷新率刷新显示画面之后,再执行步骤S4212,若确定出在预设时长内未接收到视频应用进行弹幕绘制的信息,则可以直接结束流程,不需要再次执行步骤S4221至步骤S4224。
S4213、视频应用按照Vsync信号的节奏,调用绘制渲染模块绘制弹幕。
视频应用按照当前的实际刷新率对应的Vsync信号的节奏,调用绘制渲染模块绘制弹幕。示例性,由前述图4a的描述可知,启动视频应用之后,显示屏按照视频应用对应的预设刷新率在刷新显示画面。因此,当视频应用需要绘制弹幕时,可以按照当前的预设刷新率对应的Vsync信号的节奏,调用绘制渲染模块进行弹幕绘制。其中,视频应用所绘制的弹幕可以理解为是用户所需播放的视频的弹幕。
示例性的,步骤S4213可以是在视频应用接收到用户点击开启弹幕之后,触发步骤S4213开始执行,也可以是在前述步骤S4201中接收到用户播放视频的操作之后,自动触发开启需播放视频的弹幕,进而开始执行步骤S4213。示例性的,如图4c的(2)所示,用户点击弹幕开关,即可触发视频应用执行步骤S4213。
示例性的,视频应用调用绘制渲染模块进行绘制弹幕时,绘制渲染模块可以生成文本视图(Textview)、基本画布(basecanvas),采用drawtext、Skia、HWUI、OPEN GL ES等函数完成弹幕绘制。示例性的,针对绘制每一帧的弹幕绘制过程,可以是每需要绘制一条弹幕,视频应用就调用一次绘制渲染模块进行弹幕绘制。可以理解为在绘制一帧画面的弹幕的过程中,步骤S4213中可以根据实际的弹幕绘制需求重复执行多次。绘制渲染模块绘制渲染弹幕,并将弹幕显示到电子设备的显示屏的过程可以由多个模块配合执行完成,具体可以参考Android系统中的弹幕绘制渲染的过程和技术原理。
需要说明的是,步骤S4213当且仅当视频应用需要绘制弹幕时,才调用绘制渲染模块进行弹幕绘制,因此如果视频应用不需要绘制弹幕时,例如用户关闭弹幕开关,或者视频本身无任何弹幕,则不会执行步骤S4213,进而也不会执行步骤S4214。因此步骤S4213并不是在显示每一帧画面时都必须执行的步骤,当且仅当一帧的画面具有弹幕绘制需求时才出发执行步骤S4213,而具体触发步骤S4213的方式的不同不影响本申请实施例的实现。
S4214、绘制渲染模块按照Vsync信号的节奏,发送视频应用进行弹幕绘制的信息至Surface Flinger。
绘制渲染模块按照当前的实际刷新率对应的Vsync信号的节奏,发送视频应用进行弹幕绘制的信息至Surface Flinger。示例性,执行完图4a的流程之后,电子设备当前的实际刷新率为视频应用对应的预设刷新率,因此执行步骤S4214时,绘制渲染模块可以按照预设刷新率对应的Vsync信号的节奏,发送视频应用进行弹幕绘制的信息至SurfaceFlinger。
其中,视频应用进行弹幕绘制的信息能够用于说明视频应用调用绘制渲染模块进行弹幕绘制。由前述图4a的描述可知,启动视频应用之后,显示屏按照视频应用对应的预设刷新率在刷新显示画面,因此,在执行步骤S4214的过程中,绘制渲染模块也可以是跟随预设刷新率对应的Vsync信号的节奏,发送视频应用进行弹幕绘制的信息至SurfaceFlinger。
示例性的,针对每一帧的弹幕绘制过程,可以是在步骤S4213绘制一帧的弹幕结束之后,发送视频应用进行弹幕绘制的信息至Surface Flinger。即若每一帧均需要进行弹幕绘制,则步骤S4214会按照预设刷新率对应的Vsync信号的节奏,每一帧均发送视频应用进行弹幕绘制的信息至Surface Flinger。若某一帧不进行弹幕绘制,即不执行步骤S4213,则绘制渲染模块在该帧不会发送视频应用进行弹幕绘制的信息至Surface Flinger。
在另一些实施例中,也可以是针对每一帧的弹幕绘制过程,当视频应用调用绘制渲染模块进行弹幕绘制时,即可触发绘制渲染模块发送视频应用进行弹幕绘制的信息至Surface Flinger,具体在绘制一帧的弹幕的过程中,绘制渲染模块发送视频应用进行弹幕绘制的信息的时间点可不作限制。
在另一些实施例中,视频应用进行弹幕绘制的信息中可以携带有视频应用的包名,以标识具体是哪一个应用进行了弹幕绘制。在另一些实施例中,由于前端仅运行一个视频应用,因此视频应用进行弹幕绘制的信息也可以不携带视频应用的包名,即不需要标识具体是哪一个应用进行了弹幕绘制。
在另一些实施例中,绘制渲染模块还按照预设刷新率对应的Vsync信号的节奏,将绘制渲染后的每一帧的弹幕数据发送至Surface Flinger,由Surface Flinger进行图层合成。
需要说明的是,视频应用进行弹幕绘制的信息的具体表现形式有很多,例如可以携带有特定的用于说明弹幕绘制的标识符等,本申请实施例对于视频应用进行弹幕绘制的信息的具体表现形式不作限制。
S4215、Surface Flinger确定为弹幕场景。
其中,弹幕场景为播放视频的过程中显示弹幕的场景。由前述提及的步骤S4212可知,Surface Flinger在确定预设时长内是否有接收到视频应用进行弹幕绘制的信息,Surface Flinger在执行步骤S4212的过程中,若在S4214中接收到了视频应用进行弹幕绘制的信息,则可以确定出在预设时长内接收到视频应用进行弹幕绘制的信息。当SurfaceFlinger确定出在预设时长内接收到视频应用进行弹幕绘制的信息时,Surface Flinger则确定出视频应用当前处于弹幕场景。
示例性的,Surface Flinger根据接收到的视频应用进行弹幕绘制的信息,确定出在预设时长内接收到视频应用进行弹幕绘制的信息。例如,Surface Flinger可以是在每一次接收到视频应用进行弹幕绘制的信息时,即触发确定出当前在预设时长内接收到视频应用进行弹幕绘制的信息,进而确定出当前处于弹幕场景。而根据接收到的视频应用进行弹幕绘制的信息,确定出弹幕场景的具体过程,本申请实施例对此不作限制。
S4216、Surface Flinger发送弹幕场景信息至帧率决策模块。
由于步骤S4215确定出了在预设时长内接收到视频应用进行弹幕绘制的信息,进而Surface Flinger确定出了当前处于弹幕场景,因此发送弹幕场景信息至帧率决策模块,通知帧率决策模块当前为弹幕场景。
其中,弹幕场景信息用于说明当前处于弹幕场景。弹幕场景信息的具体表现形式本申请实施例不作限制,例如可以使用特定符号或特定字段来表示。
示例性的,执行步骤S4216的过程为,当步骤S4215确定出在预设时长内接收到视频应用进行弹幕绘制的信息时,则触发执行发送弹幕场景信息至帧率决策模块。示例性的,执行步骤S4216的过程还可以是:仅在首次确定出在预设时长内接收到视频应用进行弹幕绘制的信息时,触发执行发送弹幕场景信息至帧率决策模块。后续仍重复确定出在预设时长内接收到视频应用进行弹幕绘制的信息,则认为视频应用一直处于弹幕场景中,不需要重复通知帧率决策模块当前为弹幕场景,以节省功耗。
S4217、帧率决策模块根据弹幕场景信息,确定出目标刷新率。
当帧率决策模块接收到弹幕场景信息时,帧率决策模块确定出当前处于弹幕场景,进而帧率决策模块会根据弹幕场景信息,确定出一个目标刷新率,由于该目标刷新率是根据弹幕场景信息确定的,因此当电子设备按照该目标刷新率刷新画面时,满足弹幕场景下的显示需求。其中,本申请实施例中的目标刷新率均可以理解为是电子设备实际使用的刷新率。
示例性的,可以预先存储了弹幕场景对应的预设刷新率,当接收到弹幕场景信息时,帧率决策模块则将目标刷新率设置为弹幕场景对应的预设刷新率。其中,弹幕场景对应的预设刷新率可根据实际经验设定。示例性的,由于弹幕场景下除了需要显示视频画面,还需要显示弹幕,因此需要较高的刷新率以保障显示画面的流畅性。例如,弹幕场景对应的预设刷新率可以设定为60HZ。
示例性的,也可以是根据弹幕场景信息和视频源帧率,按照预设规则去设置目标刷新率,以使得目标刷新率能够满足视频播放过程中展示弹幕的显示需求。例如,可以设定为将视频源帧率与预设帧率的和作为目标刷新率。
S4218、帧率决策模块将目标刷新率发送至Surface Flinger。
在一些实施例中,帧率决策模块每确定出一次目标刷新率,就触发执行步骤S4218。在另一些实施例中,为了节省功耗,也可以是在帧率决策模块确定出的目标刷新率发生变更时,再发送最新确定出的目标刷新率至Surface Flinger。例如,若步骤S4217中,根据弹幕场景信息所确定出的目标刷新率为60HZ,而当前实际使用的视频应用对应的预设刷新率也为60HZ,则可以不再将目标刷新率发送至Surface Flinger。
S4219、Surface Flinger按照目标刷新率,控制视频播放界面的显示。
示例性的,步骤S4219的执行过程为:Surface Flinger按照目标刷新率对应的Vsync信号的节奏,触发视频应用对视频播放界面的窗口对应的图层进行绘制渲染,视频应用则按照目标刷新率对应的Vsync信号的节奏,调用绘制渲染模块对视频播放界面的窗口对应的图层进行绘制渲染,进而绘制渲染模块得到绘制渲染后的视频播放界面的图像数据,将绘制渲染后的视频播放界面的图像数据发送至Surface Flinger,由SurfaceFlinger按照目标刷新率对应的Vsync信号的节奏合成图层并送显,进而实现在显示屏上按照目标刷新率刷新视频播放界面。
步骤S4219的执行过程和原理可以参考前述图4a中的步骤S4110至步骤S4113的描述,区别点在于执行图4a中的步骤S4110至步骤S4113时,是按照视频应用对应的预设刷新率,刷新显示视频应用界面,而步骤S4219中,则是按照根据弹幕场景所确定出的目标刷新率,刷新显示视频播放界面,此处对于步骤S4219不再赘述。
执行完步骤S4219之后,电子设备的显示屏当前的目标刷新率能够满足弹幕场景需求的刷新率。
举例说明,如图4c的(1)所示,用户点击视频1之后,手机通过前述的步骤S4201至步骤S4211确定出了当前为视频播放场景,此时手机显示出的画面变为了图4c的(2),显示了视频1的播放界面,由于此时手机在执行步骤S4212的过程中,仍在确定是否在预设时长内接收到视频应用进行弹幕绘制的信息,因此手机实际的刷新率还未变更,仍为视频应用对应的预设刷新率60HZ。继续参阅图4c的(2),此时用户在预设时长内点击弹幕开关,开启弹幕,触发手机执行步骤S4213至步骤S4219,即在预设时长内接收到弹幕绘制信息,确定出了弹幕场景,并根据弹幕场景确定出的目标刷新率为40HZ,切换刷新率,进而手机显示画面变化为图4c的(3)。如图4c的(3)所示,视频播放界面上出现了弹幕,且刷新率由原本的(2)示出的60HZ,切换成了弹幕场景下的刷新率40HZ,以40HZ的刷新率刷新画面,满足弹幕场景下的需求。在另一些实施例中,若弹幕场景确定出的目标刷新率为60HZ,与视频应用对应的预设刷新率一致,那么从图4c的(2)界面点击弹幕开关开启弹幕之后,触发执行步骤S4213至步骤S4219,确定出弹幕场景之后,可以不切换刷新率,进而手机显示画面变化为图4c的(3),开始显示弹幕之后,会继续按照原本的60HZ的刷新率刷新显示画面。
由于本申请实施例中,Surface Flinger能够根据绘制渲染模块发送的视频应用进行弹幕绘制的信息,确定出视频应用处于弹幕场景,进而能够在视频应用处于弹幕场景时,通过向帧率决策模块发送弹幕信息,以使得帧率决策模块重新调整目标刷新率,弹幕场景所确定出的目标刷新率能够满足电子设备的性能需求,既能够满足视频播放过程中显示弹幕的需求,又不会造成实际刷新率远高于实际需求刷新率,浪费电量的情况。
S4220、Surface Flinger确定出在预设时长内未接收到视频应用进行弹幕绘制的信息。
执行完步骤S4219之后,Surface Flinger一直按照弹幕场景信息所确定出的目标刷新率,刷新显示屏。但在执行步骤S4219的过程中,Surface Flinger也重复执行步骤S4212,即通过确定预设时长内是否接收到视频应用进行弹幕绘制的信息来确定当前是否仍处于弹幕场景。
当Surface Flinger确定出在预设时长内未接收到视频应用进行弹幕绘制的信息,即也可以理解为是超过预设时长均未接收到视频应用进行弹幕绘制的信息时,SurfaceFlinger确定出视频应用不再处于弹幕场景,而是变更为了视频播放场景,因此需执行步骤S4221,通知帧率决策模块当前的场景变更为了视频播放场景。
示例性的,若用户关闭弹幕或者视频播放过程中不再有需要显示的弹幕等一系列不再需要绘制弹幕的情况时,Surface Flinger会连续多帧都未接收到视频应用进行弹幕绘制的信息,因此连续多帧都不会执行步骤S4213至步骤S4214,当Surface Flinger超过预设时长都未接收到视频应用进行弹幕绘制的信息时,就说明视频应用不再处于弹幕场景,而此时在前述的步骤S4211的判断下仍然处于视频播放场景中,因此会确定出当前仅为视频播放场景,但不处于弹幕场景。
由于Surface Flinger确定出的场景由弹幕场景需要变更为视频播放场景,场景信息发生了变更,因此可以执行步骤S4221,重新发送携带有视频播放场景的切换刷新率信息至帧率决策模块,帧率决策模块重新根据视频播放场景,确定目标刷新率,以使得电子设备的显示屏按照视频播放场景下的刷新率刷新画面。
S4221、Surface Flinger发送视频播放场景信息至帧率决策模块。
在通过前述的步骤S4212中确定出了只处于视频播放场景不处于弹幕场景的情况下,或者是通过步骤S4220确定出视频应用从原本的弹幕场景变为了视频播放场景的情况下,Surface Flinger通过将视频播放场景信息发送至帧率决策模块的方式,通知帧率决策模块当前的场景为视频播放场景,以使得帧率决策模块可根据视频播放场景信息重新设置目标刷新率。
其中,视频播放场景信息用于说明当前为视频播放场景。Surface Flinger将视频播放场景信息发送至帧率决策模块,以通知帧率决策模块当前为视频播放场景,因此需要帧率决策模块重新设置一个适用于视频播放场景的目标刷新率。其中,视频播放场景信息的具体表现形式本申请实施例不作限制,例如可以使用特定符号或特定字段来表示。
示例性的,在本实施例中,视频播放场景信息也可以理解为是用于表示播放视频但不显示弹幕的场景的信息。
S4222、帧率决策模块根据视频播放场景信息和视频源帧率,确定出目标刷新率。
帧率决策模块接收到视频播放场景信息后,可确定出当前处于视频播放场景。示例性的,在视频播放场景下,帧率决策模块可以根据视频源帧率确定目标刷新率。例如可以将目标刷新率设置为视频源帧率。又例如,可以是根据视频源帧率,使用视频播放场景下的刷新率计算规则,计算出目标刷新率。
在另一些实施例中,若步骤S4207还发送了视频分辨率等除了视频源帧率之外的其他视频源信息,则还可以结合其他的视频源信息确定目标刷新率。本实施例对于根据视频源帧率确定出目标刷新率的具体过程不作限制。
由于视频源帧率能够说明当前需播放的视频对刷新率的需求,因此在视频播放场景下使用视频源帧率来确定出的目标刷新率,可以满足当前视频播放场景的需求。
在另一些实施例中,还可以仅根据视频播放场景信息,确定出目标刷新率。示例性的,可以是预先存储了视频播放场景对应的预设刷新率,当接收到视频播放场景信息时,帧率决策模块则将目标刷新率设置为视频播放场景对应的预设刷新率。例如,视频播放场景对应的预设刷新率48HZ,而视频应用对应的预设刷新率为60HZ,则帧率决策模块在执行步骤S4222的过程中,会将目标刷新率从原本的60HZ,调整为48HZ。
S4223、帧率决策模块将目标刷新率发送至Surface Flinger。
步骤S4223的执行过程和原理可以参考前述提及的步骤S4218,区别点主要在于步骤S4218确定出的目标刷新率与弹幕场景相关,而步骤S4223确定出的刷新率与视频播放场景相关。
S4224、Surface Flinger按照目标刷新率,控制视频播放界面的显示。
其中,步骤S4224的执行过程和原理可以参考前述对步骤S4219的描述,主要区别点在于步骤S4219中的目标刷新率根据弹幕场景确定,而步骤S4224的目标刷新率根据视频播放场景确定,此处不再赘述。
由于本申请实施例中,Surface Flinger能够根据视频播放界面对应的图层信息,确定出视频应用是否处于视频播放场景,进而能够在视频应用处于视频播放场景且不处于弹幕场景时,通过向帧率决策模块发送视频播放场景信息,以使得帧率决策模块重新根据视频播放场景信息确定目标刷新率,根据视频播放场景所确定出的目标刷新率能够满足电子设备播放视频时的性能需求,即既能够满足视频播放场景下的显示流畅度需求,又不会出现目标刷新率高于实际需求刷新率,导致浪费电量的情况。
举例说明,如图4c示出的(3)所示,用户点击弹幕开关,将弹幕开关从开启状态变为关闭状态,进而触发执行步骤S4220至步骤S4224,确定出不处于弹幕场景,而处于视频播放场景,进而显示界面变化成图4c的(4),即视频播放界面上不再有弹幕,刷新率也切换成了视频播放场景下的刷新率24HZ。
由前述步骤S4211至步骤S4224可知,本申请中Surface Flinger根据确定出的场景,向帧率决策模块发送场景信息,进而帧率决策模块根据场景信息确定出目标刷新率,将确定出的目标刷新率发送至Surface Flinger,由Surface Flinger按照目标刷新率控制显示屏刷新显示画面。其中,场景可以包括:弹幕场景,视频播放场景,或者非视频播放场景(例如只显示视频应用主界面的场景)。
在一些实施例中,为了节省功耗,Surface Flinger可以仅在确定出的场景信息发生变化时,发送场景信息至帧率决策模块,由帧率决策模块根据场景信息确定出目标刷新率,再发送确定出的目标刷新率至Surface Flinger,由Surface Flinger按照目标刷新率控制显示屏刷新显示画面。示例性的场景信息发生变化,可以是弹幕场景变化为视频播放场景、视频播放场景变化为弹幕场景、视频播放场景变为退出视频播放场景等。
示例性的,视频播放场景变为退出视频播放场景的过程为:若视频应用不进行视频播放时,则Surface Flinger会检测到步骤S4209中的图层销毁,进而Surface Flinger会确定出不处于视频播放场景,此时确定出的场景信息再次发生变更,因此可以再次发送携带有不处于视频播放场景信息的帧率切换信息至帧率决策模块,帧率决策模块即可再次调整目标刷新率,例如将目标刷新率设置为视频应用对应的预设刷新率。
举例说明,如图4c的(4)所示,用户点击“←”图标,选择退出视频1的播放界面,此时手机中的Surface Flinger会确定出不处于视频播放场景,再次切换刷新率,显示界面变化为图4c的(5),重新回到了视频播放主界面,使用视频应用对应的预设刷新率60HZ进行画面刷新。
需要说明的是,图4a和图4b中所提及的Launcher、视频应用、绘制渲染模块、AMS、WMS、Media Codec、帧率决策模块以及Surface Flinger的功能和技术原理的描述可以参考图3示出的相关内容。
由于本申请实施例中,Surface Flinger可以根据图层信息以及视频应用进行弹幕绘制的信息,确定视频应用的场景,进而使用根据场景信息所确定出的目标刷新率,刷新显示画面,以实现在满足当前场景的显示流畅性需求的同时,能够节省功耗,避免出现电量浪费,GPU负载过重的情况。
参阅图4d,图4d为本申请另一实施例提出的刷新率的设置方法中任意一个视频应用的视频播放阶段流程的示意图,应用于本申请实施例提出的电子设备,图4d示出的流程可在图4a示出的流程执行完成,显示出视频应用的视频应用主界面之后再开始执行,此时电子设备的前端仅显示有一个视频应用的视频应用主界面,具体的视频播放阶段流程包括以下步骤:
S4301、视频应用响应于用户播放视频的操作,下发启动视频播放Activity的请求至AMS。
其中,步骤S4301的执行过程和原理可以参考前述图4b示出的步骤S4201,此处不再赘述。
S4302、AMS启动视频播放Activity。
其中,步骤S4302的执行过程和原理可以参考前述图4b示出的步骤S4202,此处不再赘述。
S4303、AMS发送视频播放界面对应的窗口信息至WMS。
其中,步骤S4303的执行过程和原理可以参考前述图4b示出的步骤S4203,此处不再赘述。
S4304、WMS根据视频播放界面对应的窗口信息,创建视频播放界面的窗口。
其中,步骤S4304的执行过程和原理可以参考前述图4b示出的步骤S4204,此处不再赘述。
S4305、WMS发送窗口创建完成的信息至视频应用。
其中,步骤S4305的执行过程和原理可以参考前述图4b示出的步骤S4205,此处不再赘述。
S4306、视频应用调用Media Codec进行视频解码。
其中,步骤S4306的执行过程和原理可以参考前述图4b示出的步骤S4206,此处不再赘述。
S4307、Media Codec将视频源帧率和被调用的信息发送给帧率决策模块。
其中,视频源帧率指的是用户所需播放的视频的视频源帧率。由于步骤S4306中,Media Codec在视频应用的调用下,对用户所需播放的视频进行了视频解码,因此MediaCodec通过用户所需播放的视频的视频源,获取该视频的视频源帧率。在另一些实施例中,Media Codec还可以获取视频的分辨率等视频源的信息。
被调用的信息用于说明MediaCodec被调用。在一些实施例中,被调用的信息中可以携带有视频应用的包名,以说明MediaCodec是被视频应用调用的。具体的由于步骤S4306中,Media Codec在视频应用的调用下进行了视频解码,因此MediaCodec在视频应用调用时,可得到视频应用的包名,进而可以在被调用的信息中携带视频应用的包名。
在另一些实施例中,被调用的信息中也可以不携带有视频应用的包名。由于图4c示出的场景中前端仅显示单个视频应用的界面,因此被调用的信息中也可不说明调用Media Codec的应用。
S4308、帧率决策模块将被调用的信息发送给Surface Flinger。
其中,被调用的信息用于说明Media Codec被调用。在另一些实施例中,帧率决策模块还可以将视频源帧率、视频分辨率等视频源信息发送给Surface Flinger。
S4309、WMS将视频播放界面的窗口对应的图层信息发送至Surface Flinger。
其中,步骤S4309的执行过程和原理可以参考前述图4b示出的步骤S4208,此处不再赘述。
S4310、Surface Flinger根据视频播放界面的窗口对应的图层信息,创建视频播放界面的窗口对应的图层。
示例性的,在执行步骤S4310之后,Surface Flinger则按照视频应用对应的预设刷新率所对应的Vsync信号节奏,触发视频应用对视频播放界面的窗口对应的图层进行绘制渲染,然后视频应用按照预设刷新率对应的Vsync信号节奏,调用绘制渲染模块对视频播放界面的窗口对应的图层进行绘制渲染,绘制渲染模块按照预设刷新率所对应的Vsync信号节奏,发送绘制渲染后的视频播放界面的图像数据至Surface Flinger,SurfaceFlinger即可按照视频应用对应的预设刷新率,使用绘制渲染后的视频播放界面的图像数据进行图层合成,并将合成后的视频播放界面的图像数据送显,实现令显示屏按照视频应用对应的预设刷新率刷新视频播放界面。具体可以参阅图4a示出的步骤S4110至步骤S4113的相关内容,区别点在于显示的界面不同。
其中,步骤S4310的执行过程和原理可以参考前述图4b示出的步骤S4209,此处不再赘述。
S4311、Surface Flinger根据图层信息中的包名,确定出视频应用是否在播放白名单中。
若步骤S4311确定出视频应用在播放白名单中,则执行步骤S4312,若确定出视频应用不在播放白名单,则结束流程。
其中,步骤S4311的执行过程和原理可以参考前述图4b示出的步骤S4210,此处不再赘述。
S4312、Surface Flinger根据视频播放界面的窗口对应的图层信息,确定是否为视频播放场景。
若步骤S4312确定出为视频播放场景,则执行步骤S4313,若确定出不为视频播放场景,则结束流程,继续按照视频应用对应的预设刷新率刷新显示画面。
其中,步骤S4312的执行过程和原理可以参考前述图4b示出的步骤S4211,此处不再赘述。
S4313、Surface Flinger根据被调用的信息,确定出视频应用调用了MediaCodec。
由于步骤S4308中,Surface Flinger接收到了被调用的信息,该被调用的信息能够说明Media Codec被调用,进一步验证了当前具有视频播放需求,因此视频应用才会调用Media Codec进行视频解码。又结合步骤S4312中确定出当前为视频播放场景,SurfaceFlinger通过步骤S4313再次验证了当前为视频播放场景,进而可进一步执行步骤S4314,以确定当前是否为视频播放场景下的弹幕场景。
在一些实施例中,若Surface Flinger未接收到被调用的信息,即无法确定出视频应用调用了Media Codec,不能够验证当前是否为视频播放场景,因此可以结束流程,不执行后续的步骤S4314。
在另一些实施例中,步骤S4313确定出视频应用调用了Media Codec,验证了当前为视频播放场景之后,在执行步骤S4314之前,还可以直接发送视频播放场景信息至帧率决策模块,由帧率决策模块根据视频播放场景信息以及视频源帧率,确定出目标刷新率,然后将目标刷新率发送至Surface Flinger,由Surface Flinger按照目标刷新率控制视频播放界面的显示,具体过程和执行原理可以参考后续对步骤S4323至步骤S4326,此处不再赘述。Surface Flinger控制显示屏按照视频播放场景信息所确定出的目标刷新率刷新显示画面之后,再执行步骤S4314,若确定出在预设时长内未接收到视频应用进行弹幕绘制的信息,则可以直接结束流程,不需要再次执行步骤S4323至步骤S4326。
本申请实施例中,Surface Flinger通过被调用的信息辅助验证视频应用处于视频播放场景,提高了视频播放场景的识别准确性。
S4314、Surface Flinger确定预设时长内是否接收到视频应用进行弹幕绘制的信息。
其中,步骤S4314的执行过程和原理可以参考前述图4b示出的步骤S4212,此处不再赘述。
S4315、视频应用按照Vsync信号的节奏,调用绘制渲染模块绘制弹幕。
其中,步骤S4315的执行过程和原理可以参考前述图4b示出的步骤S4213,此处不再赘述。
S4316、绘制渲染模块按照Vsync信号的节奏,发送视频应用进行弹幕绘制的信息至Surface Flinger。
其中,步骤S4316的执行过程和原理可以参考前述图4b示出的步骤S4214,此处不再赘述。
S4317、Surface Flinger确定为弹幕场景。
其中,步骤S4317的执行过程和原理可以参考前述图4b示出的步骤S4215,此处不再赘述。
S4318、Surface Flinger发送弹幕场景信息至帧率决策模块。
在另一些实施例中,若步骤S4309中Surface Flinger还接收到了视频源帧率、视频分辨率等视频源信息,则执行步骤S4318时还可以将视频源信息发送给帧率决策模块。
其中,步骤S4318的执行过程和原理可以参考前述图4b示出的步骤S4216,此处不再赘述。
S4319、帧率决策模块根据弹幕场景信息,确定出目标刷新率。
其中,步骤S4319的执行过程和原理可以参考前述图4b示出的步骤S4217,此处不再赘述。
S4320、帧率决策模块将目标刷新率发送至Surface Flinger。
其中,步骤S4320的执行过程和原理可以参考前述图4b示出的步骤S4218,此处不再赘述。
S4321、Surface Flinger按照目标刷新率,控制视频播放界面的显示。
其中,步骤S4321的执行过程和原理可以参考前述图4b示出的步骤S4219,此处不再赘述。
S4322、Surface Flinger确定出在预设时长内未接收到视频应用进行弹幕绘制的信息。
其中,步骤S4322的执行过程和原理可以参考前述图4b示出的步骤S4220,此处不再赘述。
S4323、Surface Flinger发送视频播放场景信息至帧率决策模块。
其中,步骤S4323的执行过程和原理可以参考前述图4b示出的步骤S4221,此处不再赘述。
S4324、帧率决策模块根据视频播放场景信息和视频源帧率,确定出目标刷新率。
其中,步骤S4324的执行过程和原理可以参考前述图4b示出的步骤S4222,此处不再赘述。
S4325、帧率决策模块将目标刷新率发送至Surface Flinger。
其中,步骤S4325的执行过程和原理可以参考前述图4b示出的步骤S4223,此处不再赘述。
S4326、Surface Flinger按照目标刷新率,控制视频播放界面的显示。
其中,步骤S4326的执行过程和原理可以参考前述图4b示出的步骤S4224,此处不再赘述。
需要说明的是,图4d中所提及的视频应用、绘制渲染模块、AMS、WMS、Media Codec、帧率决策模块以及Surface Flinger的功能和技术原理的描述可以参考图3示出的相关内容。
为了描述方案更为简洁,本申请实施例中的视频应用简称为应用,本申请中使用第一刷新率指代应用对应的预设刷新率,使用第二刷新率指代帧率决策模块在弹幕场景下所确定出的刷新率,使用第三刷新率指代帧率决策模块在视频播放场景下所确定出的刷新率。本申请实施例中提及的视频播放界面、应用主界面等应用输出在显示屏上的界面,统称为应用的应用界面。而本申请实施例所提及的视频播放界面的窗口对应的图层,也简称为视频播放界面的图层,应用主界面的窗口对应的图层也简称为应用主界面的图层。
由前述图4a、图4b以及图4d的描述可知,本申请实施例的图4a示出的步骤S4101至步骤S4113中,电子设备在响应于接收用户启动应用的操作者之后,按照第一刷新率刷新显示应用的应用界面。其中,第一刷新率可以为应用对应的预设刷新率。而实现响应于接收用户启动应用的操作者,按照第一刷新率刷新显示应用的应用界面的方式有很多,包括但不限于本申请实施例所提出的内容。
参阅图4b示出的步骤S4201至步骤S4209的描述,以及图4d示出的步骤S4301至步骤S4310的描述可知,电子设备响应于接收用户播放视频的操作,按照第一刷新率显示视频播放界面,视频播放界面用于显示用户播放视频的视频画面。其中。实现响应于接收用户播放视频的操作,按照第一刷新率显示视频播放界面的方式有很多,包括但不限于本申请实施例所提出的内容。
继续参阅图4b的步骤S4210至步骤S4224、以及参阅图4d的S4311至S4326可知,本申请实施例中,在显示用户播放视频的视频画面的过程中,通过确定预设时长内是否进行弹幕绘制的方式,调整刷新率。具体的,若在预设时长内进行弹幕绘制,则认为当前为弹幕场景,按照第二刷新率刷新显示应用的应用界面。若在预设时长内未进行弹幕绘制,则认为是视频播放场景,按照第三刷新率刷新显示应用的应用界面。第三刷新率与第二刷新率不同,第三刷新率为视频播放场景下所使用的刷新率,第二刷新率为弹幕场景下的刷新率。通过在显示视频画面的过程中,不断确定预设时长内是否进行弹幕绘制的方式,可以识别出当前为视频播放场景还是弹幕场景,进而能够按照满足当前场景需求的刷新率,去刷新应用界面。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本实施例所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (24)

1.一种刷新率的设置方法,其特征在于,应用于电子设备,所述电子设备安装有应用,所述方法包括:
响应于接收用户启动所述应用的操作;
按照第一刷新率刷新显示所述应用的应用界面;
响应于接收用户播放视频的操作;
按照所述第一刷新率显示视频画面;
在显示所述视频画面的过程中,确定预设时长内是否进行弹幕绘制;
若在预设时长内进行弹幕绘制,则按照第二刷新率刷新显示所述应用的应用界面;
若在预设时长内未进行弹幕绘制,则按照第三刷新率刷新显示所述应用的应用界面,所述第三刷新率与所述第二刷新率不同。
2.根据权利要求1所述的方法,其特征在于,所述确定预设时长内是否进行弹幕绘制之前,所述方法还包括:
根据所述应用界面的图层信息,确定是否为视频播放场景;视频播放场景为播放视频的场景;
所述确定预设时长内是否进行弹幕绘制,包括:
若确定为视频播放场景,则确定预设时长内是否进行弹幕绘制。
3.根据权利要求2所述的方法,其特征在于,所述确定预设时长内是否进行弹幕绘制之前,所述方法还包括:
确定是否对所述视频进行解码;
所述若确定为视频播放场景,则确定预设时长内是否进行弹幕绘制,包括:
若确定为视频播放场景且确定出对所述视频进行解码,则确定预设时长内是否进行弹幕绘制。
4.根据权利要求2或3所述的方法,其特征在于,所述根据所述应用界面的图层信息,确定是否为视频播放场景之前,还包括:
确定所述应用是否在播放白名单中;所述播放白名单为具有视频播放权限的应用名单;
所述根据所述应用界面的图层信息,确定是否为视频播放场景,包括:
若确定出所述应用在所述播放白名单中,则根据所述应用界面的图层信息,确定是否为视频播放场景。
5.根据权利要求4所述的方法,其特征在于,所述确定所述应用是否在播放白名单中,包括:
根据所述应用界面的图层信息中携带的应用的包名,确定所述应用是否在播放白名单中;所述播放白名单,包括:每一个具有视频播放权限的应用的包名。
6.根据权利要求2至5任一所述的方法,其特征在于,所述根据所述应用界面的图层信息,确定是否为视频播放场景,包括:
确定所述应用界面的图层信息中是否具有视频图层的特征信息;
若所述应用界面的图层信息中具有视频图层的特征信息,则确定出处于视频播放场景;
若所述应用界面的图层信息中不具有视频图层的特征信息,则确定出不处于视频播放场景。
7.根据权利要求6所述的方法,其特征在于,所述视频图层的特征信息为:图层名中携带的视频图层SurfaceView字段。
8.根据权利要求1至7任一所述的方法,其特征在于,所述第三刷新率根据所述视频的视频源帧率确定。
9.根据权利要求1至8任一所述的方法,其特征在于,还包括:
响应于接收用户退出视频播放的操作;
按照第一刷新率刷新显示所述应用的应用界面。
10.根据权利要求1至9任一所述的方法,其特征在于,所述电子设备的操作系统,包括:所述应用和图像合成器Surface Flinger;所述确定预设时长内是否进行弹幕绘制,包括:
所述Surface Flinger确定预设时长内是否接收到应用进行弹幕绘制的信息。
11.根据权利要求10所述的方法,其特征在于,所述电子设备的操作系统还包括:帧率决策模块;所述若在预设时长内进行弹幕绘制,则按照第二刷新率刷新显示所述应用的应用界面,包括:
所述Surface Flinger若在预设时长内接收到所述应用进行弹幕绘制的信息,则将弹幕场景信息发送至帧率决策模块;弹幕场景为播放所述视频的过程中显示弹幕的场景;
所述帧率决策模块根据所述弹幕场景信息,确定第二刷新率;
所述帧率决策模块将确定出的第二刷新率发送至所述Surface Flinge;
所述Surface Flinge按照所述第二刷新率,控制所述电子设备的显示屏刷新显示所述应用的应用界面。
12.根据权利要求10或11所述的方法,其特征在于,所述电子设备的操作系统还包括:帧率决策模块;所述若在预设时长内未进行弹幕绘制,则按照第三刷新率刷新显示所述应用的应用界面,包括:
所述Surface Flinger若在预设时长内未接收到所述应用进行弹幕绘制的信息,则将视频播放场景信息发送至所述帧率决策模块;视频播放场景为播放视频的场景;
所述帧率决策模块根据所述视频播放场景信息和视频源帧率,确定第三刷新率;
所述帧率决策模块将确定出的第三刷新率发送至所述Surface Flinge;
所述Surface Flinge按照所述第三刷新率,控制所述电子设备的显示屏刷新显示所述应用的应用界面。
13.根据权利要求11所述的方法,其特征在于,所述电子设备的操作系统,还包括:绘制渲染模块;所述Surface Flinge将弹幕场景信息发送至帧率决策模块之前,还包括:
所述应用调用所述绘制渲染模块绘制弹幕,所述绘制渲染模块将应用进行弹幕绘制的信息发送至Surface Flinger。
14.根据权利要求12所述的方法,其特征在于,所述电子设备的操作系统还包括:编解码器Media Codec;所述响应于接收用户播放视频的操作之后,还包括:
所述应用调用所述Media Codec对所述视频进行解码;
所述Media Codec将所述视频的视频源帧率发送至帧率决策模块。
15.根据权利要求2至7任一所述的方法,其特征在于,所述电子设备的操作系统,包括:Surface Flinge;所述根据所述应用界面的图层信息,确定是否为视频播放场景,包括:
Surface Flinge确定所述应用界面的图层信息中的图层名,是否携带SurfaceView字段;
所述Surface Flinge若确定出所述图层名携带SurfaceView字段,则确定为视频播放场景;
所述Surface Flinge若确定出所述图层名不携带SurfaceView字段,则确定不为视频播放场景。
16.根据权利要求1至15任一所述的方法,其特征在于,所述电子设备的操作系统,包括:所述应用、Surface Flinge以及绘制渲模块;所述按照所述第一刷新率显示视频画面,包括:
所述Surface Flinge按照所述第一刷新率对应的Vsync信号节奏,触发所述应用对视频播放界面的图层进行绘制渲染;所述视频播放界面为用于显示视频画面的应用界面;
所述应用按照所述第一刷新率对应的Vsync信号节奏,调用绘制渲染模块对所述视频播放界面的图层进行绘制渲染;
所述绘制渲染模块按照所述第一刷新率对应的Vsync信号节奏,发送绘制渲染后的视频播放界面图像数据至所述Surface Flinge;
所述Surface Flinge按照所述第一刷新率对应的Vsync信号节奏,使用所述绘制渲染后的视频播放界面图像数据进行图层合成;
所述Surface Flinge按照所述第一刷新率对应的Vsync信号节奏,将合成后的视频播放界面图像数据输出至显示屏显示。
17.根据权利要求16所述的方法,其特征在于,所述电子设备的操作系统还包括:AMS和窗口管理模块WMS;所述Surface Flinge按照所述第一刷新率对应的Vsync信号节奏,触发所述应用对所述视频播放界面的图层进行绘制渲染之前还包括:
所述应用发送启动视频播放Activity的请求至所述AMS;所述启动视频播放Activity的请求中携带有所述应用的包名和视频播放界面名;
所述AMS根据所述应用的包名和所述视频播放界面名,启动视频播放Activity;
所述AMS发送所述视频播放界面对应的窗口信息至所述WMS;
所述WMS根据所述视频播放界面对应的窗口信息,创建所述视频播放界面的窗口;
所述WMS发送所述视频播放界面的图层信息至所述Surface Flinge;所述图层信息中携带有所述应用的包名;所述视频播放界面的图层信息与所述视频播放界面的窗口对应;
所述Surface Flinge根据所述视频播放界面的图层信息,创建所述视频播放界面的图层。
18.根据权利要求3所述的方法,其特征在于,所述电子设备的操作系统,包括:所述应用、Surface Flinge以及Media Codec;所述确定是否对所述视频进行解码,包括:
所述Surface Flinge若接收到被调用的信息,则确定出所述应用调用Media Codec对所述视频进行解码;所述被调用的信息用于说明所述Media Codec被调用;
所述Surface Flinge若未接收到被调用的信息,则确定出所述应用未调用MediaCodec对所述视频进行解码。
19.根据权利要求18所述的方法,其特征在于,若所述Surface Flinge接收到所述被调用的信息,则所述Surface Flinge接收到所述被调用的信息之前还包括:
所述应用调用所述Media Codec对所述视频进行解码;
所述Media Codec发送被调用的信息至所述Surface Flinge。
20.根据权利要求19所述的方法,其特征在于,所述应用调用所述Media Codec对所述视频进行解码之前,还包括:
所述WMS发送所述视频播放界面的窗口创建完成的信息至所述应用。
21.根据权利要求4所述的方法,其特征在于,所述确定所述应用是否在播放白名单中,包括:
所述Surface Flinge根据应用界面的图层信息中携带的应用的包名,确定所述应用是否在播放白名单中;所述播放白名单,包括:每一个具有视频播放权限的应用的包名。
22.根据权利要求1至21任一所述的方法,其特征在于,所述电子设备的操作系统,包括:应用、Surface Flinge、帧率决策模块以及绘制渲染模块;所述按照第一刷新率刷新显示所述应用的应用界面,包括:
所述Surface Flinge按照第一刷新率对应的Vsync信号节奏,触发所述应用对应用主界面的图层进行绘制渲染;所述应用主界面为所述应用启动之后显示的应用界面;
所述应用按照所述第一刷新率对应的Vsync信号节奏,调用绘制渲染模块对所述应用主界面的图层进行绘制渲染;
所述绘制渲染模块按照所述第一刷新率对应的Vsync信号节奏,发送绘制渲染后的应用主界面图像数据至所述Surface Flinge;
所述Surface Flinge按照所述第一刷新率对应的Vsync信号节奏,使用所述绘制渲染后的应用主界面图像数据进行图层合成;
所述Surface Flinge按照所述第一刷新率对应的Vsync信号节奏,将合成后的应用主界面图像数据输出至显示屏显示。
23.根据权利要22所述的方法,其特征在于,所述电子设备的操作系统还包括:桌面启动器Launcher、AMS以及WMS;所述所述Surface Flinge按照第一刷新率对应的Vsync信号节奏,触发所述应用对应用主界面的图层进行绘制渲染之前,还包括:
所述Launcher发送启动应用Activity的请求至AMS;所述启动应用Activity的请求中携带有所述应用的包名;
所述AMS启动应用Activity;
所述AMS向WMS发送应用主界面对应的窗口信息;所述窗口信息中携带有应用的包名;
所述WMS根据所述应用主界面对应的窗口信息,创建所述应用主界面的窗口,并发送所述应用的包名至所述帧率决策模块;
所述WMS发送应用主界面的图层信息至所述Surface Flinge;所述应用主界面的图层信息与所述应用主界面的窗口对应;
所述帧率决策模块根据所述应用的包名,确定出第一刷新率;所述第一刷新率为所述应用对应的预设刷新率;
所述Surface Flinge根据所述应用主界面的图层信息,创建所述应用主界面的图层。
24.一种电子设备,其特征在于,包括:一个或多个处理器、存储器以及显示屏;
所述存储器、所述显示屏分别与所述一个或多个处理器耦合;
所述显示屏用于显示应用界面;
所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述一个或多个处理器执行所述计算机指令时,所述电子设备执行如权利要求1至23中任一项所述的刷新率的设置方法。
CN202111545011.4A 2021-12-16 2021-12-16 刷新率的设置方法及相关设备 Pending CN114245208A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202111545011.4A CN114245208A (zh) 2021-12-16 2021-12-16 刷新率的设置方法及相关设备
EP22879669.4A EP4224873A4 (en) 2021-12-16 2022-08-29 METHOD FOR ADJUSTING REFRESH FREQUENCY AND ASSOCIATED DEVICE
US18/035,376 US20240348869A1 (en) 2021-12-16 2022-08-29 Refresh rate setting method and related device
PCT/CN2022/115418 WO2023109185A1 (zh) 2021-12-16 2022-08-29 刷新率的设置方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111545011.4A CN114245208A (zh) 2021-12-16 2021-12-16 刷新率的设置方法及相关设备

Publications (1)

Publication Number Publication Date
CN114245208A true CN114245208A (zh) 2022-03-25

Family

ID=80757234

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111545011.4A Pending CN114245208A (zh) 2021-12-16 2021-12-16 刷新率的设置方法及相关设备

Country Status (4)

Country Link
US (1) US20240348869A1 (zh)
EP (1) EP4224873A4 (zh)
CN (1) CN114245208A (zh)
WO (1) WO2023109185A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116095382A (zh) * 2022-06-02 2023-05-09 荣耀终端有限公司 弹幕识别方法和相关装置
WO2023109185A1 (zh) * 2021-12-16 2023-06-22 荣耀终端有限公司 刷新率的设置方法及相关设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104731543A (zh) * 2015-03-23 2015-06-24 深圳市欧珀通信软件有限公司 一种屏幕刷新率的显示方法和装置
CN106933526A (zh) * 2017-03-10 2017-07-07 广东欧珀移动通信有限公司 一种动态调节屏幕刷新率的方法、装置及移动终端
US20210248957A1 (en) * 2020-02-10 2021-08-12 Samsung Electronics Co., Ltd. Electronic device including display and method for operating the same
WO2021175213A1 (zh) * 2020-03-06 2021-09-10 华为技术有限公司 刷新率切换方法和电子设备
CN113438552A (zh) * 2021-05-19 2021-09-24 荣耀终端有限公司 一种刷新率调整方法和电子设备
CN113766324A (zh) * 2020-06-02 2021-12-07 深圳市万普拉斯科技有限公司 视频播放的控制方法、装置、计算机设备和存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109120988B (zh) * 2018-08-23 2020-07-24 Oppo广东移动通信有限公司 解码方法、装置、电子设备以及存储介质
CN111767013A (zh) * 2020-06-01 2020-10-13 Oppo(重庆)智能科技有限公司 控制方法、控制装置、电子装置、计算机可读存储介质
CN112667340A (zh) * 2020-12-31 2021-04-16 努比亚技术有限公司 屏幕刷新控制方法、移动终端及计算机可读存储介质
CN114245208A (zh) * 2021-12-16 2022-03-25 荣耀终端有限公司 刷新率的设置方法及相关设备
CN114205673A (zh) * 2021-12-16 2022-03-18 荣耀终端有限公司 刷新率的设置方法及相关设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104731543A (zh) * 2015-03-23 2015-06-24 深圳市欧珀通信软件有限公司 一种屏幕刷新率的显示方法和装置
CN106933526A (zh) * 2017-03-10 2017-07-07 广东欧珀移动通信有限公司 一种动态调节屏幕刷新率的方法、装置及移动终端
US20210248957A1 (en) * 2020-02-10 2021-08-12 Samsung Electronics Co., Ltd. Electronic device including display and method for operating the same
WO2021175213A1 (zh) * 2020-03-06 2021-09-10 华为技术有限公司 刷新率切换方法和电子设备
CN113766324A (zh) * 2020-06-02 2021-12-07 深圳市万普拉斯科技有限公司 视频播放的控制方法、装置、计算机设备和存储介质
CN113438552A (zh) * 2021-05-19 2021-09-24 荣耀终端有限公司 一种刷新率调整方法和电子设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023109185A1 (zh) * 2021-12-16 2023-06-22 荣耀终端有限公司 刷新率的设置方法及相关设备
CN116095382A (zh) * 2022-06-02 2023-05-09 荣耀终端有限公司 弹幕识别方法和相关装置
CN116095382B (zh) * 2022-06-02 2023-10-31 荣耀终端有限公司 弹幕识别方法和相关装置
CN117896590A (zh) * 2022-06-02 2024-04-16 荣耀终端有限公司 弹幕识别方法和相关装置

Also Published As

Publication number Publication date
WO2023109185A1 (zh) 2023-06-22
EP4224873A1 (en) 2023-08-09
US20240348869A1 (en) 2024-10-17
EP4224873A4 (en) 2024-04-10

Similar Documents

Publication Publication Date Title
CN114205673A (zh) 刷新率的设置方法及相关设备
CN116501210B (zh) 一种显示方法、电子设备及存储介质
WO2023109185A1 (zh) 刷新率的设置方法及相关设备
CN114661263B (zh) 一种显示方法、电子设备及存储介质
CN115631258B (zh) 一种图像处理方法及电子设备
CN114648951B (zh) 控制屏幕刷新率动态变化的方法及电子设备
US8713472B2 (en) Display apparatus, a method for a display control, and program
CN109254849B (zh) 应用程序的运行方法及装置
CN113760080B (zh) 显示方法、装置及存储介质
CN103049257A (zh) 一种开机显示动画的方法及电子设备
JP2024515462A (ja) アプリケーションによる描画操作を実行する方法及び電子装置
CN116774809A (zh) 调整频率的方法、装置、电子设备及可读存储介质
CN116028149B (zh) 窗口渲染方法、系统、设备、存储介质和计算机程序产品
CN117711356B (zh) 一种屏幕刷新率切换方法及电子设备
CN115640083A (zh) 一种可提升动效性能的屏幕刷新方法及设备
CN113096054A (zh) 图像帧合成方法、装置及存储介质
CN116055738B (zh) 视频压缩方法及电子设备
CN117707406B (zh) 一种亮屏显示方法、电子设备及存储介质
CN116055715B (zh) 编解码器的调度方法及电子设备
US20240357201A1 (en) Refresh rate setting method and related device
CN116389898B (zh) 图像处理方法、设备及存储介质
CN116089320B (zh) 垃圾回收方法和相关装置
CN117742835A (zh) 一种请求vSync信号的方法及电子设备
CN112529823B (zh) 一种图像处理方法、装置及设备
CN117707406A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40071413

Country of ref document: HK