CN116781954A - 一种信号源显示方法及显示设备 - Google Patents
一种信号源显示方法及显示设备 Download PDFInfo
- Publication number
- CN116781954A CN116781954A CN202310800783.0A CN202310800783A CN116781954A CN 116781954 A CN116781954 A CN 116781954A CN 202310800783 A CN202310800783 A CN 202310800783A CN 116781954 A CN116781954 A CN 116781954A
- Authority
- CN
- China
- Prior art keywords
- signal source
- screen
- list
- application
- throwing
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 230000004044 response Effects 0.000 claims description 18
- 230000001960 triggered effect Effects 0.000 claims description 3
- 230000008859 change Effects 0.000 abstract description 65
- 238000007726 management method Methods 0.000 description 285
- 238000013523 data management Methods 0.000 description 173
- 238000005266 casting Methods 0.000 description 68
- 238000010586 diagram Methods 0.000 description 55
- 238000012545 processing Methods 0.000 description 42
- 230000000694 effects Effects 0.000 description 34
- 230000003993 interaction Effects 0.000 description 24
- 230000006870 function Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 6
- 238000007667 floating Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 238000002360 preparation method Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000003825 pressing Methods 0.000 description 3
- 239000002131 composite material Substances 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 102100032257 E3 ubiquitin-protein ligase Mdm2 Human genes 0.000 description 1
- 108050002772 E3 ubiquitin-protein ligase Mdm2 Proteins 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/4104—Peripherals receiving signals from specially adapted client devices
- H04N21/4122—Peripherals receiving signals from specially adapted client devices additional display device, e.g. video projector
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation 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/4316—Generation 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 displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
- H04N21/4363—Adapting the video stream to a specific local network, e.g. a Bluetooth® network
- H04N21/43632—Adapting the video stream to a specific local network, e.g. a Bluetooth® network involving a wired protocol, e.g. IEEE 1394
- H04N21/43635—HDMI
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4438—Window management, e.g. event handling following interaction with the user interface
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Business, Economics & Management (AREA)
- Marketing (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本申请实施例公开一种信号源显示方法及显示设备,响应启动第一应用的操作,在应用界面的第一区域显示信号源列表页面;在信号源列表页面控制选择器选中处于可见状态的当前信号源的信号源选项,在第二区域显示当前信号源传输的数据;在与电子设备建立投屏连接或断开连接时,控制第一应用更新信号源列表并匹配目标信号源,在信号源列表中标记目标信号源处于可见状态,标记当前信号源处于不可见状态;根据更新后的信号源列表刷新信号源列表页面,控制选择器选中目标信号源的信号源选项,在第二区域显示目标信号源传输的数据。本申请减少用户查看信号源列表和切换信号源时的手动操作,能根据不同类型信号源的连接状态变化,精准控制应用界面的显示。
Description
技术领域
本申请涉及显示设备技术领域,尤其涉及一种信号源显示方法及显示设备。
背景技术
显示设备可以配置HDMI端口,HDMI端口用于外接信号源设备(例如:机顶盒,电视盒子等),在HDMI端口接入信号源设备后,显示设备可以显示当前信号源的视频信号。显示设备也可以与电子设备建立投屏连接,接收并显示电子设备发送的投屏数据,以实现多终端数据共享。
在显示设备同时接入HDMI信号源和投屏信号源时,用户需要通过遥控器输入操作指令以调出信号源列表,并在信号源列表中查看显示设备当前已接入的信号源,并按照观看需求切换信号源。显示设备在切换信号源后,会关闭信号源列表,这样用户每次切换信号源时都要重新调出信号源列表,操作繁琐,信号源切换效率低。
显示设备响应用户调出信号源列表的操作,查询显示设备配置的至少一个HDMI端口的连接状态(包括已连接状态或未连接状态),以及查询当前已连接的投屏设备,从而刷新并显示信号源列表。在用户下一次调出信号源列表前,显示设备不会更新当前显示的信号源列表,用户无法动态、及时地感知HDMI信号源和投屏信号源的连接状态变化。
发明内容
本申请实施例提供一种信号源显示方法及显示设备,可以根据信号源列表中信号源接口的连接状态变化,以及投屏设备的连接和断开,刷新第一应用的应用界面,使用户通过第一区域显示的信号源列表页面准确获知显示设备已接入的信号源及其类型,并且实现了自适应匹配或切换应用界面显示的目标信号源,使用户可以不手动切换信号源,减少用户操作,从而解决上述背景技术中提出的问题。
第一方面,本申请实施例提供一种显示设备,包括:
显示器,用于显示用户界面;
外部装置接口,包括至少一个信号源接口,所述信号源接口用于连接信号源设备,并接收所述信号源设备传输的视频信号;
通信器,用于与电子设备建立投屏连接;
控制器,用于执行:
响应于启动第一应用的操作,控制所述第一应用启动并显示应用界面;
控制显示器在应用界面的第一区域显示信号源列表页面;所述信号源列表页面是根据所述第一应用获取的信号源列表生成,所述信号源列表包括第一子列表和第二子列表,所述第一子列表包括所述信号源接口的接口信息、连接状态和显示状态,所述第二子列表包括与显示设备已建立投屏连接的电子设备的设备信息和显示状态;所述显示状态包括可见状态和不可见状态;
控制显示器在所述信号源列表页面中控制选择器选中处于可见状态的当前信号源关联的信号源选项,以及在所述应用界面的第二区域显示所述当前信号源传输的数据;
在与电子设备建立投屏连接或断开连接时,控制所述第一应用更新所述信号源列表并匹配目标信号源,以及在所述信号源列表中标记所述目标信号源处于可见状态,标记所述当前信号源处于不可见状态;
控制显示器根据更新后的信号源列表刷新所述信号源列表页面,控制选择器选中所述目标信号源关联的信号源选项,以及在所述第二区域显示所述目标信号源传输的数据。
在一些实施例中,所述控制器控制所述第一应用更新所述信号源列表,包括:在所述第一应用接收到第一投屏设备发送的投屏请求时,控制第一应用获取投屏路数,所述投屏路数用于表征显示设备已连接的电子设备的数量;若所述投屏路数小于预设投屏数量,控制通信器与所述第一投屏设备建立投屏连接;在与所述第一投屏设备连接成功时,控制所述第一应用将所述投屏路数加一,将所述第一投屏设备的设备信息添加到所述第二子列表,以及设置所述第一投屏设备在所述第二子列表中的索引序号。
在一些实施例中,所述控制器控制所述第一应用更新所述信号源列表,包括:若所述投屏路数不小于预设投屏数量,控制所述第一应用从所述第二子列表中选取第二投屏设备,所述第二投屏设备为在先与显示设备连接的投屏设备中的任一个;控制通信器与所述第二投屏设备断开连接;控制所述第一应用将所述第二投屏设备的设备信息从所述第二子列表中删除,并调整第二子列表中剩余的投屏设备的索引序号;控制通信器与所述第一投屏设备建立投屏连接;在与所述第一投屏设备连接成功时,控制所述第一应用将所述第一投屏设备的设备信息添加到所述第二子列表,以及设置所述第一投屏设备在所述第二子列表中的索引序号。
在一些实施例中,所述控制器控制所述第一应用更新所述信号源列表,包括:在检测到通信器与第三投屏设备断开连接时,控制所述第一应用将所述投屏路数减一,将所述第三投屏设备的设备信息从所述第二子列表中删除,并调整所述第二子列表中剩余的投屏设备的索引序号。
在一些实施例中,所述控制器控制所述第一应用更新所述信号源列表,包括:在第一信号源接口的连接状态发生变化时,控制所述第一应用修改所述第一子列表记录的所述第一信号源接口的连接状态,所述连接状态包括已连接状态和未连接状态。
在一些实施例中,所述控制器匹配目标信号源,包括:将所述第一投屏设备确定为所述目标信号源。
在一些实施例中,所述控制器匹配目标信号源,包括:在所述第一应用将所述第三投屏设备的设备信息从所述第二子列表中删除之后,若所述第二子列表为非空列表,则控制所述第一应用从所述第二子列表剩余的投屏设备中选取所述目标信号源;若所述第二子列表为空列表,则控制所述第一应用从所述第一子列表中选取所述目标信号源。
在一些实施例中,所述信号源列表页面包括投屏帮助控件,则所述控制器还用于执行:在所述第一应用将所述第三投屏设备的设备信息从所述第二子列表中删除之后,若所述第二子列表为空列表,控制选择器选中所述投屏帮助控件,以及,控制显示器在所述第二区域显示投屏帮助页面;所述投屏帮助页面是所述投屏帮助控件被触发或被选择器选中时显示的页面,所述投屏帮助页面用于引导用户执行投屏操作流程;或者,在所述第一应用将所述第三投屏设备的设备信息从所述第二子列表中删除之后,若所述第二子列表为空列表,控制显示器在所述第二区域显示预设界面。
在一些实施例中,所述控制器控制所述第一应用从所述第一子列表中选取所述目标信号源,包括:控制所述第一应用获取已接入信号源集合,所述已接入信号源集合包括所述第一子列表中指示处于已连接状态的信号源;若所述已接入信号源集合为空集,则所述第一应用将所述第一子列表中索引序号最大或最小的信号源确定为所述目标信号源;若所述已接入信号源集合为非空集合,则所述第一应用将所述已接入信号源集合中索引序号最大或最小的信号源确定为所述目标信号源。
第二方面,本申请实施例还提供一种信号源显示方法,包括:
响应于启动第一应用的操作,控制所述第一应用启动并显示应用界面;
在应用界面的第一区域显示信号源列表页面;所述信号源列表页面是根据所述第一应用获取的信号源列表生成,所述信号源列表包括第一子列表和第二子列表,所述第一子列表包括信号源接口的接口信息、连接状态和显示状态,所述第二子列表包括与显示设备已建立投屏连接的电子设备的设备信息和显示状态;所述显示状态包括可见状态和不可见状态;
在所述信号源列表页面中控制选择器选中处于可见状态的当前信号源关联的信号源选项,以及在所述应用界面的第二区域显示所述当前信号源传输的数据;
在与电子设备建立投屏连接或断开连接时,控制所述第一应用更新所述信号源列表并匹配目标信号源,以及在所述信号源列表中标记所述目标信号源处于可见状态,标记所述当前信号源处于不可见状态;
根据更新后的信号源列表刷新所述信号源列表页面,控制选择器选中所述目标信号源关联的信号源选项,以及在所述第二区域显示所述目标信号源传输的数据。
第三方面,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有程序指令,当程序指令在计算机上运行时,使得计算机执行上述各方面及其各个实现方式中涉及的方法。
本申请实施例为解决用户查看和切换信号源时操作效率低的问题,设置第一应用,在启动第一应用后,应用界面可以包括两类显示区域,其中第一区域用于显示信号源列表页面,用户通过查看信号源列表页面,可以清楚了解显示设备具有哪些信号源接口,每种信号源接口的连接状态,以及了解显示设备已连接哪些投屏设备等信息,第二区域用于显示被选择器选中的处于可见状态的信号源传输的数据。这样,用户可以在一个应用界面中同步观看信号源列表页面和当前信号源传输的数据,并且显示设备可以监听各信号源接口的连接状态变化,以及监听投屏设备的接入和断开,以控制第一应用动态更新信号源列表,并自动匹配目标信号源,从而自动刷新信号源列表页面、调整选择器的选中位置,以及控制第二区域的信号源显示和切换,这样用户不必在每次想要切换信号源时繁复地调出信号源列表,也无需用户通过控制装置(例如:遥控器)的快捷键手动切换信号源,也无需用户手动调节选择器在信号源列表页面中的选中位置,实现自适应匹配所显示的目标信号源,减少用户查看信号源列表和切换信号源所执行的手动操作,提高人机交互效率,提升第一应用的功能。
此外,第一应用可以对信号源新表进行集中管理,使用户可以通过浏览第一区域实时观察到信号源列表的更新,及时掌握不同类型信号源(包括但不限于:HDMI和投屏设备)的接入和断开情况,可以为用户切换信号源或检查信号源设备连接等操作提供参考,提升用户使用体验。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一些实施例提供的显示设备与控制装置100之间操作场景;
图2为本申请一些实施例提供的控制装置100的硬件配置框图;
图3为本申请一些实施例提供的显示设备200的硬件配置框图;
图4A为本申请一些实施例提供的显示设备200中软件配置图;
图4B为本申请一些实施例提供的第一应用的软件架构图;
图5为本申请一些实施例提供的第一应用的应用界面示意图一;
图6为本申请一些实施例提供的第一应用的应用界面示意图二;
图7为本申请一些实施例提供的第一应用的应用界面示意图三;
图8为本申请一些实施例提供的第一应用的应用界面的状态示意图一;
图9为本申请一些实施例提供的第一应用的应用界面的状态示意图二;
图10为本申请一些实施例提供的第一应用的应用界面的状态示意图三;
图11为本申请一些实施例提供的第一应用的应用界面的状态示意图四;
图12为本申请一些实施例提供的第一应用的应用界面的状态示意图五;
图13为本申请一些实施例提供的第一应用的应用界面的状态示意图六;
图14为本申请一些实施例提供的第一应用的应用界面的状态示意图七;
图15为本申请一些实施例提供的第一应用的应用界面的状态变化示意图一;
图16为本申请一些实施例提供的第一应用的应用界面示意图四;
图17为本申请一些实施例提供的第一应用的应用界面示意图五;
图18为本申请一些实施例提供的第一应用的应用界面示意图六;
图19为本申请一些实施例提供的基于图18的应用界面的状态变化示意图;
图20为本申请一些实施例提供的第一应用的应用界面示意图七;
图21为本申请一些实施例提供的第一应用的应用界面示意图八;
图22为本申请一些实施例提供的电子设备300与显示设备200的投屏交互流程图;
图23为本申请一些实施例提供的在电子设备300接入后应用界面的变化示意图;
图24为本申请一些实施例提供的HDMI信号源和投屏信号源交叉展示时的应用界面示意图;
图25为本申请一些实施例提供的在电子设备C接入后应用界面的变化示意图;
图26为本申请一些实施例提供的电子设备B显示的第一投屏界面的示意图;
图27为本申请一些实施例提供的基于图25中的电子设备B断开连接时应用界面的变化示意图;
图28为本申请一些实施例提供的基于图27中的电子设备C断开连接时应用界面的变化示意图一;
图29为本申请一些实施例提供的基于图27中的电子设备C断开连接时应用界面的变化示意图二;
图30为本申请一些实施例提供的一种信号源显示方法的流程图。
具体实施方式
为使本申请的目的和实施方式更加清楚,下面将结合本申请示例性实施例中的附图,对本申请示例性实施方式进行清楚、完整地描述,显然,描述的示例性实施例仅是本申请一部分实施例,而不是全部的实施例。
需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
本申请中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明。应该理解这样使用的用语在适当情况下可以互换。
术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的所有组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
本申请实施方式提供的显示设备可以具有多种实施形式,例如,可以是电视、智能电视、激光投影设备、显示器(monitor)、电子白板(electronic bulletin board)、电子桌面(electronic table)等。图1和图2为本申请的显示设备的一种具体实施方式。
图1为根据实施例中显示设备与控制装置之间操作场景的示意图。如图1所示,用户可通过智能设备300或控制装置100操作显示设备200。
在一些实施例中,控制装置100可以是遥控器,遥控器和显示设备的通信包括红外协议通信或蓝牙协议通信,及其他短距离通信方式,通过无线或有线方式来控制显示设备200。用户可以通过遥控器上按键、语音输入、控制面板输入等输入用户指令,来控制显示设备200。
在一些实施例中,也可以使用智能设备300(如移动终端、平板电脑、计算机、笔记本电脑等)以控制显示设备200。例如,使用在智能设备上运行的应用程序控制显示设备200。
在一些实施例中,显示设备可以不使用上述的智能设备或控制设备接收指令,而是通过触摸或者手势等接收用户的控制。
在一些实施例中,显示设备200还可以采用除了控制装置100和智能设备300之外的方式进行控制,例如,可以通过显示设备200设备内部配置的获取语音指令的模块直接接收用户的语音指令控制,也可以通过显示设备200设备外部设置的语音控制设备来接收用户的语音指令控制。
在一些实施例中,显示设备200还与服务器400进行数据通信。可允许显示设备200通过局域网(LAN)、无线局域网(WLAN)和其他网络进行通信连接。服务器400可以向显示设备200提供各种内容和互动。服务器400可以是一个集群,也可以是多个集群,可以包括一类或多类服务器。
图2示例性示出了根据示例性实施例中控制装置100的配置框图。参见图2,控制装置100包括控制器110、通信接口130、用户输入/输出接口140、存储器、供电电源。控制装置100可接收用户的输入操作指令,且将操作指令转换为显示设备200可识别和响应的指令,起用用户与显示设备200之间交互中介作用。
图3为本申请一些实施例提供的显示设备200的硬件配置框图。参见图3,显示设备200包括调谐解调器210、通信器220、检测器230、外部装置接口240、控制器250、显示器260、音频输出接口270、存储器、供电电源、用户接口中的至少一种。
在一些实施例中,控制器包括处理器,视频处理器,音频处理器,图形处理器,RAM,ROM,用于输入/输出的第一接口至第n接口。
在一些实施例中,显示器260包括用于呈现画面的显示屏组件,以及驱动图像显示的驱动组件,用于接收源自控制器输出的图像信号,进行显示视频内容、图像内容以及菜单操控界面的组件以及用户操控UI界面。显示器260可为液晶显示器、OLED显示器、以及投影显示器,还可以为一种投影装置和投影屏幕。
在一些实施例中,通信器220是用于根据各种通信协议类型与外部设备或服务器进行通信的组件。例如:通信器可以包括Wifi模块,蓝牙模块,有线以太网模块等其他网络通信协议芯片或近场通信协议芯片,以及红外接收器中的至少一种。显示设备200可以通过通信器220与外部控制设备100或服务器400建立控制信号和数据信号的发送和接收。显示设备可以通过通信器220与其他电子设备建立投屏连接,并基于投屏连接接收电子设备发送的投屏数据,以及控制显示器260显示投屏数据,实现多终端的数据传输和共享。其中,电子设备包括但不限于:智能手机、平板、笔记本电脑等具有投屏功能的终端设备。
在一些实施例中,用户接口,可用于接收控制装置100(如:红外遥控器等)的控制信号。
在一些实施例中,外部装置接口240可以包括但不限于如下:高清多媒体接口接口(HDMI)、模拟或数据高清分量输入接口(分量)、复合视频输入接口(CVBS)、USB输入接口(USB)、RGB端口等任一个或多个接口。也可以是上述多个接口形成的复合性的输入/输出接口。外部装置接口240可用于连接信号源设备(例如:机顶盒、电视盒子等),以使显示设备200显示通过外部装置接口240接入的信号源。
在一些实施例中,外部装置接口240可以包括至少一个HDMI,HDMI用于外接如机顶盒、电视盒子等信号源设备。在HDMI接入信号源时,控制器250可以控制显示器260显示HDMI接收的视频信号。
在一些实施例中,调谐解调器210通过有线或无线接收方式接收广播电视信号,以及从多个无线或有线广播电视信号中解调出音视频信号,如以及EPG数据信号。
在一些实施例中,控制器250和调谐解调器210可以位于不同的分体设备中,即调谐解调器210也可在控制器250所在的主体设备的外置设备中,如外置机顶盒等。
在一些实施例中,控制器250通过存储在存储器上中各种软件控制程序,来控制显示设备的工作和响应用户的操作。控制器250控制显示设备200的整体操作。例如:响应于接收到用于选择在显示器260上显示UI对象的用户命令,控制器250便可以执行与由用户命令选择的对象有关的操作。
在一些实施例中控制器包括中央处理器(Central Processing Unit,CPU),视频处理器,音频处理器,图形处理器(Graphics Processing Unit,GPU),RAM Random AccessMemory,RAM),ROM(Read-Only Memory,ROM),用于输入/输出的第一接口至第n接口,通信总线(Bus)等中的至少一种。
用户可在显示器260上显示的图形用户界面(GUI)输入用户命令,则用户输入接口通过图形用户界面(GUI)接收用户输入命令。或者,用户可通过输入特定的声音或手势进行输入用户命令,则用户输入接口通过传感器识别出声音或手势,来接收用户输入命令。
“用户界面”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。用户界面常用的表现形式是图形用户界面(Graphic User Interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的一个图标、窗口、控件等界面元素,其中控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。
图4A为本申请一些实施例提供的显示设备200中软件配置图。参见图4A,将系统分为四层,从上至下分别为应用程序(Applications)层(简称“应用层”),应用程序框架(Framework)层(简称“框架层”),安卓运行时(Android Runtime)和系统库层(简称“系统运行库层”),以及内核层。
在一些实施例中,应用层中运行有至少一个应用程序,这些应用程序可以是操作系统自带的窗口(Window)程序、系统设置程序或时钟程序等;也可以是第三方开发者所开发的应用程序。应用程序层中的应用程序包不限于以上举例。
在一些实施例中,参照图4A,应用层中可以运行有第一应用,第一应用是为解决背景技术中提出的技术问题而开发的应用程序。第一应用的应用名称不限于本申请实施例的示例,例如还可命名为“会议应用”、“信号源管理应用”等。用户可以输入预设操作以启动第一应用,该预设操作可以包括但不限于:长按控制装置100的信号源按键、点击第一应用的应用图标控件等。其中,第一应用的应用图标控件可以显示于显示设备的主页,信号源播放界面、或者应用中心页面等位置,以便用户启动第一应用。
在一些实施例中,第一应用配置的功能包括但不限于:对信号源列表进行维护和数据管理,设置信号源列表中包括的信号源的属性信息(包括但不限于:连接状态、显示状态,信号源名称等),用于切换信号源,对应用界面显示的信号源列表、信号源焦点、当前信号源的数据内容进行刷新,根据信号源连接状态的变化自动匹配和切换信号源,以及与图4A中下述底层软件架构进行交互等。其中,连接状态包括已连接状态和未连接状态,显示状态包括正在显示状态(又可称为当前显示状态或可见状态,该状态下信号源的内容对用户可见)和未显示状态(又可称为隐藏状态或不可见状态,该状态下信号源的内容对用户不可见)。
在一些实施例中,第一应用可管理和显示的信号源类别不限定,包括但不限于:HDMI信号源、投屏信号源、USB信号源、蓝牙信号源等。参照图3,HDMI信号源和USB信号源属于接口型信号源,外部装置接口240可以具有至少一个HDMI接口、至少一个USB接口和其他类型的信号源接口。参照图3,投屏信号源可以是显示设备通过通信器220中的WIFI模块无线连接的电子设备(简称:投屏设备),这样在当前信号源切换到投屏设备时,第一应用可以控制应用界面显示该投屏设备发送的投屏数据。蓝牙信号源可以是显示设备通过通信器220中的蓝牙模块无线连接的电子设备(简称蓝牙设备),在当前信号源切换到蓝牙设备时,第一应用可以控制应用界面显示该蓝牙设备传输的数据。
框架层为应用程序提供应用编程接口(Application Programming Interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。应用程序框架层相当于一个处理中心,这个中心决定让应用层中的应用程序做出动作。应用程序(包括第一应用)可以通过API接口,可在执行中访问系统中的资源和获取系统的服务和所需信息,例如:第一应用可以通过API接口(例如:Flow接口等)向更下层(例如:内核层)获取信号源信息,查询每种信号源的连接状态,获取用户界面当前展示的信号源等信息。
如图4A所示,本申请实施例中应用程序框架层包括管理器(Managers),内容提供者(Content Provider)等,其中管理器包括以下模块中的至少一个:活动管理器(ActivityManager)用与和系统中正在运行的所有活动进行交互;位置管理器(Location Manager)用于给系统服务或应用提供了系统位置服务的访问;文件包管理器(Package Manager)用于检索当前安装在设备上的应用程序包相关的各种信息;通知管理器(NotificationManager)用于控制通知消息的显示和清除;窗口管理器(Window Manager)用于管理用户界面上的括图标、窗口、工具栏、壁纸和桌面部件。
在一些实施例中,活动管理器用于管理各个应用程序的生命周期以及通常的导航回退功能,比如控制应用程序的退出、打开、后退等。窗口管理器用于管理所有的窗口程序,比如获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕,控制显示窗口变化(例如将显示窗口缩小显示、抖动显示、扭曲变形显示等)等。
在一些实施例中,系统运行库层为上层即框架层提供支撑,当框架层被使用时,安卓操作系统会运行系统运行库层中包含的C/C++库以实现框架层要实现的功能。系统运行库层可以包括本地库(Native Libraries),本地库包括但不限于:WEBKIT(一种Web浏览器引擎)、OpenGL ES(嵌入式系统开放图形库)等。
在一些实施例中,在系统运行库层和内核层之间还可以包括HAL(HardwareAbstraction Layer,硬件抽象层),HAL是位于内核层与硬件电路之间的接口层,其目的在于将硬件抽象化。
在一些实施例中,内核层是硬件和软件之间的层。如图4A所示,内核层包括电源管理模块以及以下驱动中的至少一种:音频驱动、显示驱动、蓝牙驱动、摄像头驱动、WIFI驱动、USB驱动、HDMI驱动、传感器驱动(如指纹传感器,温度传感器,压力传感器等)、以及电源驱动等。
图4B为本申请一些实施例提供的第一应用的软件架构图。参见图4B,第一应用的软件架构包括但不限于:信号源管理模块201、数据管理模块202、消息处理模块203、View管理模块204、服务管理模块205和投屏管理模块206。
在一些实施例中,控制器250响应于用户启动第一应用的操作(例如:长按信号源键,点击第一应用的应用图标控件等),可以控制服务管理模块205启动第一应用,并控制第一应用执行初始化操作,该初始化操作包括但不限于:服务管理模块205启动获取第一信号源信息的服务,第一信号源信息包括显示设备配置的HDMI的标识信息,该标识信息可以包括信号源ID、信号源类型等;View管理模块204对应用层呈现的View(视图)进行初始化等。
在一些实施例中,数据管理模块202可以维护信号源列表,根据显示设备接入的信号源类别,信号源列表可以包括若干子列表。例如,信号源列表可以包括第一子列表和第二子列表,第一子列表与HDMI信号源关联,第二子列表与投屏信号源关联。由于HDMI是显示设备配置的固有接口,因此第一子列表始终不为空列表,在显示设备连接投屏设备之前,第二子列表为空列表,信号源列表仅包括第一子列表。
在一些实施例中,信号源管理模块201可以通过onServiceAvailable接口查询用于获取第一信号源信息的服务是否可用。若该服务可用,并且SourceManager已创建完毕,则信号源管理模块201通过框架层提供的Flow接口,调用SourceManager(信号源管理),并从SourceManager获取第一信号源信息。其中,调用SourceManager的一种示例性的方式为TVManager.getInstance().getSourceManager(mContext),获取第一信号源信息的一种示例性的方式为SourceManager.getInputSources()。
在一些实施例中,第一信号源信息还包括在第一应用启动之前,SourceManager记录的用户界面正在播放的信号源(以下简称:初始化信号源)。
在一些实施例中,信号源管理模块201在获取到第一信号源信息之后,可以根据第一信号源信息,定义每个HDMI的信号源名称,信号源名称可以包括信号源的类别和在第一子列表中的排列序号(以下简称:第一索引序号)。
假设第一信号源信息的一种示例为{HDMI-ID1,HDMI-ID2,HDMI-ID3},即显示设备具有3个HDMI接口,信号源管理模块201可以将HDMI-ID1映射的信号源命名为HDMI1,将HDMI-ID2映射的信号源命名为HDMI2,将HDMI-ID3映射的信号源命名为HDMI3。其中,HDMI为信号源的类型,HDMI的数字后缀为HDMI信号源的第一索引序号,第一索引序号为信号源管理模块201设置的HDMI在第一子列表中的排列序号。信号源管理模块201可以构建第一索引序号与信号源的标识信息之间的映射关系,使得通过第一索引序号得以辨别各个HDMI接口。
在一些实施例中,信号源管理模块201在根据第一信号源信息,设置显示设备配置的HDMI的信号源名称之后,可以通过SourceManager的isSourceConnected接口,获取第一信号源信息包括的HDMI的连接状态,并对连接状态进行标记,从而得到第二信号源信息。第二信号源信息的一种示例如下:
{[mInputName=HDMI1,mIsConnected=false,mInputSourceId=,mSourceType=…],
[mInputName=HDMI2,mIsConnected=true,mInputSourceId=,mSourceType=…],
[mInputName=HDMI3,mIsConnected=true,mInputSourceId=,mSourceType=…]}
第二信号源信息中,mInputName用于指示信号源名称,mInputSourceId用于指示信号源ID,mSourceType用于指示信号源类型。mIsConnected用于指示信号源的连接状态,mIsConnected=false,表明映射的HDMI处于未连接状态;mIsConnected=true,表明映射的HDMI处于已连接状态。
在一些实施例中,信号源管理模块201可以将第二信号源信息发送给消息处理模块203,由消息处理模块203将第二信号源信息转发给数据管理模块202。数据管理模块202可以根据第二信号源信息,在信号源列表中创建第一子列表,第一子列表包括但不限于:显示设备配置的HDMI映射的信号源名称、信号源ID、信号源类型、连接状态和显示状态等。以显示设备具有3个HDMI为例,假设显示设备当前未连接投屏设备,本申请实施例示例性提供的第一子列表的底层结构如下:
[{mInputName=HDMI1,
mIsConnected=false,
mInputSourceId=,
mVisible=false,
mSourceType=…},
{mInputName=HDMI2,
mIsConnected=true,
mInputSourceId=,
mVisible=true,
mSourceType=…},
{mInputName=HDMI3,
mIsConnected=true,
mInputSourceId=,
mVisible=false,
mSourceType=…}]
上述第一子列表结构中,还包括由数据管理模块202为每个HDMI设置的mVisible,mVisible是用于指示HDMI的显示状态的状态值。mVisible=true,表明数据管理模块202将对应的HDMI设置为当前信号源,以指示View管理模块204将mVisible=true的HDMI接收的视频信号显示于应用界面,使用户得以看见该信号源数据;mVisible=false的HDMI则未被数据管理模块202设为当前信号源,这样View管理模块204不在应用界面显示mVisible=true关联的信号源数据,即该HDMI的信号源数据对用户不可见。
在一些实施例中,在显示设备未连接投屏设备时,数据管理模块202可以根据预设规则,设置第一子列表包括的HDMI映射的mVisible。
在一些实施例中,预设规则的一种配置为:将第一信号源信息指示的初始化信号源的mVisible的状态值设置为true,将第一子列表中除初始化信号源之外的信号源的mVisible的状态值设置为false。
例如,假设显示设备具有HDMI1、HDMI2和HDMI3,用户界面当前正在显示HDMI1的信号源内容,SourceManager记录当前显示的信号源为HDMI1,此时控制器若接收到用户启动第一应用的操作,启动第一应用,第一应用按照前述模块处理和交互方式执行,数据管理模块202获取到第二信号源信息后,获取初始化信号源为HDMI1,则可以将HDMI1的mVisible设置为true,将HDMI2和HDMI3的mVisible设置为false,实现在第一应用启动前后用户界面显示的信号源一致。若HDMI1的mIsConnected=false,表明HDMI1处于未连接状态,由于HDMI1接收不到视频信号,则在第一应用启动后的应用界面可以显示用于提示HDMI1无信号的提示信息;若HDMI1的mIsConnected=true,则应用界面可以正常显示HDMI1接收的视频信号。
在一些实施例中,预设规则的另一种配置为:查询初始化信号源的连接状态,若初始化信号源处于已连接状态,则将初始化信号源的mVisible的状态值设置为true,将第一子列表中除初始化信号源之外的信号源的mVisible的状态值设置为false;若初始化信号源处于未连接状态,则可以从第一子列表中选择任意一项处于已连接状态的信号源,例如该信号源为HDMI2,将HDMI2映射的mVisible的状态值设置为true,将HDMI1和HDMI3映射的mVisible的状态值设置为false。该实施例实现了在第一应用启动后,应用界面可以自动定位及切换到有信号接入的信号源去显示,避免应用界面无信号显示。
在一些实施例中,数据管理模块202可以将第一子列表发送给消息处理模块203,由消息处理模块203将第一子列表转发给View管理模块204。View管理模块204用于根据第一子列表,控制第一应用的应用界面显示和刷新。
在一些实施例中,View管理模块204接收到第一子列表,查询第一子列表中每个HDMI映射的mVisible的状态值,并获取mVisible=true映射的当前信号源。一方面,View管理模块204可以向信号源管理模块201发送第一切换信号源指令,该第一切换信号源指令中可以包含当前信号源的标识信息(例如:信号源ID或信号源名称等);信号源管理模块201响应于第一切换信号源指令,调用框架层的Flow接口,控制SourceManager的setCurrentSource将Source切换至mVisible=true对应的信号源,这样当前信号源的传输通道导通,View管理模块204可以在应用界面的指定窗口中显示当前信号源接收的视频信号。另一方面,View管理模块204可以根据第一子列表中指示的各HDMI信号源的第一索引序号、连接状态和显示状态等信息,还在应用界面中显示信号源列表页面。
图5为本申请一些实施例提供的第一应用的应用界面示意图一。参见图5,应用界面50可以包括第一区域51和第二区域52。其中,第一区域51用于显示信号源列表页面,第二区域52用于在当前信号源(即mVisible=true)传输的数据。在一些实施例中,参见图5,第二区域52可以包括第一播放窗口521,第一播放窗口521用于加载并显示当前信号源传输的数据。
在一些实施例中,View管理模块204可以按照HDMI信号源的第一索引序号,在信号源列表页面中依序显示各HDMI关联的信号源选项,参见图5,例如可按照第一索引序号递增的顺序,依次显示HDMI1、HDMI2和HDMI3映射的信号源选项。
在一些实施例中,参见图5,信号源选项可以包括但不限于:信号源图标、连接状态信息和显示状态信息等。View管理模块204可以根据第一子列表中各HDMI映射的mIsConnected状态值,设置信号源列表页面中每个HDMI映射的信号源选项被标记的连接状态信息。连接状态信息用于向用户呈现信号源的连接状态,连接状态包括已连接状态和未连接状态,HDMI映射的连接状态信息可以跟随接口检测的连接状态变化而动态同步更新。
在一些实施例中,View管理模块204还可以根据第一子列表中各HDMI映射的mVisible状态值,设置信号源列表页面中每个HDMI映射的信号源选项被标记的显示状态信息,显示状态信息用于向用户呈现信号源当前的显示状态,显示状态包括正在显示状态(或称可见状态)和未显示状态(或称不可见状态)。
在一些实施例中,参见图5,被选择器53选中的信号源选项映射的HDMI(例如图5中的HDMI1)处于正在显示状态,未被选择器53选中的信号源选项映射的HDMI(例如图5中的HDMI2和HDMI3)处于未显示状态。在用户输入切换信号源的操作,或者数据管理模块202根据HDMI的连接状态自动匹配待切换的信号源时,View管理模块204会同步刷新信号源列表页面中选择器53的选中位置,并且选择器53的选中位置与View管理模块204在第二区域52显示的数据映射同一个信号源。例如,图5中选择器53选中HDMI1对应的信号源选项,第二区域52显示HDMI1通道传输的视频信号,即均与HDMI1相关。第二区域52显示的信号源数据可以跟随SourceManager切换信号源的动作而动态同步更新。
在一些实施例中,参见图5,选择器53可以包括焦点框531和选中标识信息532。View管理模块204查询mVisible=true的HDMI,例如为HDMI1,则View管理模块204可以控制焦点框531框选HDMI1关联的信号源选项,以及,为HDMI1关联的信号源选项设置选中标识信息532(例如图5中的“对勾”标识),这样View管理模块204通过选择器53向用户提示HDMI1为当前信号源,并且第二区域53显示该当前信号源接收的视频信号。
在一些实施例中,信号源管理模块201可以通过SourceManager的onInputSourceSignalDetected,监控显示设备配置的各HDMI的连接状态变化。若第一HDMI的连接状态改变,例如从未连接状态变为已连接状态(即新接入),或者从已连接状态变化未连接状态(即断开),则信号源管理模块201调整第一HDMI的mIsConnected状态值,然后将第一HDMI当前的mIsConnected通过消息处理模块203转发给数据管理模块202。这样,数据管理模块202可以对第一子列表中的第一HDMI的mIsConnected状态值进行改写,从而刷新第一子列表和信号源列表。
在一些实施例中,数据管理模块202可以根据刷新后的第一子列表,重新设置每个HDMI映射的mVisible状态值,以自动匹配待切换的信号源。例如,原第一子列表中的HDMI1~HDMI3的mIsConnected均为true,HDMI1的mVisible为true,HDMI2和HDMI3的mVisible为false,若HDMI1断开连接,数据管理模块202将HDMI1的mIsConnected改写为false,更新后的第一子列表中HDMI2和HDMI3的mIsConnected为true,则数据管理模块202可以将HDMI2或HDMI3设置为待切换的信号源。数据管理模块202可以根据HDMI信号源的第一索引序号或接入时间等参数,选取待切换的信号源,例如HDMI2的第一索引序号较小,可以将HDMI2的mVisible改写为true,将HDMI1的mVisible改写为false。
又例如,原第一子列表中HDMI3的mIsConnected为true,HDMI1和HDMI2的mIsConnected为false,HDMI3的mVisible为true,HDMI1和HDMI2的mVisible为false,若新增接入HDMI1,数据管理模块202可以将HDMI1的mIsConnected和mVisible都改写为true,将HDMI3的mVisible改写为false,这样View管理模块204就可以在第二区域52显示最新接入的HDMI1传输的视频信号。
在一些实施例中,若第一HDMI断开连接,则数据管理模块202可以查询第一HDMI的mVisible状态值。若第一HDMI的mVisible=false,表明第一HDMI不是当前信号源,则数据管理模块202仅将第一HDMI的mIsConnected由true改写为false,这样View管理模块204根据更新后的第一子列表,设置第一HDMI关联的信号源选项呈现未连接状态(例如将信号源选项置灰),第二区域52显示的当前信号源保持不变。
在一些实施例中,若第一HDMI断开连接,并且第一HDMI的mVisible=true,表明第一HDMI为当前信号源,在当前信号源断开连接的场景下,数据管理模块202可以先将第一HDMI的mIsConnected由true改写为false,然后获取已接入信号源集合,已接入信号源集合包括第一子列表中处于已连接状态(即mIsConnected=true)的HDMI。若已接入信号源集合为非空集合,数据管理模块202可以按照预设规则,从已接入信号源集合中选择目标信号源,例如将已接入信号源集合中第一索引序号最大或最小的HDMI选为目标信号源,该目标信号源不是第一HDMI,然后将第一HDMI的mVisible改写为false,以及将目标信号源的mVisible改写为true。这样,View管理模块204根据更新后的信号源列表或第一子列表,将第一HDMI关联的信号源选项调整为呈现未连接状态(例如置灰),重置选择器53,使选择器53切换为选中目标信号源关联的信号源选项,以及在第一播放窗口521显示目标信号源传输的视频信号,从而避免当前信号源断开连接后应用界面50无信号源显示的问题。
在一些实施例中,若已接入信号源集合为空集,表明第一子列表中不包括已接入的信号源,则数据管理模块202可以按照预设规则,从第一子列表中选择目标信号源,例如将第一子列表中第一索引序号最大或最小的HDMI选为目标信号源,该目标信号源可能是第一HDMI,也可以不是第一HDMI,然后数据管理模块202可以将目标信号源的mVisible改写为true,信号源列表中除目标信号源之外的信号源的mVisible=false。这样,View管理模块204根据更新后的信号源列表或第一子列表,将第一HDMI关联的信号源选项调整为呈现未连接状态(例如置灰),使选择器53选中目标信号源关联的信号源选项,以及在第一播放窗口521显示用于提示目标信号源未连接的提示信息。
在一些实施例中,数据管理模块202可以通过消息处理模块203,将更新后的信号源列表转发给View管理模块204,View管理模块204基于信号源列表中相关HDMI的mIsConnected和/或mVisible的变化,可以指示信号源管理模块201控制SourceManager切换信号源(例如通过调用SourceManager的setCurrentInputSource来切换信号源),以及对应用界面50进行刷新,包括在信号源列表页面调整mIsConnected发生改变的HDMI信号源选项的连接状态,和/或,重置选择器53和切换第二区域52显示的信号源数据。其中,View管理模块204重置选择器53包括:取消mVisible由true变为false的HDMI信号源选项的焦点框531和选中标识信息532,以及,为mVisible由false变为true的HDMI信号源选项添加焦点框531和选中标识信息532。这样,实现了第一应用根据信号源列表的变化,自动匹配并切换信号源,以及自动刷新应用界面50,无需用户手动切换信号源,此外用户通过第一区域51直观、清楚地查看信号源列表,及时掌握信号源列表中各个HDMI的连接状态和显示状态变化,还能通过第二区域52观看当前信号源传输的数据,提升用户观看体验,减少用户手动操作,提升人机交互效率。
在一些实施例中,用户可以通过控制装置100切换焦点所定位的信号源选项(以下将该操作简称为:切换焦点操作),View管理模块204在通过用户接口接收到该切换焦点操作时,调整焦点框531在信号源列表页面中的位置。
在一些实施例中,用户确定焦点位置后可以按击控制装置100的确认键,View管理模块204在通过用户接口接收到确认键指令时,可以为当前具有焦点的信号源选项(假设映射第二HDMI)设置选中状态标识532,使选择器53选中第二HDMI,以及,通过消息处理模块203向信号源管理模块201发送第二切换信号源指令,第二切换信号源指令用于指示将Source切换为第二HDMI。
在一些实施例中,信号源管理模块201响应于接收的第二切换信号源指令,调用框架层的Flow接口,控制SourceManager将Source切换至第二HDMI,这样第二HDMI通道导通,View管理模块204在第二区域52显示第二HDMI接收的视频信号。在SourceManager切换至第二HDMI之后,信号源管理模块201可以通过消息处理模块203向数据管理模块202发送已切换信号源消息,该已切换信号源消息中包括第二HDMI的标识信息(例如信号源的名称、ID等);数据处理模块202将已切换信号源消息指示的第二HDMI的mVisible改写为true,以及将第三HDMI的mVisible改写为false,其中第三HDMI为数据处理模块202接收到已切换信号源消息之前mVisible=true的HDMI。这样,用户可以一边查看信号源列表页面,另一边观看当前信号源,还可以基于应用界面50显示的信号源列表页面,按照自身观看偏好,利用控制装置等方式自行切换信号源,无需用户繁复地调出信号源列表去切换信号源,减少用户手动操作,提升人机交互效率。
在一些实施例中,在第一应用启动时,View管理模块204可以初始化一个View,并根据数据管理模块202发送的信号源列表,利用Recyclerview组件在该View中展示信号源列表页面。Recyclerview组件包括多个item布局,包括但不限于:各信号源选项映射的信号源名称item、接口图标item,连接状态item等,还可包括当前信号源(mVisible=true)的焦点框531和选中标识信息532等与选择器53有关的item。其中,涉及文本信息的item(例如:信号源名称item)可以使用TextView(文本控件)进行展示;涉及图像内容的item(例如:接口图标、连接状态、焦点框和选中标识信息等item)可使用ImageView(图像控件)进行展示,从而创建完成信号源列表页面。在当前信号源发生切换时,View管理模块204可以对选择器53进行重置处理,和/或,在信号源的连接状态发生变化时,View管理模块204可以对该信号源的连接状态item进行同步设置,从而完成信号源列表页面的刷新。
在一些实施例中,信号源列表页面创建完成后,View管理模块204可以按照预设布局,设置第一区域51的尺寸和显示位置,以及设置第一播放窗口521的尺寸和显示位置。
在一些实施例中,View管理模块204可以通过Flow接口,调用setScreenOutputRect,setScreenOutputRect可以被配置为对第一播放窗口521进行等比例缩放,以调节第一播放窗口521的尺寸,并设置第一播放窗口521在应用界面50中的显示位置。其中,显示位置可以是第一播放窗口521上基准点的位置坐标,基准点包括但不限于第一播放窗口521的顶点、中心点等。
在一些实施例中,setScreenOutputRect可以被配置为:根据屏幕分辨率、信号源列表页面的尺寸和显示位置、当前信号源的宽高比例,自适应匹配第一播放窗口521的尺寸和显示位置。setScreenOutputRect程序在执行时可以参照增大应用界面使用率,降低界面留白区域等标准,设定第一播放窗口521的尺寸和显示位置等参数,从而提升第一应用的应用界面的显示效果。
在一些实施例中,在服务管理模块205启动投屏服务之后,投屏管理模块206可以负责第一应用的投屏协议交互,通过投屏服务监听投屏设备的接入事件和断开事件。若监听到第一投屏设备的接入事件,投屏管理模块206可以将投屏接入消息通过消息处理模块203转发给数据管理模块202,投屏接入消息中包括第一投屏设备的设备信息。这样,数据管理模块202在接收到投屏接入消息时,将第一投屏设备的设备信息添加到第和二子列表,为第一投屏设备设置mIsConnected和mVisible属性,并将第一投屏设备的mIsConnected和mVisible都设置为true,从而更新第二子列表和信号源列表。其中,本申请实施例示例性提供的第二子列表如下所示:
[{mInputName=投屏设备1,
mIsConnected=true,
mInputSourceId=,
mVisible=true,
mSourceType=,
mSession=SessionBase{id=Client 2,type=,protocol=}…]
假设在电子设备A与显示设备建立投屏连接之前,第二子列表为空列表,则在电子设备A连接后,数据管理模块202可以将电子设备A的设备信息添加到第二子列表中,参照上述第二子列表的示例,其中设备信息可以包括但不限于信号源ID、信号源类型、电子设备ID(例如:Client 2)、设备类型、投屏协议等。由于电子设备A为最新接入的信号源,所以数据管理模块202将电子设备A的mIsConnected和mIsConnected都设置为true,以指示电子设备A处于已连接状态,并且电子设备A被调整为当前信号源。
在一些实施例中,数据管理模块202可以根据第二子列表,为已连接的电子设备设置信号源名称,信号源名称可以呈现为信号源类型和第二索引序号的组合形式。其中,电子设备A是向显示设备发送投屏数据的信号源,因此信号源类型可以设定为“投屏设备”,第二索引序号是投屏设备在第二子列表中的排列序号。由于电子设备A为显示设备第一个连接的投屏设备,因此数据管理模块202可以设置电子设备A映射的第二索引序号为1,这样电子设备A的信号源名称就被定义为“投屏设备1”。通过对已连接的电子设备重定义信号源名称,可以避免设备信息的泄露,提升第一应用对外接信号源的保密效果。
在一些实施例中,数据管理模块202更新第一子列表和/或第二子列表,即相当于更新了信号源列表。这样,在View管理模块204根据更新后的信号源列表,例如检测到第二子列表中已添加投屏设备1的设备信息,可以在信号源列表页面中增加投屏设备1映射的信号源选项,该信号源选项可以包括投屏设备1的信号源图标和信号源名称等,标记投屏设备1映射的信号源选项呈现已连接状态(例如高亮显示),控制选择器53选中投屏设备1映射的信号源选项,以及在第一播放窗口521显示投屏设备1发送的投屏数据。在一些实施例中,信号源选项还可以包括投屏设备的其他设备信息,例如设备型号、设备ID等。
在一些实施例中,投屏管理模块206可以设置预设投屏数量,预设投屏数量用于限制显示设备允许接入投屏设备的最大数量。设置预设投屏数量的目的包括:首先,若显示设备接入的投屏路数过多,会影响系统性能,例如第一应用对CPU的占用率较高,影响其他应用和业务的运行;其次,在使用过程中用户一般不会在显示设备上连接过多的投屏设备,例如在日常使用、会议场景下连接1~3个投屏设备可能就满足使用要求,因此可以将预设投屏数量设为3。
在一些实施例中,投屏管理模块206还用于记录投屏路数,投屏路数为显示设备200已连接的投屏设备的当前数量。在投屏服务接收到第一投屏设备的投屏请求时,若投屏管理模块206检测到投屏路数小于预设投屏数量,则可以通过投屏服务的协议层向第一投屏设备发送同意投屏消息;第一投屏设备接收到同意投屏消息,与显示设备建立投屏连接以及启动投屏相关功能(例如:屏幕录制),向显示设备发送准备投屏消息;在投屏服务接收到准备投屏消息时,投屏管理模块206将投屏路数累积加一,将第一投屏设备的设备信息发送给数据管理模块202;数据管理模块202可以按照预设格式将该设备信息写入第二子列表,定义第一投屏设备映射的第二索引序号和信号源名称,以及设置第一投屏设备的mIsConnected和mVisible都为true,从而在连接新投屏设备时自动更新第二子列表和信号源列表,View管理模块204根据更新后的信号源列表对应用界面进行刷新。
在一些实施例中,在投屏服务接收到第一投屏设备的投屏请求时,若投屏路数不小于(包含大于或等于)预设投屏数量,则投屏管理模块206可以从在先接入的投屏设备中选择第二投屏设备,并可以调用Session的finish接口断开与第二投屏设备的投屏连接,其中第二投屏设备的选择规则不限定,例如选择第二子列表中接入时间最早的投屏设备。这样,在第二投屏设备断开连接之后,投屏管理模块206可以将投屏路数减一,通过投屏服务的协议层向第一投屏设备发送同意投屏消息,以及将第一投屏断开消息通过消息处理模块203转发给数据管理模块202,第一投屏断开消息中可以包含第二投屏设备的信号源名称或设备ID等信息。数据管理模块202接收到第一投屏断开消息,将第二投屏设备的设备信息从第二子列表中删除,调整第二子列表中剩余的投屏设备映射的第二索引序号。
例如,预设投屏数量等于3,显示设备已连接投屏设备1(ID为Client 1)、投屏设备2(ID为Client 2)和投屏设备3(ID为Client 3),在电子设备D(ID为Client 4)请求连接时,投屏管理模块206可以将最早接入的投屏设备1选为第二投屏设备,则调用Session的finish接口断开与投屏设备1的连接,再与电子设备D建立投屏连接,这样数据管理模块202将原投屏设备2(ID为Client 2)调整为投屏设备1,将原投屏设备3(ID为Client 3)调整为投屏设备2,将新接入的电子设备D的信号源名称定义为投屏设备3,从而实现数据管理模块202根据设备连接状态的变化自动调整第二子列表中投屏设备的第二索引序号。
在一些实施例中,若投屏管理模块206监听到第三投屏设备的断开事件,可以将第二投屏断开消息通过消息处理模块203转发给数据管理模块202,第二投屏断开消息中可以包含第三投屏设备的信号源名称或设备ID等信息。本申请实施例中,第二投屏设备是在投屏路数达到预设投屏数量的上限时被动断开连接的投屏设备,第三投屏设备则是用户在投屏设备侧或显示设备侧主动退出投屏时断开连接的投屏设备。
在一些实施例中,数据管理模块202在接收到第二投屏断开消息时,可以判断第三投屏设备是否为当前信号源(即mVisible是否为true)。若第三投屏设备不是当前信号源,则数据管理模块202将第三投屏设备的设备信息从第二子列表中删除,调整第二子列表中剩余的投屏设备映射的第二索引序号,保持当前信号源不变。这样,View管理模块204根据该更新后的信号源列表(假设第一子列表未发生变化),从信号源列表页面中删除第三投屏设备映射的信号源选项,刷新各信号源选项显示的信号源名称(包括第二索引序号),不改变选择器53选中的对象,以及在第一播放窗口521继续显示当前信号源传输的数据。
在一些实施例中,若第三投屏设备是当前信号源,则数据管理模块202将第三投屏设备的设备信息从第二子列表中删除,调整第二子列表中剩余的投屏设备映射的第二索引序号,并重新匹配当前信号源,例如将第二子列表中第二索引序号最小或最大的投屏设备的mVisible设置为true。这样,View管理模块204根据该更新后的信号源列表(假设第一子列表未发生变化),从信号源列表页面中删除第三投屏设备映射的信号源选项,刷新各信号源选项显示的信号源名称(包括第二索引序号),控制选择器53选中数据管理模块202重新匹配的当前信号源,第一播放窗口521停止显示第三投屏设备发送的投屏数据,显示切换后的当前信号源发送的投屏数据。
在一些实施例中,第一应用的软件架构还可以包括交互处理模块207。交互处理模块207用于实现第一应用与其他外部应用之间的交互,例如第一应用可以设置多种启动入口,包括但不限于:主页或应用中心提供的第一应用的应用图标、基于控制装置100输入的快捷启动操作(例如:长按信号源键)、其他外部应用关联设置的用以快捷启动第一应用的控件等,这些启动入口可以与交互处理模块207进行交互,并根据启动入口的差异和类别进行不同的定制化管理。
通过上述第一应用的软件架构和功能配置,实现了第一应用根据HDMI的连接状态变化,和/或投屏设备的连接和断开,自动更新信号源列表,以及自动刷新应用界面。第一应用的软件架构不限于以上实施例的示例,可以根据第一应用所需配置的功能和UI效果,调整第一应用的模块和软件程序配置。本申请实施例涉及的UI附图是以HDMI信号源和投屏信号源为例,信号源类型不局限于HDMI和投屏设备,还可包括蓝牙设备、USB等Source,不同类型的信号源都可以适用于上述第一应用的软件架构和功能配置。
显示设备200可支持多个HDMI同时连接信号源设备,以及与电子设备建立投屏连接以显示投屏数据。用户若要查看信号源列表,并通过信号源列表切换信号源,可以点击控制装置100上的信号源键以调出信号源列表。控制器响应于用户调出信号源列表的操作,可以通过SourceManager的isSourceConnected接口查询多个HDMI的连接状态,以及通过投屏服务查询显示设备当前已连接的投屏设备,由此控制显示器显示信号源列表。信号源列表中展示投屏设备和多个HDMI的信号源名称和连接状态等信息,以供用户参照,并从信号源列表中选择要切换的目标信号源。控制器250响应于用户切换至目标信号源的操作,关闭信号源列表,以及控制显示器在用户界面显示目标信号源传输的数据。该切换信号源的方式存在以下几个问题:
问题一:显示设备在切换至目标信号源后,会关闭信号源列表,导致用户每次切换信号源都需要重新调出信号源列表,并基于信号源列表手动切换信号源,用户操作繁琐。
问题二:显示设备仅在接收到用户调出信号源列表的操作指令时,才会通过SourceManager的isSourceConnected接口查询多个HDMI的连接状态,以及通过投屏服务获取已连接的投屏设备,从而生成当前的信号源列表。在用户下一次调出信号源列表前,显示设备不会主动更新当前显示的信号源列表,导致用户无法动态、实时地感知HDMI信号源和/或投屏信号源的连接状态变化。
问题三,显示设备连接投屏设备1后,控制器可以创建活动(Activity)1,由活动1对投屏设备1发送的投屏数据进行显示;之后若显示设备又连接投屏设备2,则控制器创建活动2对投屏设备2发送的投屏数据进行显示,由于活动1被活动2完全遮盖,则在活动生命周期管理中会自动将活动1切换到onStop状态,在onStop状态下系统禁止活动1执行任何代码,并且会与投屏设备1断开连接,保持与投屏设备2连接。这样,基于活动之间的遮盖关系,导致显示设备仅能连接一个投屏设备,仅能显示一个投屏设备发送的投屏数据,若用户从投屏设备2切换到投屏设备1,显示设备还需要重新与投屏设备1连接,不仅信号源切换效率低,还可能导致投屏数据显示出现一定的延迟。
针对上述问题一和问题二,本申请上述实施例提供的第一应用及其软件架构,可以实现在应用界面的第一区域51显示信号源列表页面,以及在第二区域52同步显示被选择器53选中的当前信号源(HDMI或投屏设备)传输的数据,通过第一应用内模块之间的交互,由数据管理模块202对信号源列表进行维护和更新,数据管理模块202可根据用户输入的切换信号源操作,或者根据HDMI和/或投屏设备的连接状态(mIsConnected)变化,设置各信号源的mVisible状态值,以使View管理模块204对信号源列表页面进行刷新,对选择器53进行重置,以及切换第一播放窗口521显示的信号源数据,进而实现应用界面的局部或全局刷新。
这样,第一应用在初始化启动阶段和启动运行之后,可以根据HDMI和/或投屏设备的连接状态,自动匹配和切换信号源,无需用户基于信号源列表页面手动切换信号源,也无需频繁地调出信号源列表,减少用户操作,提升人家交互效率,并且第一应用是在至少一个HDMI的连接状态发生改变时,和/或投屏设备接入和断开时,即时刷新信号源列表页面,而不是在用户手动调出信号源列表时刷新信号源列表,使用户可以通过第一区域51显示的信号源列表页面,实时观察各个HDMI信号源的连接状态的动态变化,从而为用户自行切换信号源和检测信号源设备连接提供精准的参考,提升用户使用体验。
针对问题三,第一应用中View管理模块204不是为每个投屏设备单独创建关联的活动,而是在一个活动中为每个投屏设备创建关联的视图(View),并设置每个视图的可见性,这样应用界面仅显示处于可见状态的视图,相当于在第一播放窗口521中显示mVisible=true的投屏设备发送的投屏数据,处于不可见状态的视图则会被隐藏,例如将视图的分辨率设置极小,这样该视图对用户是肉眼不可见的。View管理模块204在同一个活动中对多个视图进行管理,规避了多个活动之间的遮盖关系,使通信器220可以维持与多个投屏设备之间的投屏连接,这样在投屏设备之间切换信号源时就无需频繁重连设备,提升了信号源切换效率,并且降低投屏数据的显示延时。
基于图4A示例的显示设备软件配置,图4B示例的第一应用的软件架构,以及前述实施例提供的第一应用中模块的软件功能配置和模块间交互,下文将对第一应用的应用界面50的展示效果和UI变化等内容进行详细说明。
图5~图7为本申请一些实施例提供的第一应用的应用界面示意图一~示意图三。View管理模块204可以根据数据管理模块202通过消息处理模块203转发的信号源列表,对第一应用的应用界面50进行显示控制。在显示设备200连接投屏设备之前,即第二子列表为空列表时,参见图5~图6,应用界面50包括第一区域51和第二区域52。第一区域51用于显示信号源列表页面,信号源列表页面包括但不限于:至少一种信号源选项的信号源图标511、信号源类别信息512、连接状态信息513等显示元素。View管理模块204可以利用Recyclerview组件设置多个item布局,每个item可以对应信号源列表页面中的一个显示元素,以便对信号源列表页面进行显示和刷新。
在一些实施例中,信号源图标511用于以图形表征信号源类型,例如信号源图标511可以使用HDMI接口的截面图。
在一些实施例中,信号源类别信息512可以为信号源接口名称(例如:信号源管理模块201定义的HDMI1、HDMI2和HDMI3等)、信号源ID等信息。信号源管理模块201定义的信号源名称中,HDMI的后缀数字用于表征HDMI在第一子列表中的第一索引序号,信号源类别信息512映射于一个HDMI接口。
在一些实施例中,参照图5,连接状态信息513可以呈现为状态描述信息513a,例如:状态描述信息513a为“已连接”、“已接入”、“未连接”、“未接入”等。这样,用户通过浏览状态描述信息513a,可以获知每个HDMI的连接状态。
在一些实施例中,参照图6,连接状态信息513可以呈现为:对处于已连接状态的HDMI映射的信号源选项设置连接指示控件513b,处于未连接状态的HDMI映射的信号源选项不设置连接指示控件513b。连接指示控件513b的样式不限定,例如图6中连接指示控件513b呈现为“锁扣连接”的样式。这样,用户通过连接指示控件513b,可以获知每个HDMI的连接状态。
在一些实施例中,参照图7,View管理模块204可以将处于未连接状态的HDMI映射的信号源选项置灰,以及控制处于已连接状态的HDMI映射的信号源选项高亮显示(不置灰)。这样,用户通过观察每个信号源选项的显示形态,区分每个HDMI的连接状态。
在一些实施例中,用户可以通过控制装置(例如:遥控器,鼠标,触控装置等),调节选择器53在信号源列表页面中的位置,其中选择器53可以包括控制装置对应的操作焦点。在选择器53选中目标信号源选项时,控制器250控制显示器对目标信号源选项进行焦点显示,以及在第二区域52显示目标信号源选项映射的HDMI接口所接收的视频信号。
在一些实施例中,假设选择器53选中HDMI1,则View管理模块204对HDMI1映射的信号源选项执行的焦点显示可以包括但不限于如下几种显示效果中的任意一种或多种组合:
显示效果一:参见图5,在HDMI1映射的信号源选项的外围设置焦点框531。焦点框531可以为矩形、圆形、椭圆、多边形等不同形状的框体。
显示效果二:参见图6,对HDMI1映射的信号源选项的信号源图标511、信号源类别信息512、连接状态信息513进行同步缩放处理,从而通过信息内容的大小对比,突显当前被选中的信号源选项。例如,可以对HDMI1映射的信号源图标511、信号源类别信息512、连接状态信息513进行整体放大,以使HDMI1选项更为醒目和突出。
显示效果三:参见图7,可以为HDMI1映射的信号源选项设置选中标识信息532。选中标识信息532可以包括选中指示控件532a和/或播放状态信息532b,选中指示控件532a例如呈现为图7中的“对勾”控件,播放状态信息532b例如为“当前显示”、“当前播放”、“正在显示”或“正在播放”等,以指示HDMI1映射的信号源选项具有焦点且被选择器53选中,并且第二区域52当前显示HDMI1接收的信号。需要说明的是,焦点显示效果不限于上述几种形式,例如还可采用特殊颜色展示等形式。
在一些实施例中,若选择器53的呈现形式包括焦点框531和选中指示控件532a,用户可以操作控制装置100的方向键(例如:上键或下键),移动焦点框531,View管理模块204同步修改焦点框531在信号源列表页面中的位置,此时虽然焦点框531的位置发生改变,但信号源管理模块201并不控制SourceManager切换信号源(即保持当前信号源不变)。参见图7,当前信号源为HDMI1,View管理模块204响应于用户两次输入的下键指令,将焦点框531移动至HDMI3映射的信号源选项,但数据管理模块202记录的当前信号源仍为HDMI1(即HDMI1的mVisible=true,HDMI3的mVisible=false),这样第二区域52仍显示HDMI1接收的视频信号,而不切换至HDMI3接收的视频信号。
在一些实施例中,用户在将焦点框531移动至感兴趣的目标信号源对应的选项后,可以按压控制装置100的确认键(即OK键),这样第一应用接收到该确认键指令,可以控制数据管理模块202将当前信号源的mVisible状态值改写为false,将目标信号源的mVisible状态值改写为true,从而更新信号源列表。View管理模块204根据该更新后的信号源列表,为目标信号源映射的信号源选项设置选中标识信息532,使选择器53选中目标信号源映射的信号源选项,信号源管理模块201控制SourceManager将Source切换至目标信号源,以使View管理模块204在第二区域52显示目标信号源的视频信号。
参见图7,当前信号源为HDMI1,第一应用接收到用户两次输入的下键指令,控制View管理模块204将焦点框531移动至HDMI3映射的信号源选项;之后第一应用接收到用户输入的确认键指令,可以控制数据管理模块202将HDMI1的mVisible状态值改写为false,将HDMI3的mVisible状态值改写为true,使得View管理模块204根据更新后的信号源列表,取消HDMI1映射的信号源选项的选中标识信息532,以及为HDMI3映射的信号源选项添加选中标识信息532,该选中标识信息532用于指示选择器53已选中HDMI3映射的信号源选项,信号源管理模块201控制SourceManager将Source切换至HDMI3,以使View管理模块204在第二区域52停止显示HDMI1接收的视频信号,并显示HDMI3接收的视频信号。
因此,本申请一些实施例中有关选择器53选中某一信号源选项的相关描述,可以是指该信号源选项被同时设置有焦点框531和选中标识信息532,表明对应的信号源被选中为在第二区域52展示的当前信号源。
在一些实施例中,参照图7,第二区域52包括第一播放窗口521和信号源提示控件522。其中,第一播放窗口521用于显示被选择器53选中的信号源选项映射的HDMI(即当前信号源)所接收的视频信号;信号源提示控件522则用于提示当前信号源的信号源名称,以便用户获知第一播放窗口521所显示的视频内容源自哪一信号源。
在一些实施例中,View管理模块204对第二区域52的布局不限定,例如:参照图7,若第一区域51位于应用界面50的右侧,第二区域52位于应用界面50的左侧,可以在第二区域52的左上角显示信号源提示控件522,以及在信号源提示控件522的下方显示第一播放窗口521。
显示设备200硬件结构上可以配置Q个HDMI物理接口,Q为大于或等于1的正整数,用于表征显示设备200允许接入HDMI信号源的上限。在一些实施例中,信号源管理模块201通过框架层提供的Flow接口,调用SourceManager以获取第一信号源信息,定义第一信号源信息中包含的HDMI的信号源名称,得到第二信号源信息,并通过消息处理模块203将第二信号源信息转发给数据管理模块202。数据管理模块202根据第二信号源信息设置第一子列表,第一子列表包括Q个HDMI的接口信息(包括:信号源名称、信号源ID、信号源类型等)、连接状态(mIsConnected)、显示状态(mVisible)等内容,并将该第一子列表通过消息处理模块203转发给View管理模块204,由View管理模块204控制应用界面50的第一区域51显示Q个HDMI对应的信号源选项,控制每个信号源选项呈现的连接状态,控制选择器53选中当前信号源映射的信号源选项,以及,控制第一播放窗口521显示当前信号源的视频信号。这样,用户可以获知显示设备200包括的HDMI,以及其中哪些HDMI有信号源接入,哪些HDMI未接入信号源,当前正在显示哪一HDMI接收的视频信号等,从而将用户期望了解的信息清楚地呈现于应用界面。
在一些实施例中,数据管理模块202在生成第一子列表后,可以获取第一HDMI集合,第一HDMI集合包括第一子列表中处于已连接状态(即mIsConnected=true)的N个HDMI,N≤Q。数据管理模块202在获取到第一HDMI集合后,可以将第一HDMI集合通过消息处理模块203转发给View管理模块204,View管理模块204控制信号源列表页面仅显示第一HDMI集合包括的N个HDMI对应的信号源选项,不显示其他Q-N个HDMI对应的信号源选项,从而滤除未连接、不可用的HDMI信号源,使得用户在可用的HDMI之间切换信号源。
通过开发第一应用的软件架构,以及基于该软件架构配置第一应用的应用界面,使得用户可以通过该应用界面的第一区域51查看到信号源列表页面,了解每个信号源的相关信息(例如信号源名称、类型等)、连接状态和显示状态的动态变化,并通过在信号源列表页面中移动选择器53,切换控制装置100的焦点,支持用户手动切换第二区域52所显示的信号源,或者由第一应用根据各HDMI的连接状态自动匹配当前信号源。这样,用户可以在应用界面50中同时观看信号源播放画面和信号源列表页面,并按需选择当前显示哪个信号源,减少用户手动操作,提升了用户浏览效率和信号源切换效率。
在一些实施例中,SourceManager的可以记录第一应用启动之前用户界面正在显示的信号源(即初始化信号源)。在第一应用启动时,信号源管理模块201可以通过framework层的Flow接口,从SourceManager获取第一信号源信息,第一信号源信息中包括初始化信号源的标识信息。这样,数据管理模块202在生成信号源列表时,可以将初始化信号源的mVisible状态值位置为true,将其他信号源的mVisible状态值位置为false,使得View管理模块204在控制第一区域51显示信号源列表页面时,使选择器53选中初始化信号源映射的信号源选项,以及控制第二区域52显示初始化信号源传输的视频信号。
在一些实施例中,数据管理模块202在生成信号源列表时,可以检测初始化信号源是否处于已连接状态(即mIsConnected是否为true)。若初始化信号源处于连接状态,则第二区域52可以正常显示初始化信号源传输的视频信号。
图8为本申请一些实施例提供的第一应用的应用界面的状态示意图一。在启动第一应用时,数据管理模块202若检测到初始化信号源处于未连接状态(即mIsConnected=false),仍然可以设置初始化信号源的mVisible=true,这样View管理模块204获取到信号源列表之后,假设初始化信号源为HDMI1,参见图8,可以控制选择器53选中HDMI1映射的信号源选项,由于HDMI1处于未连接状态,View管理模块204可以控制显示器在第二区域52显示第一提示信息521a。其中,第一提示信息521a用于提示当前信号源无信号接入,还可提示用户检查线缆是否正确连接或信号源设备是否开启,或者还可提示用户切换至其他可用的信号源(图8示例中为HDMI2和HDMI3)。
图9为本申请一些实施例提供的第一应用的应用界面的状态示意图二。在启动第一应用时,数据管理模块202若检测到显示设备200配置的Q个HDMI都处于未连接状态(包括初始化信号源),可以按照预设,选择mVisible被设置为true的信号源。其中,预设规则包括但不限于:选择第一索引序号最小的信号源(例如:HDMI1),选择第一索引序号最大的信号源(例如:HDMI3),选择第一子列表居中的信号源(例如:HDMI2),选择接入时间最早或最晚的信号源,随机选择第一子列表中的任意一个信号源等。
参见图9,以预设规则配置为选择信号源列表中第一索引序号最小的信号源为例,数据管理模块202可以将HDMI1的mVisible设置为true,将HDMI2和HDMI3的mVisible设置为false。这样,View管理模块204获取到信号源列表之后,在第一区域51显示信号源列表页面,以及在第二区域52显示第二提示信息521b。其中,信号源列表页面中HDMI1映射的信号源选项1呈现为未连接状态(例如被置灰),并且选择器53选中信号源选项1,HDMI2和HDMI3呈现为未连接状态并且未被选择器53选中。第二提示信息521b用于提示显示设备当前无可用的信号源,并提示用户检查线缆是否正确连接或信号源设备是否开启。
图10为本申请一些实施例提供的第一应用的应用界面的状态示意图三。在启动第一应用时,若显示设备200配置的Q个HDMI(包括初始化信号源)全部处于已连接状态,数据管理模块202可以将初始化信号源的mVisible设置为true,将其他信号源的mVisible设置为false。参见图10,假设初始化信号源为HDMI1,则View管理模块204获取到信号源列表之后,控制选择器53选中HDMI1映射的信号源选项1,包括使焦点框531框选信号源选项1,为信号源选项1添加选中标识信息532,以及,控制第一播放窗口521显示HDMI1接收的视频信号。由于第一应用启动前后均显示初始化信号源,因此信号源管理模块201不控制SourceManager切换信号源。
在一些实施例中,在第一应用启动之后,信号源列表中包括的任意一个HDMI的连接状态可能发生改变。若显示设备200配置的Q个HDMI全部变为已连接状态,数据管理模块202可以按照前述预设规则,选择需要将mVisible状态值设置为true的信号源,从而实现根据Q个HDMI的连接状态,自动定位选择器53在信号源列表页面的选中位置以及自动匹配第一播放窗口521显示的信号源。参见图10,数据管理模块202可以将信号源列表中第一索引序号最小的HDMI1的mVisible设置为true,将HDMI2和HDMI3的mVisible设置为false。
在一些实施例中,在第一应用启动时,数据管理模块202若检测到初始化信号源处于未连接状态,则可以将初始化信号源的mVisible设置为false,以及获取第一HDMI集合,第一HDMI集合包括信号源列表中处于已连接状态(即mIsConnected=true)的N个HDMI,N≤Q。若第一HDMI集合为空集,则可以参照前述显示设备200配置的Q个HDMI都处于未连接状态时的处理方案,这里不再赘述。
在一些实施例中,若第一HDMI集合为非空集合,则可以按照前述预设规则,从第一HDMI集合中选择需要将mVisible设置为true的信号源。图11为本申请一些实施例提供的第一应用的应用界面的状态示意图四,参见图11,假设HDMI1为初始化信号源,数据管理模块202检测到HDMI1处于未连接状态,获取第一HDMI集合为{HDMI2,HDMI3},例如采用索引最小原则,由于第一HDMI集合中HDMI2的第一索引序号最小,则数据管理模块202可以设置HDMI2的mVisible=true,设置HDMI1和HDMI3的mVisible=false。这样,View管理模块204根据该信号源列表,使HDMI1映射的信号源选项1呈现未连接状态,HDMI2映射的信号源选项2呈现已连接状态,HDMI3映射的信号源选项3呈现已连接状态,并控制选择器53选中信号源选项2,以及信号源管理模块201控制SourceManager将信号源切换至HDMI2,以使第一播放窗口521显示HDMI2接收的视频信号。该实施例实现了在启动第一应用时,若初始化信号源未连接,则自动切换到其他已连接的可用信号源。
在一些实施例中,在启动第一应用之后,若存在N个HDMI已连接信号源设备,1<N<Q,另外Q-N个HDMI未连接信号源设备,数据管理模块202可以按照前述预设规则,从第一HDMI集合中选择需要将mVisible设置为true的信号源。
参见图11,假设显示设备200具有HDMI1、HDMI2和HDMI3(即Q=3),数据管理模块202检测到HDMI1断开连接,HDMI2和HDMI3保持已连接状态,则获取第一HDMI集合为{HDMI2,HDMI3},例如采用索引最小原则,则数据管理模块202可以设置HDMI2的mVisible=true,设置HDMI1和HDMI3的mVisible=false。这样,View管理模块204根据该信号源列表,将HDMI1映射的信号源选项1转变为未连接状态(例如置灰),HDMI2映射的信号源选项2和HDMI3映射的信号源选项3保持已连接状态(例如高亮显示),控制选择器53选中信号源选项2,以及信号源管理模块201控制SourceManager将信号源切换至HDMI2,使第一播放窗口521显示HDMI2接收的视频信号。
图12为本申请一些实施例提供的第一应用的应用界面的状态示意图五。参见图12,假设显示设备200具有HDMI1、HDMI2和HDMI3,其中HDMI1和HDMI2处于已连接状态,HDMI3未连接信号源设备。若预设规则为索引最小原则,由于HDMI1和HDMI2中HDMI1的第一索引序号较小,因此数据管理模块202将HDMI1的mVisible设置为true,将HDMI2和HDMI3的mVisible设置为false,并且HDMI1和HDMI2的mIsConnected=true,HDMI3的mIsConnected=false,则View管理模块204基于该信号源列表,控制应用界面50呈现如图12所示的显示效果。
图13为本申请一些实施例提供的第一应用的应用界面的状态示意图六。参见图13,假设显示设备200具有HDMI1、HDMI2和HDMI3,其中HDMI1和HDMI3处于已连接状态,HDMI2未连接信号源设备。若预设规则为索引最小原则,由于HDMI1和HDMI3中HDMI1的第一索引序号较小,因此数据管理模块202将HDMI1的mVisible设置为true,将HDMI2和HDMI3的mVisible设置为false,并且HDMI1和HDMI3的mIsConnected=true,HDMI2的mIsConnected=false,则View管理模块204基于该信号源列表,控制应用界面50呈现如图13所示的显示效果,选择器53选中HDMI1映射的信号源选项1,第一播放窗口521显示HDMI1接收的视频信号。
在一些实施例中,在启动第一应用之后,若仅有一个HDMI处于已连接状态,则数据管理模块202可以将唯一接入信号的HDMI的mVisible设置为true,将其他HDMI的mVisible设置为false。
图14为本申请一些实施例提供的第一应用的应用界面的状态示意图七。参见图14,假设显示设备200具有HDMI1、HDMI2和HDMI3,其中仅HDMI2处于已连接状态,HDMI1和HDMI3都处于未连接状态,则数据管理模块202将HDMI2的的mVisible设置为true,将HDMI1和HDMI3的mVisible设置为false,并且HDMI2的mIsConnected=true,HDMI1和HDMI3的mIsConnected=false,则View管理模块204基于该信号源列表,控制应用界面50呈现如图14所示的显示效果,选择器53选中HDMI2映射的信号源选项2,第一播放窗口521显示HDMI2接收的视频信号。
在一些实施例中,用户可以基于信号源列表页面,利用控制装置100控制选择器,以切换信号源,但这种方式仍需要用户手动切换信号源,操作效率较低,对此本申请实施例提供一种由第一应用根据信号源连接状态的变化,自动匹配及切换信号源的方案。
在一些实施例中,信号源管理模块201可以监听信号源接口的连接状态变化,例如,可以通过框架层的Flow接口,调用SourceManager对象,SourceManager对象配置的InputSourceChangeListener回调可以执行监听信号源接口的连接状态变化的相关程序。
在一些实施例中,在新接入第一信号源,和/或第二信号源断开连接时,InputSourceChangeListener可以通过onInputSourceSignalDetected(信号源检测接口)和onCurrentInputSourceStatusChanged(当前信号源变化接口),查询任意HDMI的接入事件和/或断开事件。其中,onInputSourceSignalDetected监听到第一信号源接入和/或第二信号源断开连接时,可以在回调消息中向信号源管理模块201通知第一信号源和/或第二信号源对应的接口信息(例如:信号源接口的ID、名称等)和变化后的连接状态等信息。onCurrentInputSourceStatusChanged用于获取当前信号源,例如在第一应用启动之前,SourceManager可以通过调用onCurrentInputSourceStatusChanged,查询初始化信号源。
在一些实施例中,信号源管理模块201可以通过onInputSourceSignalDetected,监听到Q个HDMI信号源的连接状态变化,并在监听到任一信号源的连接状态的变化事件时,通过消息处理模块203向数据管理模块202发送状态变更消息,该状态变更消息中包括HDMI的标识信息和该HDMI变化后的连接状态。
在一些实施例中,数据管理模块202接收到状态变更消息,可以对状态变更消息指示的HDMI的mIsConnected状态值进行改写,以及根据每个HDMI当前的连接状态,匹配并设置每个HDMI的mVisible状态值,从而更新信号源列表,并通过消息处理模块203将更新后的信号源列表转发给View管理模块204。
在一些实施例中,View管理模块204根据更新后的信号源列表,对信号源列表页面进行刷新,若mVisible=true的信号源发生变化,View管理模块204还需要重置选择器53,指示SourceManager切换信号源,并控制第一播放窗口521显示切换后的信号源的视频信号。这样,第一应用可以根据信号源连接状态的变化,动态匹配和切换信号源,刷新信号源列表页面和第一播放窗口521显示的信号源数据,无需用户手动切换信号源,提升了信号源切换效率和人机交互效率。
在一些实施例中,数据管理模块202可以根据信号源列表中每个HDMI(包括当前信号源)的连接状态,匹配目标信号源,并将目标信号源的mVisible设置为true,将信号源列表中除目标信号源之外的其他信号源的mVisible设置为false,以使View管理模块204根据更新后的信号源列表,在信号源列表页面中控制选择器53选中目标信号源映射的信号源选项,以及在第一播放窗口521显示目标信号源传输的视频信号。
在一些实施例中,以HDMI3为例,若用户将信号源设备3的线缆与HDMI3接口正确连接,并且将信号源设备3开启,则HDMI3变为已连接状态。信号源管理模块201可以通过SourceManager的onInputSourceSignalDetected(信号源检测接口),监听到HDMI3切换到已连接状态,可以通过消息处理模块203向数据管理模块202发送状态变更消息,以向数据管理模块202指示HDMI3由未连接状态变更为已连接状态,这样数据管理模块202可以在信号源列表中将HDMI3的mIsConnected状态值由false改写为true,从而更新信号源列表。
在一些实施例中,若用户拔掉HDMI3连接的线缆,或者关闭信号源设备3,则HDMI3断开连接。信号源管理模块201通过SourceManager的onInputSourceSignalDetected,监听到HDMI3切换到未连接状态,可以通过消息处理模块203向数据管理模块202发送状态变更消息,以向数据管理模块202指示HDMI3由已连接状态变更为未连接状态,这样数据管理模块202可以在信号源列表中将HDMI3的mIsConnected状态值由true改写为false,从而更新信号源列表。
在一些实施例中,用户在观看某一信号源之前,例如HDMI2,可以在适配的信号源设备2的线缆正确连接HDMI2接口时,启动信号源设备2。因此,新接入的信号源一般是用户想要观看的,常规方式是显示设备200不主动切换信号源,而是由用户手动切换至新接入的第一信号源,例如:用户可以按压控制装置100上的用于快捷启动第一信号源的按键;或者,用户可以通过控制装置100上的方向键和确认键的组合操作,在信号源列表页面中选中期望切换到的信号源。这样,需要用户手动切换信号源,增加用户操作的输入,用户体验较差。
在一些实施例中,在信号源列表中至少有一个新接入的第一信号源时,数据管理模块202可以从第一信号源中选择一个目标信号源,将目标信号源的mVisible设置为true,将信号源列表中除目标信号源之外的其他信号源的mVisible设置为false,以使View管理模块204根据更新后的信号源列表,在信号源列表页面中控制选择器53选中目标信号源映射的信号源选项,以及在第一播放窗口521显示目标信号源传输的视频信号。
在一些实施例中,假设新接入K个第一信号源,1≤K≤Q,数据管理模块202可以分别获取K个第一信号源的接入时间Ti,其中i表示第一信号源的序号,1≤i≤K。数据管理模块202可以计算当前时间Tnow与接入时间Ti之间的时间差ΔTi,ΔTi用于表征第一信号源接入时间的早晚。ΔTi越大表明第一信号源接入越早(即越远离当前时间),ΔTi越小表明第一信号源接入越晚(即越接近于当前时间)。
在一些实施例中,数据管理模块202可以获取最小时间差ΔTmin,即ΔTmin=Min{ΔT1,…,ΔTi,…,ΔTK},并将最小时间差对应的第一信号源确定为目标信号源。假设显示设备200具有HDMI1、HDMI2和HDMI3,原信号源列表的一种示例为:
[{mInputName=HDMI1,
mIsConnected=false,
mInputSourceId=,
mVisible=true,
mSourceType=…},
{mInputName=HDMI2,
mIsConnected=false,
mInputSourceId=,
mVisible=false,
mSourceType=…},
{mInputName=HDMI3,
mIsConnected=false,
mInputSourceId=,
mVisible=false,
mSourceType=…}]
原信号源列表中HDMI1、HDMI2和HDMI3均处于未连接状态,当前信号源为HDMI1,View管理模块204根据该原信号源列表,显示的应用界面50可以参照图9的示例。假设显示设备新接入HDMI1和HDMI3,数据管理模块202计算当前时间Tnow与HDMI1的接入时间T1的时间差为ΔT1,当前时间Tnow与HDMI3的接入时间T2的时间差为ΔT2,比较ΔT1和ΔT2的大小。
在一些实施例中,若ΔT1小于ΔT2,则ΔTmin为ΔT1,ΔT1对应的第一信号源为HDMI1,则数据管理模块202确定目标信号源为HDMI1,将HDMI1和HDMI3的mIsConnected状态值都改写为true,由于HDMI1的原mVisible状态值就是true,因此保持HDMI1的mVisible状态值不变,并且HDMI2和HDMI3的mVisible状态值也保持false,从而完成信号源列表的刷新。这样,可以参照图13的示例,View管理模块204根据该更新后的信号源列表,将HDMI1和HDMI3映射的信号源选项调整为呈现已连接状态(例如:从置灰转为高亮显示),使选择器53仍然选中HDMI1映射的信号源选项1,信号源管理模块201不控制SourceManager切换Source,View管理模块204在第二区域52显示HDMI1接收到的视频信号。
在一些实施例中,若ΔT1大于ΔT2,则ΔTmin为ΔT2,ΔT2对应的第一信号源为HDMI3,则数据管理模块202确定目标信号源为HDMI3,将HDMI1和HDMI3的mIsConnected状态值都改写为true,将HDMI1的mVisible状态值改写为false,将HDMI3的mVisible状态值改写为true,刷新后的信号源列表的一种示例如下:
[{mInputName=HDMI1,
mIsConnected=true,
mInputSourceId=,
mVisible=false,
mSourceType=…},
{mInputName=HDMI2,
mIsConnected=false,
mInputSourceId=,
mVisible=false,
mSourceType=…},
{mInputName=HDMI3,
mIsConnected=true,
mInputSourceId=,
mVisible=true,
mSourceType=…}]
这样,View管理模块204根据该更新后的信号源列表,将HDMI1和HDMI3映射的信号源选项调整为呈现已连接状态(例如:从置灰转为高亮显示),重置选择器53,使选择器53选中HDMI3映射的信号源选项3,信号源管理模块201控制SourceManager将Source切换为HDMI3,在HDMI3信号通道导通时,View管理模块204在第二区域52显示HDMI3接收到的视频信号,从而刷新应用界面50。
在一些实施例中,在第一子列表中有K个新接入的第一信号源时,数据管理模块202可以分别获取K个第一信号源在第一子列表中的第一索引序号,例如HDMI1的第一索引序号为1,HDMI2的第一索引序号为2。数据管理模块202可以获取最小索引序号Jmin,即Jmin=Min{J1,…,Ji,…,JK},其中,Ji表示数据管理模块202为第i个第一信号源设置的第一索引序号。数据管理模块202可以将Jmin对应的第一信号源确定为目标信号源。假设显示设备新接入HDMI1和HDMI3,即K=2,设J1为HDMI1的第一索引序号,J2为HDMI3的第一索引序号,J1=1,J2=3,则Jmin为J1,J1对应的第一信号源为HDMI1。因此,数据管理模块202可以确定目标信号源为HDMI1,将HDMI1和HDMI3的mIsConnected状态值改写为true,HDMI1、HDMI2和HDMI3的mVisible状态值保持不变,从而完成信号源列表的刷新。View管理模块204根据该更新后的信号源列表,对应用界面50进行刷新后呈现图13示例的显示效果。
在一些实施例中,数据管理模块202也可以获取最大索引序号Jmax,即Jmax=Max{J1,…,Ji,…,JK},并将Jmax对应的第一信号源确定为目标信号源。继续参照上面的示例,J1=1,J2=3,则Jmax为J2,J2对应的第一信号源为HDMI3。因此,数据管理模块202可以确定目标信号源为HDMI3,将HDMI1和HDMI3的mIsConnected状态值改写为true,将HDMI1的mVisible状态值改写为false,将HDMI3的mVisible状态值改写为true,从而完成信号源列表的刷新,View管理模块204根据该更新后的信号源列表刷新应用界面50。
在一些实施例中,若当前信号源处于未连接状态,并且新接入的K个第一信号源中包含当前信号源,则数据管理模块202可以将当前信号源确定为目标信号源,相当于不切换信号源。参照图9的示例,原信号源列表中HDMI1、HDMI2和HDMI3都处于未连接状态,当前信号源为HDMI1(即HDMI1的mVisible=true)。若HDMI1和HDMI2新接入信号源,由于第一信号源中包含HDMI1,数据管理模块202确定HDMI1为目标信号源,将HDMI1和HDMI2的mIsConnected状态值改写为true,使HDMI1的mVisible状态值保持为true,HDMI2和HDMI3的mVisible状态值保持为false。这样,参照图12的示例,View管理模块204根据该更新后的信号源列表,将HDMI1和HDMI2映射的信号源选项调整为呈现已连接状态(例如:从置灰转为高亮显示,或者设置连接状态信息),使选择器53仍然选中HDMI1映射的信号源选项1,信号源管理模块201不控制SourceManager切换信号源,由于HDMI1可以接收到有效信号,View管理模块204在第二区域52取消显示第二提示信息521b,并显示HDMI1接收到的视频信号。
在一些实施例中,第一信号源可以不同时接入,而是逐个接入,相当于K=1,例如HDMI2先接入,之后HDMI1接入。对于第一信号源逐个接入的场景,数据管理模块202无需比较第一信号源的接入时间早晚或第一索引序号大小,而是在信号源管理模块201每发送一个状态变更消息时,将状态变更消息指示的一个第一信号源确定为目标信号源,并将该目标信号源的mIsConnected和mVisible都改写为true,从而在每次新接入一个信号源时,信号源管理模块201自动控制SourceManager将Source切换至目标信号源,使View管理模块204刷新信号源列表页面,重置选择器53,以及在第二区域52显示最近接入的目标信号源传输的视频信号,实现根据信号源接入状态实时刷新应用界面50。
举例来说,参见图9,原信号源列表中HDMI1、HDMI2和HDMI3都处于未连接状态,HDMI1的mVisible=true。数据管理模块202在获取到指示HDMI2已接入的状态变更消息时,将HDMI2的mIsConnected和mVisible都改写为true,将HDMI1的mVisible改写为false。这样,参见图14,View管理模块204根据该更新后的信号源列表,将HDMI2映射的信号源选项2调整为呈现已连接状态,重置选择器53,使选择器53切换为选中信号源选项2,在信号源管理模块201控制SourceManager将Source切换至HDMI2后,View管理模块204在第二区域52显示HDMI2接收的视频信号。
之后,若数据管理模块202又获取到指示HDMI1已接入的状态变更消息,将HDMI1的mIsConnected和mVisible都改写为true,将HDMI2的mVisible改写为false。这样,参见图12,View管理模块204根据该更新后的信号源列表,将HDMI1映射的信号源选项1调整为呈现已连接状态,重置选择器53,使选择器53切换为选中信号源选项1,在信号源管理模块201控制SourceManager将Source切换至HDMI1后,View管理模块204在第二区域52不再显示HDMI2的视频信号,以及显示HDMI1接收的视频信号。
在一些实施例中,在第一子列表至少有一个第二信号源断开连接时,数据管理模块202可以判断第二信号源是否包含当前信号源。假设有S个第二信号源断开连接,1≤S≤Q,若S个第二信号源构成的集合中不包含当前信号源,表明当前信号源仍处于已连接状态,则数据管理模块202可以将当前信号源确定为目标信号源,相当于不切换信号源。参照图10的示例,原信号源列表中HDMI1、HDMI2和HDMI3都处于已连接状态,当前信号源为HDMI1(即HDMI1的mVisible=true),若数据管理模块202接收到指示HDMI3断开连接的状态变更消息,将HDMI3的mIsConnected改写为false,使HDMI1的mVisible保持为true。这样,参照图12的示例,View管理模块204根据该更新后的信号源列表,将HDMI3映射的信号源选项3调整为呈现未连接状态(例如置灰),不重置选择器53,使选择器53仍然选中HDMI1映射的信号源选项1,第二区域52继续显示HDMI1接收的视频信号。
又例如,参照图8的示例,原信号源列表中HDMI1处于未连接状态,HDMI2和HDMI3处于已连接状态,当前信号源为HDMI1,若数据管理模块202接收到指示HDMI2和HDMI3断开连接的状态变更消息,将HDMI2和HDMI3的mIsConnected都改写为false,由于断开连接的第二信号源不包括HDMI1,则使HDMI1的mVisible保持为true。这样,参照图9的示例,View管理模块204根据该更新后的信号源列表,将HDMI2和HDMI3映射的信号源选项调整为呈现未连接状态(例如置灰),不重置选择器53,使选择器53仍然选中HDMI1映射的信号源选项1,信号源管理模块201不控制SourceManager切换信号源,由于HDMI1未接入信号,并且HDMI2和HDMI3也处于未连接状态,View管理模块204可以在第二区域52显示第二提示信息521b。
在一些实施例中,若S个第二信号源构成的集合中包含当前信号源,即当前信号源断开连接,则数据管理模块202可仍然将当前信号源确定为目标信号源,相当于不切换信号源。参照图10的示例,原信号源列表中HDMI1、HDMI2和HDMI3都处于已连接状态,当前信号源为HDMI1,若数据管理模块202接收到指示HDMI1断开连接的状态变更消息,将HDMI1的mIsConnected改写为false,使HDMI1的mVisible保持为true。这样,参照图8的示例,View管理模块204根据该更新后的信号源列表,将HDMI1映射的信号源选项1调整为呈现未连接状态(例如置灰),不重置选择器53,使选择器53仍然选中信号源选项1,信号源管理模块201不控制SourceManager切换信号源,由于HDMI1未接入信号,View管理模块204可以在第二区域52显示第一提示信息521a。
在一些实施例中,若S个第二信号源构成的集合中包含当前信号源,即当前信号源断开连接,则数据管理模块202可以获取已接入信号源集合,已接入信号源集合包含信号源列表中当前处于已连接状态(即mIsConnected=true)的信号源,并判断已接入信号源集合是否为空集。
在一些实施例中,若已接入信号源集合为空集,表明显示设备200具有的Q个信号源接口都处于未连接状态,则数据管理模块202可以将当前信号源确定为目标信号源,相当于不切换信号源。参照图14的示例,原信号源列表中仅HDMI2处于已连接状态,HDMI1和HDMI3都处于未连接状态,当前信号源为HDMI2,若数据管理模块202接收到指示HDMI2断开连接的状态变更消息,将HDMI2的mIsConnected改写为false,使HDMI2的mVisible保持为true。这样,适应性参照图9,View管理模块204根据该更新后的信号源列表,将HDMI2映射的信号源选项2调整为呈现未连接状态(例如置灰),与图9示例不同的是,View管理模块204不重置选择器53,使选择器53仍然选中信号源选项2,信号源管理模块201不控制SourceManager切换信号源,View管理模块204可以在第二区域52显示第二提示信息521b。
在一些实施例中,若已接入信号源集合为空集,表明显示设备200具有的Q个信号源接口都处于未连接状态,则数据管理模块202可以按照预设规则,从信号源列表中选择目标信号源,例如将信号源列表中第一索引序号最大或最小的信号源确定为目标信号源。参照图14的示例,原信号源列表中仅HDMI2处于已连接状态,HDMI1和HDMI3都处于未连接状态,当前信号源为HDMI2。若数据管理模块202接收到指示HDMI2断开连接的状态变更消息,先将HDMI2的mIsConnected改写为false,这样HDMI1、HDMI2和HDMI3都处于未连接状态,已接入信号源集合为空集。若采用索引序号最小的预设规则,由于信号源列表中HDMI1、HDMI2和HDMI3中第一索引序号最小的是HDMI1,则数据管理模块202可以将HDMI1确定为目标信号源,将HDMI2的mVisible改写为false,将HDMI1的mVisible改写为true。这样,参照图9,View管理模块204根据该更新后的信号源列表,将HDMI2映射的信号源选项2调整为呈现未连接状态(例如置灰),并重置选择器53,使选择器53切换为选中HDMI1映射的信号源选项1,信号源管理模块201控制SourceManager将Source切换为HDMI1,由于HDMI1、HDMI2和HDMI3都无法接收到视频信号,因此View管理模块204可以在第二区域52显示第二提示信息521b。在一些实施例中,若采用索引序号最大的预设规则,由于信号源列表中HDMI1、HDMI2和HDMI3中第一索引序号最大的是HDMI3,则数据管理模块202可以将HDMI3确定为目标信号源,将HDMI2的mVisible改写为false,将HDMI3的mVisible改写为true。这样,适应性参照图9,View管理模块204根据该更新后的信号源列表,对应用界面50进行刷新,与图9示例呈现的应用界面不同的是View管理模块204控制选择器53切换为选中HDMI3映射的信号源选项3,信号源管理模块201控制SourceManager将Source切换为HDMI3。
在一些实施例中,若已接入信号源集合为非空集合,则数据管理模块202可以按照预设规则,从已接入信号源集合中选择目标信号源,例如将已接入信号源集合中第一索引序号最大或最小的信号源确定为目标信号源。参照图10的示例,原信号源列表中HDMI1、HDMI2和HDMI3都处于已连接状态,当前信号源为HDMI1。若数据管理模块202接收到指示HDMI1断开连接的状态变更消息,先将HDMI1的mIsConnected改写为false,由此获取的已接入信号源集合为{HDMI2,HDMI3}。若采用索引序号最小的预设规则,由于{HDMI2,HDMI3}中第一索引序号最小的是HDMI2,数据管理模块202可以将HDMI2确定为目标信号源,HDMI1的mVisible改写为false,将HDMI2的mVisible改写为true。这样,参照图11,View管理模块204根据该更新后的信号源列表,将HDMI1映射的信号源选项1调整为呈现未连接状态(例如置灰),并重置选择器53,使选择器53切换为选中HDMI2映射的信号源选项2,信号源管理模块201控制SourceManager将Source切换为HDMI2,以及在第二区域52显示HDMI2接收的视频信号。这样,在当前信号源断开连接时,第一应用可以自动切换到有信号接入的信号源去显示,避免应用界面50无信号源显示的问题。
在一些实施例中,若采用索引序号最大的预设规则,由于{HDMI2,HDMI3}中第一索引序号最大的是HDMI3,数据管理模块202可以将HDMI3确定为目标信号源,HDMI1的mVisible改写为false,将HDMI3的mVisible改写为true。这样,适应性参照图11,View管理模块204根据该更新后的信号源列表,对应用界面进行刷新,与图11呈现的应用界面不同的是,View管理模块204控制选择器53切换为选中HDMI3映射的信号源选项3,在信号源管理模块201控制SourceManager将Source切换为HDMI3后,View管理模块204在第二区域52显示HDMI3接收的视频信号。
在任一信号源新接入或断开连接时,数据管理模块202可以根据上述实施例示例的匹配方案,动态自适应匹配目标信号源,并调整相关信号源映射的mIsConnected和/或mVisible的状态值,以使View管理模块204根据更新后的信号源列表,精准刷新应用界面,控制选择器53选中目标信号源映射的信号源选项,以及控制第二区域52显示目标信号源的视频信号,完成当前信号源的自动匹配、切换和显示。这样,在信号源列表发生更新时,根据信号源连接状态的变化,针对用户可能的观看偏好,自动匹配和切换信号源,无需用户手动切换信号源,从而减少用户手动操作,提高人机交互效率,增进第一应用的功能。
图15为本申请一些实施例提供的第一应用的应用界面的状态变化示意图一。参见图15的视图(a),View管理模块204可以在第一播放窗口521设置第一模式切换控件521c。在用户点击第一模式切换控件521c时,参见图15的视图(b),View管理模块204以全屏模式显示当前信号源的视频信号。在一些实施例中,View管理模块204可以对第二区域52进行尺寸调整,例如将第一播放窗口521放大为全屏窗口,从而将当前信号源(mVisible=true)由窗口显示模式切换为全屏显示模式。
在一些实施例中,View管理模块204可以生成两个选择器,分别为第一选择器53a和第二选择器53b。第一选择器53a可以在第一区域51移动,用于在信号源列表页面中选择或切换信号源。第二选择器53b可以在第二区域52移动,用于选择第一播放窗口521本身,或选择第一播放窗口521中包含的控件,该控件包括但不限于:第一模式切换控件521c、暂停/播放控件、倍速调节控件、切换信号源控件521d等。
在一些实施例中,用户可以通过按击控制装置100上的方向键以在第一选择器53a和第二选择器53b之间切换当前选择器。参见图15的视图(a),在第二区域52和第一区域51为左右排布时,View管理模块204响应于用户点击遥控器的左键,可以将当前选择器切换为第二选择器53b,在第二选择器53b选中第一播放窗口521本身或第一模式切换控件521c时,View管理模块204响应于用户点击控制装置上的OK按键,以全屏显示模式播放当前信号源的视频信号。
在一些实施例中,参见图15示例的区域排布,View管理模块204响应于用户点击遥控器的右键,可以将当前选择器切换为第一选择器53a,以便用户在第一区域51的信号源列表页面中切换信号源。
在一些实施例中,参见图15的视图(c)和(d),在第二选择器53b选中第一播放窗口521中的切换信号源控件521d时,数据管理模块202查询信号源列表中排序在当前信号源之后的处于已连接状态的最临近信号源,并将当信号源的mVisible状态值改写为false,将该最临近信号源的mVisible状态值改写为true,从而更新信号源列表,以使View管理模块204根据该更新后的信号源列表刷新应用界面50。
参见图15的视图(c)和(d)的示例,显示设备200包括HDMI1、HDMI2、HDMI3和HDMI4,其中HDMI1、HDMI3和HDMI4处于已连接状态,HDMI2处于未连接状态,当前信号源为HDMI1,在用户触发第一播放窗口521中的切换信号源控件521d时,数据管理模块202查询到信号源列表中排序在HDMI1之后的下一个已连接的信号源为HDMI3,则将HDMI1的mVisible由true改写为false,将HDMI3的mVisible由false改写为true。这样,View管理模块204重置选择器,使选择器53选中HDMI3,信号源管理模块201控制SourceManager将Source切换为HDMI3,使第一播放窗口521显示HDMI3接收的视频信号。
在一些实施例中,View管理模块204可以只生成一个选择器53,用户可以通过操控控制装置100上的方向键,调节选择器53在整体应用界面50中的位置。
在一些实施例中,在切换到全屏显示模式之后,用户可以输入第一预设操作来退出全屏显示模式,切换回图5~图14示例的窗口显示模式。第一预设操作包括但不限于:触发控制装置上的返回键,点击全屏窗口中的第一模式切换控件521c等。View管理模块204响应于该第一预设操作,退出全屏模式,例如可以将全屏窗口缩小为第一播放窗口521,使信号源显示模式由图15的视图(b)转变为视图(a)的效果。这样,用户可以根据观看偏好和习惯,调整当前信号源的显示模式,提升用户体验。
在一些实施例中,为便于用户在全屏播放当前信号源的场景下,可以查看信号源列表页面,View管理模块204在切换到全屏显示模式之后,参见图15的视图(b),以浮层形式,在全屏播放界面的上层悬浮显示信号源列表页面。这样,用户既可以全屏观看当前信号源,还能同步查看信号源列表页面,以及基于信号源列表页面切换信号源,并且信号源列表页面不影响当前信号源的播放。
在一些实施例中,用户可以执行第二预设操作以隐藏信号源列表页面,第二预设操作不限定,例如第二预设操作为触发控制装置的第一预设按键或点击应用界面中设置的隐藏列表控件等。在第一应用接收到用户输入的第二预设操作时,可以控制View管理模块204关闭第一区域51,隐藏信号源列表页面,并自动切换到以全屏显示模式显示当前信号源的视频信号。这样,在用户隐藏信号源列表时,可以自动转换为以全屏模式显示当前信号源,提升用户观看体验。其中,信号源列表页面处于隐藏状态时,若数据管理模块202更新信号源列表,则View管理模块204仍可以同步刷新信号源列表页面,只是此时信号源列表页面的显示和刷新过程对用户不可见。
在一些实施例中,在信号源列表被隐藏之后,用户可以执行第三预设操作以调出信号源列表,第三预设操作不限定,例如第三预设操作为触发控制装置的第二预设按键或点击应用界面中设置的显示列表控件等。在第一应用接收到用户输入的第三预设操作时,可以控制View管理模块204退出全屏显示模式,在应用界面中显示第一区域51,第一区域51中显示信号源列表页面,以及在第二区域52显示mVisible=true的HDMI接收的视频信号,第一区域51和非全屏的第二区域52按照应用界面的预设布局进行展示。这样,在用户隐藏后重新调出信号源列表时,自动退出信号源的全屏显示模式,并转换为第一区域51和第二区域52同步展示的窗口显示模式。
在一些实施例中,在第一应用接收到用户输入的第三预设操作时,View管理模块204可以不退出全屏显示模式,并以浮层形式,在全屏播放界面的上层悬浮显示信号源列表页面。这样,在用户隐藏后重新调出信号源列表时,可以不退出全屏模式,使得用户在全屏观看当前信号源时,同步查看信号源列表页面。
图16为本申请一些实施例提供的第一应用的应用界面示意图四。参见图16,View管理模块204还可在信号源列表页面中对呈现已连接状态的信号源选项设置浏览窗口514。浏览窗口514用于向用户展示处于已连接状态的信号源传输的视频信号,浏览窗口514可以设置为缩略窗(即小窗口)模式,以减少占用应用界面50的显示区域。
在一些实施例中,View管理模块204可以在浏览窗口514中显示信号源的内容预览图。内容预览图可以是从信号源获取的任意一帧内容图像,这样用户可以通过该图像预览信号源的内容,若用户对该信号源的内容感兴趣,则可将选择器53移动至对应的信号源,以使第二区域52显示该信号源的视频信号。
在一些实施例中,View管理模块204可以在浏览窗口514中显示信号源的实时视频画面。这样,用户可以通过浏览窗口514,以小窗模式观看任一已接入的信号源的实时内容,也可通过浏览窗口514查找感兴趣的视频信号并切换至对应的信号源。
在一些实施例中,若显示设备支持多Source以多窗口同步显示,即支持多路HDMI信号源同步播放,用户可以执行第四预设操作以启用多窗口模式,第四预设操作不限定,例如第四预设操作为触发控制装置的第三预设按键或应用界面中设置的多窗口模式控件等。第一应用在接收到用户输入的第四预设操作时,可以控制数据管理模块202获取已接入信号源集合,并将已接入信号源集合包括的N个处于已连接状态的HDMI的mVisible设置为true,将处于未连接状态的HDMI的mVisible设置为false。
在一些实施例中,数据管理模块202还可设置mWindowShowMode属性,mWindowShowMode用于指示在运行多窗口模式时已接入的信号源的窗口尺寸模式。如果mWindowShowMode=LargeWindowShowMode,表明HDMI接收的视频信号是在第一播放窗口521中显示,该HDMI为被选择器53选中的当前信号源;如果mWindowShowMode=SmallWindowShowMode,表明HDMI接收的视频信号是在第二播放窗口显示,该HDMI未被选择器53选中。其中,第二播放窗口的尺寸小于第一播放窗口521的尺寸,即SmallWindowShowMode对应小窗模式,LargeWindowShowMode对应大窗模式。
在一些实施例中,若第一HDMI集合不包括当前信号源,则数据管理模块202设置当前信号源的mVisible=true并且mWindowShowMode=LargeWindowShowMode,以及,设置第一HDMI集合中包括的信号源的Visible=true并且mWindowShowMode=SmallWindowShowMode。
在一些实施例中,假设在单窗口模式下当前信号源为HDMI1,HDMI1处于未连接状态,第一HDMI集合为{HDMI2,HDMI3},则单窗口模式下的信号源列表的一种示例性结构为:
[{mInputName=HDMI1,
mIsConnected=false,
mInputSourceId=,
mVisible=true,
mSourceType=…},
{mInputName=HDMI2,
mIsConnected=true,
mInputSourceId=,
mVisible=false,
mSourceType=…},
{mInputName=HDMI3,
mIsConnected=true,
mInputSourceId=,
mVisible=false,
mSourceType=…}]
在用户启动多窗口显示模式后,不切换当前信号源,则设置HDMI1的mVisible=true,并且HDMI1的mWindowShowMode=LargeWindowShowMode,以及设置HDMI2和HDMI3的Visible=true,并且HDMI2和HDMI3的mWindowShowMode=SmallWindowShowMode。则更新后的信号源列表的一种结构示例如下:
[{mInputName=HDMI1,
mIsConnected=false,
mInputSourceId=,
mVisible=true,
mWindowShowMode=LargeWindowShowMode,
mSourceType=…},
{mInputName=HDMI2,
mIsConnected=true,
mInputSourceId=,
mVisible=true,
mWindowShowMode=SmallWindowShowMode,
mSourceType=…},
{mInputName=HDMI3,
mIsConnected=true,
mInputSourceId=,
mVisible=true,
mWindowShowMode=SmallWindowShowMode,
mSourceType=…}]
图17为本申请一些实施例提供的第一应用的应用界面示意图五。基于上述信号源列表的变化,由于已接入信号源集合不包含HDMI1,HDMI1未接入信号,参见图17,View管理模块204可以在第一播放窗口521显示第一提示信息521a,以及在第二区域52的上层显示N个第二播放窗口523,其中第二播放窗口523用于以小窗模式显示HDMI接入的信号源所传输的视频信号。图17示例中HDMI2和HDMI3都处于已连接状态,即N=2,则在第二区域52的上层显示2个第二播放窗口523,分别映射于HDMI2和HDMI3。
这样,第二区域52呈现为多窗口显示形态,包括:1个第一播放窗口521(该场景中第一播放窗口521显示第一提示信息521a),以及N个第二播放窗口523,第二播放窗口可以采用缩略窗(即小窗口)形式进行显示。第二播放窗口523的尺寸小于第一播放窗口521的尺寸。
参见图17,假设显示设备200配置有HDMI1、HDMI2和HDMI3,第一HDMI集合为{HDMI2,HDMI3},View管理模块204可以控制选择器53选中当前信号源HDMI1,在第一播放窗口521中显示第一提示信息521a,以提示HDMI1无信号接入,以及,可以在第二区域52的上层显示2个第二播放窗口523,并在2个第二播放窗口523中分别显示HDMI2和HDMI3接入的信号源的视频信号。这样,用户可以获知当前焦点所指向的HDMI1未接入信号源,还可通过小窗模式观看到已接入信号源的HDMI2和HDMI3的信号播放画面。
在一些实施例中,数据管理模块202响应于用户输入的第四预设操作,在获取第一HDMI集合之后,若第一HDMI集合包括当前信号源,则设置当前信号源的mVisible=true并且mWindowShowMode=LargeWindowShowMode,设置第一HDMI集合中其他N-1个非当前信号源的Visible=true并且mWindowShowMode=SmallWindowShowMode。
在一些实施例中,假设在单窗口模式下当前信号源为HDMI1,第一HDMI集合为{HDMI1,HDMI2},即第一HDMI集合包括当前信号源HDMI1,这样在用户输入第四预设操作以启动多窗口模式后,数据管理模块202可以设置HDMI1的mWindowShowMode=LargeWindowShowMode,设置HDMI2的mVisible=true,以及设置HDMI2的mWindowShowMode=SmallWindowShowMode,从而更新信号源列表。
图18为本申请一些实施例提供的第一应用的应用界面示意图六,参见图18,View管理模块204基于该更新后的信号源列表,不重置选择器53,使选择器53保持选中HDMI1映射的信号源选项1,在第一播放窗口521显示HDMI1接收的视频信号,以及在第二区域52的上层显示N-1个第二播放窗口523,第二播放窗口523可以浮层形式进行展示。图18的示例中N=2,则View管理模块204显示一个第二播放窗口523,第二播放窗口523以小窗模式显示HDMI2接收的视频信号。这样,用户可以通过大窗模式观看当前HDMI(如HDMI1)的信号源内容,并通过小窗模式观看到其他已接入的HDMI(如HDMI2)的信号源内容。
在一些实施例中,参见图17或图18,View管理模块204可以在第二播放窗口523中设置第二模式切换控件523a。第一应用在接收到用户点击图18示例中HDMI2对应的第二播放窗口523中的第二模式切换控件523a的操作时,可以控制数据管理模块202更新信号源列表,一种更新后的信号源列表的示例一如下:
[{mInputName=HDMI1,
mIsConnected=true,
mInputSourceId=,
mVisible=false,
mSourceType=…},
{mInputName=HDMI2,
mIsConnected=true,
mInputSourceId=,
mVisible=true,
mSourceType=…},
{mInputName=HDMI3,
mIsConnected=false,
mInputSourceId=,
mVisible=false,
mSourceType=…}]
该信号源列表的示例一中,数据管理模块202将HDMI1的mVisible改写为false,HDMI2的mVisible保持true,以及取消HDMI1和HDMI2的mWindowShowMode属性设置,即相当于HDMI2信号源切换到全屏后自动退出多窗口模式。图19为本申请一些实施例提供的基于图18的应用界面的状态变化示意图,参见图19,View管理模块204根据更新后的信号源列表,可以隐藏原第一播放窗口521,使HDMI1的信号源内容不可见,以及控制第二播放窗口523以全屏模式显示HDMI2的信号源内容(即将第二播放窗口523放大为全屏窗口),控制选择器53选中HDMI2映射的信号源选项2。用户点击第二播放窗口523中的第二模式切换控件523a时,相当于执行了一种切换信号源的操作,这样在将HDMI2由小窗模式切换到全屏显示模式时,View管理模块204可以同步控制选择器53的位移,使得选择器53的定位与全屏显示的信号源类别相一致。
在一些实施例中,在用户点击图18示例中的第二播放窗口523中的第二模式切换控件523a时,第一应用也可不退出多窗口模式,则数据管理模块202更新后的信号源列表的一种示例二如下:
[{mInputName=HDMI1,
mIsConnected=true,
mInputSourceId=,
mVisible=true,
mWindowShowMode=SmallWindowShowMode,
mSourceType=…},
{mInputName=HDMI2,
mIsConnected=true,
mInputSourceId=,
mVisible=true,
mWindowShowMode=FullScreenMode,
mSourceType=…},
{mInputName=HDMI3,
mIsConnected=false,
mInputSourceId=,
mVisible=false,
mSourceType=…}]
在更新后的信号源列表的示例二中,数据管理模块202将HDMI2的mWindowShowMode改写为FullScreenMode,FullScreenMode指示全屏显示模式,以及,将HDMI1的mWindowShowMode改写为SmallWindowShowMode。这样,View管理模块204根据该更新后的信号源列表,全屏显示HDMI2接收的视频信号(例如:将第二播放窗口523放大为全屏窗口),控制选择器53切换为选中HDMI2映射的信号源选项,以及在全屏播放界面的上层以小窗模式显示HDMI1接收的视频信号。这样,用户可以一边全屏观看HDMI2的信号源内容,一边小窗浏览HDMI1的信号源内容。
需要说明的是,第二播放窗口523的显示位置不限定,可以展示于第二区域52内部,也可展示于第二区域52外部的其他位置,例如展示于留白区域、第一区域51、或者屏幕任意的角落区域等。
在一些实施例中,用户可以执行第五预设操作以退出多窗口模式,切换到单窗口模式,第五预设操作不限定,例如第五预设操作为触发控制装置的第四预设按键或退出多窗口模式控件等。第一应用接收到用户输入的第五预设操作,可以控制View管理模块204关闭应用界面50展示的全部第二播放窗口523,仅保留1个第一播放窗口521以显示当前信号源的视频信号,从而恢复到单窗口模式。
在一些实施例中,View管理模块对应用界面50的布局不限定,例如:第一区域51和第二区域52可以为横向(左右)排布,或者第一区域51和第二区域52为纵向(上下)排布,或者第一区域51和第二区域52为对角排布,第一区域51和第二区域52为层叠设置等。
在一些实施例中,在不同的布局形态下,View管理模块可以根据屏幕分辨率和HDMI信号的宽高比等参数,设置第一区域51和第二区域52的尺寸和显示位置,其中尺寸包括区域的宽高和高度,显示位置可以是区域上基准点的位置坐标,基准点包括但不限于区域中心点、区域任一顶点、边框线的中点等。其中,屏幕分辨率是显示设备200固有的常量参数,HDMI信号的宽高比可以是从信号源获取的变量参数。这样,显示设备200可以根据不同信号源,自适应分配第一区域51和第二区域52在应用界面50中的区域占比,支持基于信号源场景对第一区域51和第二区域52进行缩放。
在一些实施例中,View管理模块204可以设置并存储界面布局列表,界面布局列表包括至少一种布局模板的配置信息,该配置信息包括布局版式与区域分配信息的映射关系。其中,布局版式包括第一区域51和第二区域52之间的排布关系,例如:第二区域52与第一区域51按序左右展示,即第一区域51展示于应用界面50的左侧,第二区域52展示于应用界面50的右侧。区域分配信息包括第一区域51的尺寸和显示位置,以及第二区域52的尺寸和显示位置。区域分配信息包含的参数可以是基于布局版式设定的常量,这样布局版式与区域分配信息的映射关系构建了一种布局模板,显示设备200在启动第一应用时,可以加载当前设置的布局模板以呈现应用界面50。
图20为本申请一些实施例提供的第一应用的应用界面示意图七。参见图20的视图(a),View管理模块204可以在应用界面50中设置布局切换控件54,布局切换控件54的显示位置不限定,例如设置在第一区域51的底部。第一应用接收到用户点击布局切换控件54的操作,如图20的视图(b)所示,可以控制View管理模块204在应用界面50上显示布局列表页面191,布局列表页面191包括显示设备200预设的至少一种布局版式的预览图191a。
在一些实施例中,参见图20的视图(b),一种示例性的布局列表页面191包括三种布局版式的预览图191a,分别为:左右排版的预览图一,上下排版的预览图二,层叠排版的预览图三。用户可以根据观看偏好和习惯,选择任意一种布局版式,第一应用接收到用户选定目标布局版式的操作(图20示例中选定左右布局版式),可以控制View管理模块204按照目标布局版式显示应用界面50。View管理模块204在按照目标布局版式显示应用界面50时,可以调用目标布局版式对应的布局模板,或者根据屏幕分辨率和视频信号的宽高比等参数,动态设置第一区域51和第二区域52的尺寸和显示位置。
以上实施例主要针对显示设备未连接投屏设备的场景,详细说明了第一应用的软件架构以及对信号源的显示控制。在一些实施例中,显示设备200若支持投屏协议,则可作为Sink端接收电子设备300(Source端)传输的投屏数据,这样投屏设备也可以作为一种使显示设备获取数据的信号源。其中,投屏设备包括但不限于:智能手机、平板、电脑等具备投屏功能的终端设备。投屏协议包括但不限于:DLNA(Digital Living Network Alliance,数字生活网络联盟)、Miracast、Airplay等。
图21为本申请一些实施例提供的第一应用的应用界面示意图八。为了引导用户使用投屏功能,参见图21,View管理模块204可以在第一区域51设置投屏帮助控件515,投屏帮助控件515在第一区域51中的显示位置不限定,例如View管理模块204将投屏帮助控件515显示在第一区域51的底部,即位于各个信号源选项的下方。投屏帮助控件515可以包括“投屏帮助”的图标(例如图21中的“问号”标志)和提示文本。
在一些实施例中,参见图21,第一应用在接收到用户通过控制装置100的方向键(例如:下键)将焦点移动至投屏帮助控件515的操作指令时,控制View管理模块204将焦点框531移动至投屏帮助控件515。之后,若第一应用接收到确认键指令,控制View管理模块204为投屏帮助控件515设置选中标识信息532,使选择器53选中投屏帮助控件515,以及在第二区域52显示投屏帮助页面524。
在一些实施例中,参见图21,View管理模块204可以在投屏帮助页面524中显示至少一种投屏引导示例524a,投屏引导示例524a包括但不限于:iOS投屏示例、安卓投屏示例、电脑投屏示例等。投屏引导示例524a可以包括投屏引导图像和操作步骤信息,使用户通过图文内容了解如何使用不同类型的电子设备300向显示设备200投屏。View管理模块204还可以在投屏帮助页面524显示其他参考信息,例如某些投屏协议要求发送端和接收端连接同一无线局域网络(例如:WiFi),则参考信息可以包括显示设备200当前接入的局域网络名称(例如:TPLINK_5G_Haha)。又例如,对于电脑投屏示例,参考信息还可以包括电脑投屏地址(例如:192.168.1.101.1234)。
在一些实施例中,数据管理模块202可以维护信号源列表,信号源列表可以包括但不限于:第一子列表和第二子列表。在显示设备200未连接投屏设备时,第二子列表为空列表,相当于信号源列表仅包含第一子列表,则可以按照之前的实施例,由数据管理模块202设置和刷新信号源列表,以及由View管理模块204根据更新后的信号源列表刷新应用界面50。若显示设备与至少一个投屏设备建立投屏连接,第二子列表则为非空列表,可以按照下面的实施例执行。
在一些实施例中,用户在浏览投屏帮助页面524之后,可以在电子设备300端执行投屏操作流程。
图22为本申请一些实施例提供的电子设备300与显示设备200的投屏交互流程图。参见图22,电子设备300向显示设备200发送投屏请求,投屏请求中可包含电子设备300的设备信息,该设备信息包括但不限于设备名称/ID、设备类型、投屏协议信息等。
在显示设备200的投屏服务接收到该投屏请求时,投屏管理模块208可以根据显示设备200的当前状态(包括投屏路数等)和投屏权限等条件,确定是否允许接收该电子设备300的投屏,若允许,则可以通过投屏服务的协议层向电子设备300发送同意投屏消息。
电子设备300接收到同意投屏消息,与显示设备200建立投屏连接,启动屏幕录制功能,并在屏幕录制功能启动完毕时,向显示设备200发送准备投屏消息。
在显示设备200的投屏服务接收到准备投屏消息时,投屏管理模块208可以将投屏路数累积加一,将电子设备300的设备信息通过消息处理模块203转发给数据管理模块202。数据管理模块202将该电子设备300的设备信息添加到第二子列表,设置该电子设备300的第二索引序号,例如原第二子列表为空列表,则为电子设备300分配的第二索引序号为1,电子设备300的信号源名称被定义为“投屏设备1”,并设置投屏设备1的mVisible=true,HDMI1~HDMI3的mVisible=false,则数据管理模块202更新后的信号源列表的一种示例如下:
[{mInputName=HDMI1,
mIsConnected=true,
mInputSourceId=,
mVisible=false,
mSourceType=…},
{mInputName=HDMI2,
mIsConnected=true,
mInputSourceId=,
mVisible=false,
mSourceType=…},
{mInputName=HDMI3,
mIsConnected=false,
mInputSourceId=,
mVisible=false,
mSourceType=…},
{mInputName=投屏设备1,
mIsConnected=true,
mInputSourceId=,
mVisible=true,
mSourceType=,
mSession=SessionBase{id=Client 1,type=,protocol=}…},
{mInputName=投屏帮助,
mIsConnected=,
mInputSourceId=,
mVisible=false,
mSourceType=…}]
该信号源列表的示例中,HDMI1~HDMI3对应第一子列表,投屏设备1和投屏帮助对应第二子列表,由于投屏帮助控件515也要显示在第一区域51,以及在选择器53选中投屏帮助控件515时,第二区域52显示投屏帮助页面524,数据管理模块202可以将投屏帮助作为一种非传输数据用的信号源加入到第二子列表中。当然,信号源列表也可以不包含投屏帮助的项目。
图23为本申请一些实施例提供的在电子设备300接入后应用界面的变化示意图。假设将新建立投屏连接的电子设备300的信号源名称定义为“投屏设备1”,在投屏设备1接入之前,HDMI1和HDMI2的mIsConnected状态值为true,HDMI3的mIsConnected状态值为false,HDM1的mVisible=true,HDMI2和HDMI3的mVisible都为false,则View管理模块204显示的应用界面如图23的视图(a)所示。
在显示设备200的投屏服务接收到准备投屏消息之后,投屏管理模块208将投屏路数累积加一,以及将电子设备300的设备信息通过消息处理模块203转发给数据管理模块202。数据管理模块202按照预设格式将电子设备300的设备信息写入第二子列表,定义电子设备300的信号源名称为“投屏设备1”,将投屏设备1的mIsConnected和mVisible都设置为true,将HDM1的mVisible改写为false。同时,信号源管理模块201监听到HDMI2断开连接,通过消息处理模块203向数据管理模块202发送信号源断开消息,数据管理模块202接收到该信号源断开消息,将HDM2的mIsConnected改写为false。
这样,View管理模块204根据更新后的信号源列表,对应用界面50进行刷新,参见图23的视图(b),View管理模块204将HDMI2映射的信号源选项2调整为呈现未连接状态(例如置灰),在信号源列表页面中增加投屏设备1映射的信号源选项4,该信号源选项4包括但不限于投屏设备1的图标、信号源名称、设备类型(图中未示出)、设备ID(图中未示出)、设备接入时间(图中未示出)等信息,以及,重置选择器53,即取消(reset)之前为HDMI1映射的信号源选项设置的焦点框531、选中状态信息532等item,以及,为投屏设备1映射的信号源选项设置焦点框531和选中状态信息532,使选择器53选中投屏设备1映射的信号源选项。在一些实施例中,View管理模块204可以在HDMI3映射的信号源选项和投屏帮助控件515之间,新增投屏设备1映射的信号源选项。
在一些实施例中,数据管理模块202可以按照预设排序规则,对各个信号源(包括HDMI和投屏设备)在信号源列表中的排序进行设置。这样,View管理模块204按照信号源列表指示的信号源排序,控制各信号源选项在信号源列表页面中的显示序位。
在一些实施例中,预设排序规则不限定,例如,预设排序规则的一种示例为:排序优先级为第一子列表>第二子列表>投屏帮助控件515,第一子列表内部可以按照第一索引序号排序,第二子列表内部可以按照第二索引序号排序,例如HDMI2在第一子列表中的第一索引序号为2,投屏设备1在第二子列表中的第二索引序号为1。基于该预设排序规则,参见图23的视图(b),View管理模块204可以在信号源列表页面按列纵向展示多个信号源选项,则信号源选项从上至下排序依次为:HDMI1、HDMI2、HDMI3、投屏设备1和投屏帮助控件515。View管理模块204可采用按行、按列、网格等形式在信号源列表页面显示多个信号源选项
在一些实施例中,预设排序规则的第二种示例为:第二子列表>第一子列表>投屏帮助控件515,第一子列表内部可以按照第一索引序号排序,第二子列表内部可以按照第二索引序号排序,则信号源排序可以依次为投屏设备1、HDMI1、HDMI2、HDMI3和投屏帮助控件515。
在一些实施例中,预设排序规则的第三种示例为:按照信号源的接入时间排序。图24为本申请一些实施例提供的HDMI信号源和投屏信号源交叉展示时的应用界面示意图,参见图24,若数据管理模块202根据接入时间设置信号源排序,则View管理模块204在信号源列表页面中可能交叉显示HDMI和投屏设备映射的信号源选项,而并不一定根据第一子列表和第二子列表进行分类按序显示,投屏帮助控件515可以始终位于第一区域51的末位。例如,图24提供的一种示例性的信号源排序依次为HDMI3、HDMI1、投屏设备1、HDMI2和投屏帮助控件515。
在一些实施例中,预设排序规则的第四种示例为:按照预设时长(例如:近一个月内)信号源的历史连接频次排序。例如,数据管理模块202统计在预设时长内HDMI1连接次数为A1,HDMI2连接次数为A2,HDMI3连接次数为A3,投屏设备1连接次数为A4,若A1>A3>A2>A4,则一种示例性的信号源排序依次为HDMI1、HDMI3、HDMI2、投屏设备1和投屏帮助控件515。
在一些实施例中,参见图22,电子设备300在向显示设备200发送准备投屏消息之后,可以向显示设备200发送投屏数据。显示设备200通过通信器220建立的投屏连接通道接收到投屏数据,可以对投屏数据进行解析、解码、渲染等处理,参见图23的视图(b),View管理模块204可以将处理后的投屏数据加载显示在第二区域52的第一播放窗口521内,从而在投屏设备接入时,自动切换为显示新接入的投屏设备发送的投屏数据。
在一些实施例中,电子设备300在向显示设备200发送投屏数据时,还可向电子设备300发送投屏数据的播放配置信息,该播放配置信息包括但不限于:媒体类型(例如:视频、音频、音视频、文本等),投屏宽高比。通信器220接收到播放配置信息后,将播放配置信息下发给View管理模块204。若View管理模块204识别到投屏数据为视频、音视频、文本或图像等媒体类型,可以根据投屏宽高比、布局样式、显示设备200的屏幕分辨率,动态设置第一区域51的尺寸和显示位置信息,以及设置第二区域52的尺寸和显示位置信息,从而生成适配投屏信号源播放的应用界面的布局模板(简称:第二布局模板)。
在一些实施例中,若mVisible=true的当前信号源为HDMI类型,View管理模块204可以根据HDMI信号的宽高比、屏幕分辨率、布局样式等,生成适配HDMI信号源播放的第一布局模板。这样,View管理模块204可以根据当前信号源的类型(HDMI或投屏设备等),按照第一布局模板或第二布局模板刷新应用界面50时。
在一些实施例中,View管理模块204可以按照预设布局模板显示应用界面50,预设布局模板的第一区域51和第二区域52的尺寸和显示位置等参数是固定的,这样在切换信号源时View管理模块204无需更改应用界面50使用的布局模板。
在一些实施例中,受限于显示设备200自身的系统运行性能,以及用户对投屏路数的通常需求,投屏管理模块206可以预设投屏路数的上限值(简称:预设投屏数量)。投屏管理模块206可以记录投屏路数,显示设备200每与一个电子设备建立投屏连接,投屏管理模块206将投屏路数累积加一,以及,显示设备每与一个电子设备断开投屏连接,投屏管理模块206将投屏路数减一,从而实现投屏路数跟随投屏设备的连接和断开而动态更新。
在一些实施例中,在投屏服务接收到电子设备C发送的投屏请求时,投屏管理模块206可以判断投屏路数是否小于预设投屏数量。
在一些实施例中,若投屏路数小于预设投屏数量,则第一应用可以执行前述电子设备300与显示设备200的投屏交互流程,在投屏服务接收到电子设备C发送的准备投屏消息时,投屏管理模块206将电子设备C的设备信息通过消息处理模块203转发给数据管理模块202。数据管理模块202按照预设格式将电子设备C的设备信息写入第二子列表,为电子设备C分配第二索引序号,以定义电子设备C的信号源名称(例如为“投屏设备2”),并将投屏设备2的mIsConnected和mVisible都设置为true,从而更新第二子列表和信号源列表。这样,View管理模块204根据更新后的信号源列表,对应用界面50进行全局刷新或局部刷新,在信号源列表页面增加投屏设备2映射的信号源选项,控制选择器53选中投屏设备2映射的信号源选项,以及在第二区域52显示投屏设备2发送的投屏数据。
在一些实施例中,View管理模块进行局部刷新是指仅对应用界面50中发生变化的部分(包括但不限于:信号源选项的新增或删除、第二区域52显示的信号源数据、选择器53的选中位置、信号源选项标记的连接状态等)进行刷新,未产生变化的部分(包括但不限于图21中示例的投屏帮助控件515和布局切换控件54等)则可以不刷新,从而提升应用界面50的刷新速度。
在一些实施例中,若投屏路数不小于(包含等于)预设投屏数量,认为显示设备200已达到投屏饱和状态,无法再新增一路投屏。对此,投屏管理模块206可以从在先接入的投屏设备中选择一个目标投屏设备,并使显示设备200与该目标投屏设备断开连接,例如投屏管理模块206可以调用Session对象的finish接口断开目标投屏设备。
在一些实施例中,在目标投屏设备断开连接之后,投屏管理模块206可以将投屏路数减一,以及通过消息处理模块203向数据管理模块202发送投屏断开消息,投屏断开消息用于指示目标投屏设备已断开连接。这样,投屏路数被减至小于预设投屏数量后,第一应用可以通过投屏服务的协议层向电子设备C发送同意投屏消息,以及,在投屏服务接收到电子设备C发送的准备投屏消息时,将电子设备C的设备信息通过消息处理模块203转发给数据管理模块202。
在一些实施例中,数据管理模块202接收到投屏断开消息和电子设备C的设备信息时,将目标投屏设备的设备信息从第二子列表中删除,调整第二子列表中剩余的投屏设备的第二索引序号,以及,将电子设备C的设备信息写入第二子列表,设置电子设备C的信号源名称(例如为“投屏设备2”),并将投屏设备2的mIsConnected和mVisible都设置为true,从而更新第二子列表和信号源列表,以使View管理模块204根据更新后的信号源列表刷新应用界面。
在一些实施例中,投屏管理模块206可以按照预设选取规则,从在先接入的投屏设备中选择目标投屏设备。其中,预设选取规则不限定,预设选取规则可以包括但不限于:投屏管理模块206将接入时间最早的投屏设备选为目标投屏设备,或者从在先接入的投屏设备中随机选择目标投屏设备,或者,将前一个接入的投屏设备选为目标投屏设备,或者,将第二子列表中第二索引序号最小或最大的投屏设备选为目标投屏设备等。其中,第二索引序号最小的为投屏设备1,第二索引序号最大的为投屏设备P,P不大于预设投屏数量。
在一些实施例中,假设图22中的电子设备300被选为目标投屏设备,参见图22,第一应用可以通过投屏服务向该电子设备300发送退出投屏消息。电子设备300接收到退出投屏消息,停止录制屏幕,不再向显示设备200发送投屏数据。
图25为本申请一些实施例提供的在电子设备C接入后应用界面的变化示意图。假设预设投屏数量为2,原信号源列表的一种示例为:
[{mInputName=HDMI1,
mIsConnected=true,
mInputSourceId=,
mVisible=false,
mSourceType=…},
{mInputName=HDMI2,
mIsConnected=false,
mInputSourceId=,
mVisible=false,
mSourceType=…},
{mInputName=HDMI3,
mIsConnected=false,
mInputSourceId=,
mVisible=false,
mSourceType=…},
{mInputName=投屏设备1,
mIsConnected=true,
mInputSourceId=,
mVisible=false,
mSourceType=,
mSession=SessionBase{id=Client 1,type=,protocol=}…},
{mInputName=投屏设备2,
mIsConnected=true,
mInputSourceId=,
mVisible=true,
mSourceType=,
mSession=SessionBase{id=Client 2,type=,protocol=}…},
{mInputName=投屏帮助,
mIsConnected=,
mInputSourceId=,
mVisible=false,
mSourceType=…}]
该原信号源列表中,投屏设备1对应ID为Client 1的电子设备,投屏设备2对应ID为Client 2的电子设备,由于投屏设备1和投屏设备2都处于已连接状态(mIsConnected=true),投屏管理模块206记录投屏路数为2。View管理模块204根据原信号源列表显示如图25的图(a)所示的应用界面,其中HDMI1映射的信号源选项标记为已连接状态(例如高亮显示),HDMI2和HDMI3映射的信号源选项标记为未连接状态(例如置灰),投屏设备1和投屏设备2映射的信号源选项标记为已连接状态(例如高亮显示),选择器53选中投屏设备2映射的信号源选项,并且在第一播放窗口521显示投屏设备2发送的投屏数据。
在一些实施例中,在投屏服务接收到电子设备C发送的投屏请求时,投屏管理模块206检测到投屏路数等于预设投屏数量,需要选择目标投屏设备。假设投屏管理模块206将第二子列表中第二索引序号最小的投屏设备1选为目标投屏设备,则调用Session对象的finish接口使通信器断开与投屏设备1的连接,并通过消息处理模块203向数据管理模块202发送投屏断开消息,以及通过投屏服务向电子设备C发送同意投屏信息,之后第一应用按照前述投屏交互流程完成电子设备C(ID为Client 3)的接入。在投屏设备断开连接和接入时,数据管理模块202会更新第二子列表,包括更新第二子列表中的投屏设备的第二索引序号。
例如:原投屏设备1(ID为Client 1)断开连接后,数据管理模块202可以将原投屏设备2(ID为Client 2)的第二索引序号变更为1,即原投屏设备2变化为新的投屏设备1,以及,数据管理模块202设置电子设备C(ID为Client 3)的第二索引序号为2,使电子设备C成为新的投屏设备2。这样,更新后的信号源列表的一种示例为:
[{mInputName=HDMI1,
mIsConnected=true,
mInputSourceId=,
mVisible=false,
mSourceType=…},
{mInputName=HDMI2,
mIsConnected=false,
mInputSourceId=,
mVisible=false,
mSourceType=…},
{mInputName=HDMI3,
mIsConnected=false,
mInputSourceId=,
mVisible=false,
mSourceType=…},
{mInputName=投屏设备1,
mIsConnected=true,
mInputSourceId=,
mVisible=false,
mSourceType=,
mSession=SessionBase{id=Client 2,type=,protocol=}…},
{mInputName=投屏设备2,
mIsConnected=true,
mInputSourceId=,
mVisible=true,
mSourceType=,
mSession=SessionBase{id=Client 3,type=,protocol=}…},
{mInputName=投屏帮助,
mIsConnected=,
mInputSourceId=,
mVisible=false,
mSourceType=…}]
View管理模块204根据更新后的信号源列表,刷新应用界面50,参见图25的视图(b),View管理模块204在信号源列表页面中仍按序依次显示HDMI1、HDMI2、HDMI3、投屏设备1、投屏设备2映射的信号源选项和投屏帮助控件515,并且选择器53仍选中投屏设备2映射的信号源选项,即第一区域51从内容显示上没有明显变化,与图25的视图(a)的区别在于:更新后的投屏设备1对应原投屏设备2(ID为Client 2),投屏设备2对应新接入的电子设备C(ID为Client 3),并且第一播放窗口521显示的投屏数据也发生变化,转变为显示新接入的电子设备C发送的投屏数据。
图26为本申请一些实施例提供的电子设备B显示的第一投屏界面的示意图。参见图26,第一投屏界面310中可以包括第一退出投屏按钮310a,电子设备B响应于用户点击第一退出投屏按钮310a的操作,可以停止录制屏幕,向显示设备200发送第一退出投屏消息,以及断开与显示设备200的投屏连接。其中,第一退出投屏消息可以包含电子设备B的设备ID等信息。
在显示设备200的投屏服务接收到第一退出投屏消息时,投屏管理模块206将投屏路数减一,并将投屏断开消息通过消息处理模块203转发给数据管理模块202,该投屏断开消息用于指示电子设备B已断开连接。数据管理模块202接收到投屏断开消息,将电子设备B的设备信息从第二子列表中删除,并调整第二子列表中剩余的投屏设备的第二索引序号。参见图25的视图(b)的示例,原信号源列表包括投屏设备1(ID为Client 2)和投屏设备2(ID为Client 3),假设电子设备B的ID为Client 2,则数据管理模块202可以将原投屏设备1的设备信息从第二子列表中删除,并将原投屏设备2的第二索引序号变为1,即原投屏设备2变化为新的投屏设备1。电子设备B断开连接后,更新后的信号源列表的一种示例如下:
[{mInputName=HDMI1,
mIsConnected=true,
mInputSourceId=,
mVisible=false,
mSourceType=…},
{mInputName=HDMI2,
mIsConnected=false,
mInputSourceId=,
mVisible=false,
mSourceType=…},
{mInputName=HDMI3,
mIsConnected=false,
mInputSourceId=,
mVisible=false,
mSourceType=…},
{mInputName=投屏设备1,
mIsConnected=true,
mInputSourceId=,
mVisible=true,
mSourceType=,
mSession=SessionBase{id=Client 3,type=,protocol=}…},
{mInputName=投屏帮助,
mIsConnected=,
mInputSourceId=,
mVisible=false,
mSourceType=…}]
View管理模块204根据更新后的信号源列表刷新应用界面50。图27为本申请一些实施例提供的基于图25中的电子设备B断开连接时应用界面的变化示意图,参见图27,View管理模块204在信号源列表页面中删除原投屏设备1(即电子设备B,ID为Client 2)映射的信号源选项,使选择器53切换为选中新的投屏设备1(ID为Client 3)映射的信号源选项,以及,在第二区域52显示新的投屏设备1发送的投屏数据。
之后,若电子设备C(ID为Client 3)与显示设备断开连接,则投屏管理模块206将投屏路数减一,此时投屏路数减为零,并将投屏断开消息通过消息处理模块203转发给数据管理模块202,该投屏断开消息用于指示电子设备C已断开连接。数据管理模块202接收到该投屏断开消息,将电子设备C的设备信息从第二子列表中删除,删除后第二子列表不包括任何设备信息。
在一些实施例中,在投屏路数减为零时,表明全部投屏设备都断开连接,此时第二子列表可以仅包含投屏帮助项,则更新后的信号源列表包括第一子列表和投屏帮助项;若第二子列表不包括投屏帮助项,则在投屏路数为零时第二子列表变为空列表,信号源列表仅包括第一子列表。由于HDMI是显示设备的固有信号源接口,因此第一子列表始终为非空列表。
在一些实施例中,在全部投屏设备都断开连接时,由于之前执行的是退出投屏的相关程序,所以最终可回归到与投屏有关的“投屏帮助”上,数据管理模块202可以将投屏帮助项的mVisible设置为true。图28为本申请一些实施例提供的基于图27中的电子设备C断开连接时应用界面的变化示意图一,参照图28,在电子设备C断开连接后时,投屏路数降为零,View管理模块204在信号源列表页面中删除投屏设备1(即电子设备C,ID为Client 3)映射的信号源选项,View管理模块204识别投屏帮助项的mVisible=true,则控制选择器53选中投屏帮助控件515,以及在第二区域52显示投屏帮助页面524。该实施例在全部投屏设备都断开连接时,自动跳转到投屏帮助页面524。
在一些实施例中,在全部投屏设备都断开连接时,数据管理模块202可以从第一子列表中选择目标信号源,例如将第一子列表或已接入信号源集合中第一索引序号最大或最小的HDMI选为目标信号源,并将目标信号源的mVisible改写为true,其他信号源和投屏帮助项的mVisible保持为false。
图29为本申请一些实施例提供的基于图27中的电子设备C断开连接时应用界面的变化示意图二。参照图29,第一子列表中包括HDMI1、HDMI2和HDMI3,其中HDMI2和HDMI3都处于未连接状态(即mIsConnected=false),仅HDMI1处于已连接状态(即mIsConnected=true),则数据管理模块202可以将HDMI1选为目标信号源,设置HDMI1的mVisible=true,从而可以避免应用界面无信号显示的问题。参见图29,View管理模块204根据更新后的信号源列表,控制选择器53选中HDMI1映射的信号源选项,以及在第二区域52显示HDMI1接收的视频信号。该实施例在全部投屏设备断开连接时自动切换到HDMI信号源。
在一些实施例中,在全部投屏设备都断开连接时,View管理模块204可以在第二区域52显示预设界面。这样,在投屏设备全部断开连接时,第二区域52可以不显示信号源数据或投屏帮助页面524,而是自行跳转到预设界面,并通过预设界面向用户呈现指定内容或提示所需信息。
在一些实施例中,View管理模块204显示的预设界面的类型和显示内容不限定,可以根据实际应用进行设定。例如,预设界面可以是显示设备200的主页。
在一些实施例中,预设界面可以是View管理模块204预设的投屏提示页面,该投屏提示页面用于提示当前未连接投屏设备,以及提示用户可在电子终端(包括但不限于:手机、平板等)向显示设备200发起投屏。
在一些实施例中,View管理模块204在第二区域52显示预设界面时,可以将选择器53包括的焦点框移动至预设界面中包含的控件、按钮或信息内容处,以使用户基于预设界面执行所需操作。或者,若预设界面与信号源列表中包括的信号源无关联,View管理模块204可以暂时隐藏选择器53,使选择器53不选中任何对象。又或者,View管理模块204可以将选择器53的焦点框移动至预设位置,该预设位置不限定,例如预设位置为第一播放窗口521本身,或者第一播放窗口521中设置的第一模式切换控件521c等位置。需要说明的是,View管理模块204在第二区域52显示预设界面时,对选择器53的处理方式不限于本申请实施例的示例。
在一些实施例中,在目标投屏设备的mVisible=true时,View管理模块204在第一播放窗口521显示关联的第二投屏界面。参见图23,View管理模块204可以在第一播放窗口521内设置第二退出投屏按钮521e。在第一应用接收到用户点击第二退出投屏按钮521e的操作指令时,投屏管理模块206可以调用Session的finish接口使通信器220断开与目标投屏设备的连接,将投屏路数减一,通过投屏服务向目标投屏设备发送第二退出投屏消息,以及执行上述全部投屏设备断开连接时的相关程序。目标投屏设备接收到第二退出投屏消息,则停止录制屏幕,不再向显示设备200发送投屏数据。
在一些实施例中,数据管理模块202在接收到用于指示第三投屏设备断开连接的投屏断开消息时,可以判断第三投屏设备的mVisible是否为true。若第三投屏设备的mVisible=false,表明第三投屏设备不是当前信号源,则数据管理模块202将第三投屏设备的设备信息从第二子列表中删除,调整第二子列表中剩余的投屏设备的第二索引序号,并保持各信号源的mVisible状态值不变,这样View管理模块204只需在信号源列表页面中删除第三投屏设备映射的信号源选项,调整其他投屏设备映射的信号源选项对应的信号源名称,不重置选择器以及不改变第一播放窗口521显示的信号源数据。
在一些实施例中,若第三投屏设备的mVisible=true,表明第三投屏设备是当前信号源,则数据管理模块202进一步判断投屏路数是否为零。若投屏路数大于零,则数据管理模块202将第三投屏设备的设备信息从第二子列表中删除后,优先从第二子列表中选择第一目标信号源,并设置第一目标信号源的mVisible=true,这样View管理模块204在信号源列表页面中删除第三投屏设备映射的信号源选项,调整其他投屏设备映射的信号源选项对应的信号源名称,控制选择器选中该第一目标信号源映射的信号源选项,以及在第一播放窗口521显示第一目标信号源传输的数据。若投屏路数等于零,则可以执行前述全部投屏设备断开连接时的处理方式,例如数据管理模块202可以将投屏帮助项的mVisible设置为true,以使View管理模块204控制选择器选中投屏帮助控件515,在第二区域52显示投屏帮助页面524。
在一些实施例中,在第一播放窗口521显示第二投屏界面时,参照图23,View管理模块204可以在第一播放窗口521设置第一模式切换控件521c。第一应用接收到用户点击第一模式切换控件521c的操作指令时,控制View管理模块204以全屏模式显示第二投屏界面。以及,在第一应用接收到用户输入的第一预设操作时,控制View管理模块204退出全屏模式,参照图25的示例,以窗口显示模式(非全屏)显示第二投屏界面。在一些实施例中,还可支持用户根据观看偏好和习惯,自定义设置第一播放窗口521的尺寸,以及任意调整第一播放窗口521的显示位置。
在一些实施例中,在信号源列表包括第一子列表、第二子列表和投屏帮助项时,仍可按照不同的布局样式显示信号源列表页面,例如:若第一区域51和第二区域52上下排布,View管理模块204可以在信号源列表页面中沿横向以行显示多个信号源选项;若第二区域52和第一区域51左右排布,View管理模块204可以在信号源列表页面中沿纵向以列显示多个信号源选项;或者,View管理模块204可以全屏显示第一播放窗口521,并以浮层形式在第一播放窗口521的上层显示信号源列表页面。
在一些实施例中,投屏设备可以逐个接入,例如先接入投屏设备1,后接入投屏设备2。在投屏路数小于预设投屏数量时,显示设备200每连接一个投屏设备,投屏管理模块206将新接入的第一投屏设备的设备信息发送给数据管理模块202。数据管理模块202将第一投屏设备的设备信息写入第二子列表,定义第一投屏设备的信号源名称,以及将第一投屏设备的mVisible设置为true,从而在新接入一路投屏时View管理模块204根据更新的信号源列表动态实时刷新应用界面50。这样,在显示设备接入多个投屏设备的场景中,选择器53可以始终选中最新接入的第一投屏设备映射的信号源选项,以及第一播放窗口521显示第一投屏设备发送的投屏数据,View管理模块204可以隐藏或使用小窗口显示在先接入的其他投屏设备发送的投屏数据。
小窗口(用于显示在先接入的投屏设备发送的投屏数据)的尺寸小于第一播放窗口521(用于显示第一投屏设备发送的投屏数据),并且小窗口的显示位置不限定,例如:参照图16的示例,该小窗口可以采用与浏览窗口514相同或相似的形式,View管理模块204将小窗口显示在与在先接入的非第一投屏设备映射的信号源选项关联的位置;又例如,参见图18,该小窗口可以采用与第二播放窗口523相同或相似的形式,View管理模块204在第二区域52的上层以浮层形式显示小窗口;又例如,该小窗口可以显示于其他位置,例如View管理模块204可以将小窗口显示在应用界面50的留白区域,对角区域等。这样,用户可以一边通过第一播放窗口521浏览第一投屏设备发送的投屏数据,一边通过小窗口浏览其他在先接入的投屏设备发送的投屏数据,实现多路投屏的多窗口播放模式。
在以上技术方案中,相当于设置了信号源优先级,例如投屏信号源的优先级高于HDMI信号源的优先级,这样,在第一子列表和第二子列表都发生更新时,数据管理模块202优先在第二子列表中匹配当前信号源(mVisible被设置为true),View管理模块204在信号源列表页面中调整HDMI映射的信号源选项被标记的连接状态,但优先在投屏设备映射的信号源选项之间切换选择器53的选中对象,第二区域52优先显示投屏数据。
在一些实施例中,第一应用接收到用户切换至第一目标信号源的操作指令,控制数据管理模块202将当前信号源的mVisible改写为false,将第一目标信号源的mVisible改写为true。这样,View管理模块204根据更新后的信号源列表,控制选择器53切换为选中第一目标信号源映射的信号源选项,以及在第二区域52显示第一目标信号源传输的数据。其中,第一目标信号源不限定,例如第一目标信号源可以是第一子列表中的任意一个HDMI,也可以是第二子列表中的任意一个已连接的投屏设备。该实施例支持用户根据观看偏好自主切换信号源。
在一些实施例中,假设在启动第一应用之前,显示设备200已与电子设备A(ID为Client 1)建立投屏连接,并且显示器当前显示电子设备A发送的投屏数据,则控制器250可以记录电子设备A为初始化信号源。这样,在启动第一应用之后,数据管理模块202可以将电子设备A的设备信息写入第二子列表,设置电子设备A的第二索引序号,例如电子设备A的第二索引序号为1,则电子设备A被数据管理模块202命名为“投屏设备1”,以及将投屏设备1(ID为Client 1)的mVisible的初始状态值设置为true。这样,View管理模块204根据信号源列表,在信号源列表页面中添加投屏设备1映射的信号源选项,控制选择器53选中投屏设备1映射的信号源选项,以及在第一播放窗口521显示投屏设备1发送的投屏数据。该实施例实现了在第一应用启动前后显示同一投屏设备发送的投屏数据。
本申请提供的UI附图仅仅是示例性的,可以根据显示设备200具有的信号源接口的数量和类别、显示设备200支持接入的投屏路数、每个信号源(包括但不限于:HDMI、投屏设备等)的连接状态、当前信号源的变化、用户交互操作、界面功能控件配置等因素,由第一应用底层的软件架构和模块间交互,实现对应用界面的显示控制和刷新,而不局限于本申请附图的示例。
HDMI是信号源的传输通道,投屏设备可以通过无线投屏连接向显示设备200共享数据,虽然HDMI和投屏设备的数据传输方式不同,但本质上都是信号源的范畴,因此对投屏信号源在应用界面50上的显示可以适应性参照HDMI信号源,这里不再赘述。需要说明的是,对于不同类型的信号源,以上技术方案可以共通使用,或者针对不同类别的信号源进行适应性的变型或定制,而不局限于本申请实施例。
在一些实施例中,第一应用的软件架构运行在应用层,第一应用受控于控制器250,因此控制器250可以控制第一应用执行信号源显示方法。第一应用的软件架构不限于图4B提供的示例。
图30为本申请一些实施例提供的一种信号源显示方法的流程图。该信号源显示方法可以由控制器250执行,参见图30,包括如下程序步骤:
步骤S301,响应于启动第一应用的操作,控制第一应用启动并显示应用界面。
步骤S302,在应用界面的第一区域显示信号源列表页面。
其中,信号源列表页面是根据第一应用获取的信号源列表生成,信号源列表页面包括信号源列表中至少一个信号源映射的信号源选项。信号源列表包括第一子列表和第二子列表,第一子列表包括信号源接口(例如:HDMI)的接口信息、连接状态和显示状态等内容,第二子列表包括与显示设备200已建立投屏连接的电子设备300的设备信息和显示状态等内容。显示状态可以包括可见状态(mVisible=true)和不可见状态(mVisible=false),连接状态可以包括已连接状态(mIsConnected=true)和未连接状态(mIsConnected=false)。
步骤S303,在信号源列表页面中控制选择器选中处于可见状态的当前信号源关联的信号源选项,以及在应用界面的第二区域显示当前信号源传输的数据。
步骤S304,在与电子设备建立投屏连接或断开连接时,控制第一应用更新信号源列表并匹配目标信号源,以及在信号源列表中标记目标信号源处于可见状态,标记当前信号源处于不可见状态。
步骤S305,根据更新后的信号源列表刷新信号源列表页面,控制选择器选中目标信号源关联的信号源选项,以及在第二区域显示目标信号源传输的数据。
上述方法实施例涉及的细节内容已在前文实施例中进行了详细说明,可以适应性参照前述相关实施例,这里不再赘述。
本申请实施例为解决用户查看和切换信号源时操作效率低的问题,设置第一应用,在启动第一应用后,应用界面可以包括两类显示区域,其中第一区域51用于显示信号源列表页面,用户通过查看信号源列表页面,可以清楚了解显示设备200具有哪些信号源接口,每种信号源接口的连接状态和显示状态,以及了解显示设备已连接哪些投屏设备等。第二区域52用于显示被选择器选中的信号源的视频数据。这样,用户可以在一个应用界面中同步观看信号源列表页面和信号播放画面,第一应用启动时,可以根据信号源信息和初始化信号源的连接状态,设置哪些信号源可见,哪些信号源不可见,从而指导应用界面初始启动后的信号源显示。此外,用户可以可以通过控制装置100的方向键和确认键的配合,手动切换选择器53选中的信号源,快速切换第二区域所展示的信号源,减少用户查看信号源列表和切换信号源所执行的手动操作,提高操作效率。
在第一应用启动之后的运行过程中,第一应用可以监听各信号源接口的连接状态变化,以及监听投屏设备的接入和断开,以动态更新信号源列表,并自适应匹配目标信号源,从而自动刷新信号源列表页面以及第二区域显示的信号源数据,这样用户不必在每次想要切换信号源时繁复地调出信号源列表,也无需用户通过控制装置100的快捷键手动切换信号源,也无需用户在信号源列表页面手动调节选择器53的选中对象,实现自适应匹配和切换应用界面显示的信号源,进一步减少用户查看信号源列表和切换信号源所执行的手动操作,提高人机交互效率,提升第一应用的功能。
此外,第一应用可以对信号源进行集中管理,使用户可以通过浏览第一区域实时观察到信号源列表的更新,及时掌握不同类型信号源(包括但不限于:HDMI和投屏设备)接入和/或断开情况,从而为用户切换信号源或检查信号源设备连接提供参考,提升用户使用体验。
第一应用可以在同一活动中控制不同投屏设备映射的View的可见性,规避多个活动之间被遮盖的活动映射的投屏设备被断开连接的问题,使得显示设备可以与多个投屏设备保持投屏连接,并对多个View进行管理,提升了投屏信号源的切换效率,并降低投屏设备的显示延迟。
本申请一些实施例还提供一种计算机存储介质,该计算机存储介质可存储有程序。当计算机存储介质配置在显示设备200中时,该程序执行时可包括以上实施例中第一应用或控制器250配置的信号源显示方法涉及的程序步骤。其中,计算机存储介质可为磁碟、光盘、只读存储记忆体(英文:Read-Only Memory,简称ROM)或随机存储记忆体(英文:Random Access Memory,简称RAM)等。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
为了方便解释,已经结合具体的实施方式进行了上述说明。但是,上述示例性的讨论不是意图穷尽或者将实施方式限定到上述公开的具体形式。根据上述的教导,可以得到多种修改和变形。上述实施方式的选择和描述是为了更好的解释本公开的内容,从而使得本领域技术人员更好的使用所述实施方式。
Claims (10)
1.一种显示设备,其特征在于,包括:
显示器,用于显示用户界面;
外部装置接口,包括至少一个信号源接口,所述信号源接口用于连接信号源设备,并接收所述信号源设备传输的视频信号;
通信器,用于与电子设备建立投屏连接;
控制器,用于执行:
响应于启动第一应用的操作,控制所述第一应用启动并显示应用界面;
控制显示器在应用界面的第一区域显示信号源列表页面;所述信号源列表页面是根据所述第一应用获取的信号源列表生成,所述信号源列表包括第一子列表和第二子列表,所述第一子列表包括所述信号源接口的接口信息、连接状态和显示状态,所述第二子列表包括与显示设备已建立投屏连接的电子设备的设备信息和显示状态;所述显示状态包括可见状态和不可见状态;
控制显示器在所述信号源列表页面中控制选择器选中处于可见状态的当前信号源关联的信号源选项,以及在所述应用界面的第二区域显示所述当前信号源传输的数据;
在与电子设备建立投屏连接或断开连接时,控制所述第一应用更新所述信号源列表并匹配目标信号源,以及在所述信号源列表中标记所述目标信号源处于可见状态,标记所述当前信号源处于不可见状态;
控制显示器根据更新后的信号源列表刷新所述信号源列表页面,控制选择器选中所述目标信号源关联的信号源选项,以及在所述第二区域显示所述目标信号源传输的数据。
2.根据权利要求1所述的显示设备,其特征在于,所述控制器控制所述第一应用更新所述信号源列表,包括:
在所述第一应用接收到第一投屏设备发送的投屏请求时,控制第一应用获取投屏路数,所述投屏路数用于表征显示设备已连接的电子设备的数量;
若所述投屏路数小于预设投屏数量,控制通信器与所述第一投屏设备建立投屏连接;
在与所述第一投屏设备连接成功时,控制所述第一应用将所述投屏路数加一,将所述第一投屏设备的设备信息添加到所述第二子列表,以及设置所述第一投屏设备在所述第二子列表中的索引序号。
3.根据权利要求2所述的显示设备,其特征在于,所述控制器控制所述第一应用更新所述信号源列表,包括:
若所述投屏路数不小于预设投屏数量,控制所述第一应用从所述第二子列表中选取第二投屏设备,所述第二投屏设备为在先与显示设备连接的投屏设备中的任一个;
控制通信器与所述第二投屏设备断开连接;
控制所述第一应用将所述第二投屏设备的设备信息从所述第二子列表中删除,并调整第二子列表中剩余的投屏设备的索引序号;
控制通信器与所述第一投屏设备建立投屏连接;
在与所述第一投屏设备连接成功时,控制所述第一应用将所述第一投屏设备的设备信息添加到所述第二子列表,以及设置所述第一投屏设备在所述第二子列表中的索引序号。
4.根据权利要求2或3所述的显示设备,其特征在于,所述控制器控制所述第一应用更新所述信号源列表,包括:
在检测到通信器与第三投屏设备断开连接时,控制所述第一应用将所述投屏路数减一,将所述第三投屏设备的设备信息从所述第二子列表中删除,并调整所述第二子列表中剩余的投屏设备的索引序号。
5.根据权利要求1~4任一项所述的显示设备,其特征在于,所述控制器控制所述第一应用更新所述信号源列表,包括:
在第一信号源接口的连接状态发生变化时,控制所述第一应用修改所述第一子列表记录的所述第一信号源接口的连接状态,所述连接状态包括已连接状态和未连接状态。
6.根据权利要求2或3所述的显示设备,其特征在于,所述控制器匹配目标信号源,包括:
将所述第一投屏设备确定为所述目标信号源。
7.根据权利要求4所述的显示设备,其特征在于,所述控制器匹配目标信号源,包括:
在所述第一应用将所述第三投屏设备的设备信息从所述第二子列表中删除之后,若所述第二子列表为非空列表,则控制所述第一应用从所述第二子列表剩余的投屏设备中选取所述目标信号源;
若所述第二子列表为空列表,则控制所述第一应用从所述第一子列表中选取所述目标信号源。
8.根据权利要求4所述的显示设备,其特征在于,所述信号源列表页面包括投屏帮助控件,则所述控制器还用于执行:
在所述第一应用将所述第三投屏设备的设备信息从所述第二子列表中删除之后,若所述第二子列表为空列表,控制选择器选中所述投屏帮助控件,以及,控制显示器在所述第二区域显示投屏帮助页面;所述投屏帮助页面是所述投屏帮助控件被触发或被选择器选中时显示的页面,所述投屏帮助页面用于引导用户执行投屏操作流程;
或者,在所述第一应用将所述第三投屏设备的设备信息从所述第二子列表中删除之后,若所述第二子列表为空列表,控制显示器在所述第二区域显示预设界面。
9.根据权利要求7所述的显示设备,其特征在于,所述控制器控制所述第一应用从所述第一子列表中选取所述目标信号源,包括:
控制所述第一应用获取已接入信号源集合,所述已接入信号源集合包括所述第一子列表中指示处于已连接状态的信号源;
若所述已接入信号源集合为空集,则所述第一应用将所述第一子列表中索引序号最大或最小的信号源确定为所述目标信号源;
若所述已接入信号源集合为非空集合,则所述第一应用将所述已接入信号源集合中索引序号最大或最小的信号源确定为所述目标信号源。
10.一种信号源显示方法,其特征在于,包括:
响应于启动第一应用的操作,控制所述第一应用启动并显示应用界面;
在应用界面的第一区域显示信号源列表页面;所述信号源列表页面是根据所述第一应用获取的信号源列表生成,所述信号源列表包括第一子列表和第二子列表,所述第一子列表包括信号源接口的接口信息、连接状态和显示状态,所述第二子列表包括与显示设备已建立投屏连接的电子设备的设备信息和显示状态;所述显示状态包括可见状态和不可见状态;
在所述信号源列表页面中控制选择器选中处于可见状态的当前信号源关联的信号源选项,以及在所述应用界面的第二区域显示所述当前信号源传输的数据;
在与电子设备建立投屏连接或断开连接时,控制所述第一应用更新所述信号源列表并匹配目标信号源,以及在所述信号源列表中标记所述目标信号源处于可见状态,标记所述当前信号源处于不可见状态;
根据更新后的信号源列表刷新所述信号源列表页面,控制选择器选中所述目标信号源关联的信号源选项,以及在所述第二区域显示所述目标信号源传输的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310800783.0A CN116781954A (zh) | 2023-06-30 | 2023-06-30 | 一种信号源显示方法及显示设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310800783.0A CN116781954A (zh) | 2023-06-30 | 2023-06-30 | 一种信号源显示方法及显示设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116781954A true CN116781954A (zh) | 2023-09-19 |
Family
ID=87989351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310800783.0A Pending CN116781954A (zh) | 2023-06-30 | 2023-06-30 | 一种信号源显示方法及显示设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116781954A (zh) |
-
2023
- 2023-06-30 CN CN202310800783.0A patent/CN116781954A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114302195B (zh) | 一种显示设备、外接设备以及播放控制方法 | |
CN113613072B (zh) | 一种多路投屏显示方法及显示设备 | |
US20240053944A1 (en) | Display apparatus and method for controlling screen projections from multiple devices to same screen | |
CN113542851B (zh) | 一种菜单刷新方法及显示设备 | |
CN118435566A (zh) | 显示设备、智能家居系统及用于显示设备的多屏控制方法 | |
CN116567333A (zh) | 一种显示设备及多窗口的画质显示方法 | |
CN113938634A (zh) | 一种多路视频通话处理方法及显示设备 | |
WO2023138024A1 (zh) | 一种显示设备、分屏显示及分屏应用切换方法 | |
CN116347166A (zh) | 显示设备及窗口显示方法 | |
CN116248944A (zh) | 一种显示设备及菜单的显示方法 | |
CN116781954A (zh) | 一种信号源显示方法及显示设备 | |
CN117014667A (zh) | 一种信号源显示方法及显示设备 | |
CN117615187A (zh) | 一种信号源显示方法及显示设备 | |
CN117615185A (zh) | 一种信号源显示方法及显示设备 | |
CN117615186A (zh) | 一种信号源显示方法及显示设备 | |
CN113938635A (zh) | 一种多路视频通话处理方法及显示设备 | |
WO2024131095A1 (zh) | 一种显示设备及菜单的显示方法 | |
WO2024139950A1 (zh) | 显示设备及用于显示设备的处理方法 | |
CN117289839A (zh) | 一种音画设置方法及显示设备 | |
WO2023138222A1 (zh) | 显示设备和直播方法 | |
CN113766164B (zh) | 显示设备及信号源界面显示方法 | |
WO2024169421A1 (zh) | 显示设备和显示处理方法 | |
CN115223521A (zh) | 显示设备及接力设备展示方法 | |
CN117707363A (zh) | 显示设备和应用程序窗口显示方法 | |
CN117692701A (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 |