CN113992966A - 重定向方法、装置、设备、存储介质及程序产品 - Google Patents

重定向方法、装置、设备、存储介质及程序产品 Download PDF

Info

Publication number
CN113992966A
CN113992966A CN202111249916.7A CN202111249916A CN113992966A CN 113992966 A CN113992966 A CN 113992966A CN 202111249916 A CN202111249916 A CN 202111249916A CN 113992966 A CN113992966 A CN 113992966A
Authority
CN
China
Prior art keywords
redirection
destination
source
target
instance
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.)
Granted
Application number
CN202111249916.7A
Other languages
English (en)
Other versions
CN113992966B (zh
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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202111249916.7A priority Critical patent/CN113992966B/zh
Publication of CN113992966A publication Critical patent/CN113992966A/zh
Priority to PCT/CN2022/117904 priority patent/WO2023071546A1/zh
Application granted granted Critical
Publication of CN113992966B publication Critical patent/CN113992966B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • G06F3/1438Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display using more than one graphics controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/162Interface to dedicated audio devices, e.g. audio drivers, interface to CODECs
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/4104Peripherals receiving signals from specially adapted client devices
    • H04N21/4108Peripherals receiving signals from specially adapted client devices characterised by an identification number or address, e.g. local network address
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/4104Peripherals receiving signals from specially adapted client devices
    • H04N21/4122Peripherals receiving signals from specially adapted client devices additional display device, e.g. video projector
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/41422Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance located in transportation means, e.g. personal vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请实施例公开了一种重定向方法、装置、设备、存储介质及程序产品,属于投屏技术领域。该方法包括:基于源端设备标识以及目标重定向对象标识创建源端重定向实例,所述目标重定向对象标识用于表征目标重定向对象;向目的端设备传输所述源端重定向实例对应的重定向数据,以便所述目的端设备基于所述重定向数据,通过目的端重定向实例所指示的目标屏幕对所述目标重定向对象进行展示,所述目的端重定向实例与所述源端重定向实例对应同一重定向事件,且所述目的端重定向实例基于目的端设备标识以及目标屏幕标识创建得到。采用本申请实施例提供的方案能够实现多层级的多对多重定向,适用于复杂重定向场景。

Description

重定向方法、装置、设备、存储介质及程序产品
技术领域
本申请实施例涉及投屏技术领域,特别涉及一种重定向方法、装置、设备、存储介质及程序产品。
背景技术
重定向(redirect)是指将某种能力由一端设备流转至另一端设备的技术,流转的能力包括视频、音频和控制等等。日常生活中常见的重定向技术包括设备投屏。
借助投屏功能,源端设备可以将当前显示的画面投射到目的端设备上,从而达到更好的显示效果。相关技术提供的投屏方案,适用于简单投屏场景,比如实现一对一投屏场景或者多对一投屏场景。然而,随着投屏场景的复杂度提高,比如多对多投屏场景,目前的投屏方案将无法适用。
发明内容
本申请实施例提供了一种重定向方法、装置、设备、存储介质及程序产品。所述技术方案如下:
一方面,本申请实施例提供了一种重定向方法,所述方法用于源端设备,所述方法包括:
基于源端设备标识以及目标重定向对象标识创建源端重定向实例,所述目标重定向对象标识用于表征目标重定向对象;
向目的端设备传输所述源端重定向实例对应的重定向数据,以便所述目的端设备基于所述重定向数据,通过目的端重定向实例所指示的目标屏幕对所述目标重定向对象进行展示,所述目的端重定向实例与所述源端重定向实例对应同一重定向事件,且所述目的端重定向实例基于目的端设备标识以及目标屏幕标识创建得到。
另一方面,本申请实施例提供了一种重定向方法,所述方法用于目的端设备,所述方法包括:
基于目的端设备标识以及目标屏幕标识创建目的端重定向实例,所述目标屏幕标识用于表征所述目的端设备的目标屏幕;
接收源端设备传输的源端重定向实例对应的重定向数据,所述源端重定向实例与所述目的端重定向实例对应同一重定向事件,且所述目的端重定向实例基于源端设备标识以及目标重定向对象标识创建得到,所述目标重定向对象标识用于表征目标重定向对象;
基于所述重定向数据,通过所述目标屏幕对所述目标重定向对象进行展示。
另一方面,本申请实施例提供了一种重定向装置,所述装置包括:
创建模块,用于基于源端设备标识以及目标重定向对象标识创建源端重定向实例,所述目标重定向对象标识用于表征目标重定向对象;
传输模块,用于向目的端设备传输所述源端重定向实例对应的重定向数据,以便所述目的端设备基于所述重定向数据,通过目的端重定向实例所指示的目标屏幕对所述目标重定向对象进行展示,所述目的端重定向实例与所述源端重定向实例相对应,且所述目的端重定向实例基于目的端设备标识以及目标屏幕标识创建得到。
另一方面,本申请实施例提供了一种重定向装置,所述装置包括:
创建模块,用于基于目的端设备标识以及目标屏幕标识创建目的端重定向实例,所述目标屏幕标识用于表征目的端设备的目标屏幕;
接收模块,用于接收源端设备传输的源端重定向实例对应的重定向数据,所述源端重定向实例与所述目的端重定向实例对应同一重定向事件,且所述目的端重定向实例基于源端设备标识以及目标重定向对象标识创建得到,所述目标重定向对象标识用于表征目标重定向对象;
展示模块,用于基于所述重定向数据,通过所述目标屏幕对所述目标重定向对象进行展示。
另一方面,本申请实施例提供了一种重定向系统,所述重定向系统包括:至少一个源端设备和至少一个目的端设备;
所述源端设备,用于基于源端设备标识以及目标重定向对象标识创建源端重定向实例,所述目标重定向对象标识用于表征目标重定向对象;向目的端设备传输所述源端重定向实例对应的重定向数据;
所述目的端设备,用于基于目的端设备标识以及目标屏幕标识创建目的端重定向实例,所述目标屏幕标识用于表征所述目的端设备的目标屏幕;接收所述源端设备传输的源端重定向实例对应的重定向数据,所述源端重定向实例与所述目的端重定向实例对应同一重定向事件;基于所述重定向数据,通过所述目标屏幕对所述目标重定向对象进行展示。
另一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如上述方面所述的重定向方法。
另一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现如上述方面所述的重定向方法。
另一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面的各种可选实现方式中提供的重定向方法。
重定向过程中,源端设备基于源端设备标识以及目标重定向对象标识创建源端重定向实例,目的端设备基于目的端设备标识以及目标屏幕标识,创建与源端重定向实例对应的目的端重定向实例,从而在接收到源端重定向实例对应的重定向数据后,通过目的端重定向实例所指示的目标屏幕对目标重定向对象进行展示;采用本申请实施例提供的方案,通过创建源端重定向实例和目的端重定向实例能够实现多层级的多对多重定向,比如,可以将同一源端设备中的不同投屏对象投屏至不同目的端设备,可以将源端设备中同一投屏对象同时投屏至多个屏幕,可以使同一目的端设备的不同屏幕显示不同的投屏对象,可以使目的端设备的屏幕同时显示多路投屏对象等等,适用于源端设备层面、重定向对象层面、目的端设备以及设备屏幕层面的多对多重定向场景,提高对复杂重定向场景的适用性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一个示例性实施例提供的实施环境的示意图;
图2示出了本申请一个示例性实施例提供的重定向方法的流程图;
图3是本申请一个示例性实施例示出的重定向模块的层级架构的示意图;
图4示出了本申请另一个示例性实施例提供的重定向方法的流程图;
图5是本申请一个示例性实施例示出的编码、传输以及解码过程的实施示意图;
图6是本申请一个示例性实施例示出的视频编解码以及传输过程的流程图;
图7是本申请另一个示例性实施例示出的编码、传输以及解码过程的实施示意图;
图8是本申请一个示例性实施例示出的目的端设备反向控制过程的流程图;
图9是本申请一个示例性实施例示出的反向控制指令生成过程的流程图;
图10是本申请一个示例性实施例示出的触控坐标确定过程的实施示意图;
图11是本申请另一个示例性实施例示出的重定向模块的层级架构的示意图;
图12是本申请一个示例性实施例示出的重定向信息的获取过程的流程图;
图13是本申请一个示例性实施例示出的重定向设置界面的界面示意图;
图14示出了本申请一个实施例提供的重定向装置的结构框图;
图15示出了本申请另一个实施例提供的重定向装置的结构框图;
图16是本申请一个实施例提供的重定向系统的系统架构图;
图17示出了本申请一个示例性实施例提供的计算机设备的结构方框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1示出了本申请一个示例性实施例提供的实施环境的示意图。该实施环境可以包括:至少一个源端设备110以及至少一个目的端设备120。
源端设备110是具有重定向需求的电子设备,其可以是智能手机、平板电脑、个人计算机等移动终端。图1中以源端设备110包括平板电脑111以及智能手机112为例进行说明。
源端设备110中具有重定向需求的对象被称为重定向对象,该重定向对象可以是屏幕镜像或者重定向应用,且重定向对象的重定向内容可以包括视频、音频以及控制中的至少一种。该重定向应用可以为导航应用、视频类应用、游戏类应用等等,本申请实施例并不对投屏应用的具体类型进行限定。可选的,当重定向对象为应用时,重定向过程中该应用可以处于后台运行状态。
本申请实施例中,同一源端设备可以同时对至少两个重定向对象进行重定向。比如,可以同时对屏幕镜像以及视频类应用进行投屏,也可以同时对视频类应用以及导航类应用进行投屏。其中,源端设备支持同时重定向的重定向对象的数量具有上限,且该上限与源端设备的处理性能相关。
目的端设备120是用于进行重定向结果展示的电子设备,其可以是智能手机、平板电脑、个人计算机、智能电视或者车载终端(比如车机)等等。图1中以目的端设备120包括第一车载终端121和第二车载终端122为例进行说明,其中,第一车载终端121和第二车载终端122设置在同一车辆中,且第一车载终端121和第二车载终端122分别由不同的SoC(Systemon Chip,系统级芯片)控制。比如,第一车载终端121为设置在车辆前排的车载终端,第二车载终端122为设置在车辆后排的车载终端。
可选的,目的端设备120具有至少一块屏幕。如图1所示,第一车载终端121具有第一屏幕1211以及第二屏幕1212(均由第一车载终端121的第一SoC 1213控制),第二车载终端122具有第三屏幕1221和第四屏幕1222(均由第二车载终端122的第二SoC 1223控制)。
在一些实施例中,当目的端设备120具有至少两块屏幕时,至少两块屏幕可以同时显示不同的投屏内容,或者,相同投屏内容,且各块屏幕中显示的投屏内容可以为单一投屏对象,也可以为多个投屏对象(分屏显示多个投屏对象)。
目的端设备120除了具备投屏内容显示功能外,还可以具有音频播放功能,投屏过程中播放的音频即为投屏对象的音频。
除了音视频播放功能外,目的端设备120还可以通过输入输出组件实现对投屏内容的反向控制功能。可选的,该输入输出组件可以是目的端设备120的触控式屏幕,目的端设备120的外接控制设备,比如手柄、键盘、鼠标或者触控板等等,本实施例对此不作限定。
本申请实施例中的多对多重定向体现在多源端设备(多个源端设备参与重定向)、多重定向对象(同一源端设备中的多个重定向对象参与重定向)、多目的端设备(多个目的端设备参与重定向)以及多屏幕(同一目的端设备的多个屏幕参与重定向)。在一种可能的多对多投屏场景下,如图1所示,平板电脑111中的视频应用被投屏至第一车载终端121的第一屏幕1211;第一游戏应用则被投屏至第一车载终端121的第二屏幕1212。智能手机112中的导航应用被投屏至第一车载终端121的第一屏幕1211,并与视频应用分屏显示;智能手机112中的第二游戏应用被投屏至第二车载终端122的第三屏幕1221和第四屏幕1222,即第三屏幕1221和第四屏幕1222显示相同投屏内容。此外,由于第一车载终端121和第二车载终端122的各块屏幕均具有触控功能,因此用户可以在屏幕上对投屏应用进行操作,从而实现对投屏应用的反向控制。
需要说明的是,源端设备110和目的端设备120之间采用的连接方式可以包括WlanAP模式、WiFi-P2P、USB有线连接、移动数据网络中的至少一种,本申请实施例对此并不进行限定。
此外,上述实施例仅以移动终端向车载终端投屏为例进行(即车机场景)示意性的说明,本申请实施例提供的方案可以应用于其他多对多重定向场景,本实施例并不对具体的应用场景构成限定。
请参考图2,其示出了本申请一个示例性实施例提供的重定向方法的流程图,本申请实施例以该方法应用于图1所示的实施环境为例进行说明,该方法包括:
步骤201,源端设备基于源端设备标识以及目标重定向对象标识创建源端重定向实例,目标重定向对象标识用于表征目标重定向对象。
其中,该重定向对象的类型包括屏幕镜像或重定向应用中的至少一种,且重定向对象的重定向内容的类型包括音频、视频以及控制中的至少一种。
当需要通过源端设备进行重定向时,源端设备基于源端设备标识(即自身设备标识)以及待重定向的目标重定向对象的目标重定向对象标识,创建源端重定向实例,即以“源端设备+重定向对象”为单位形成源端重定向实例。
其中,当不同源端设备对同一重定向对象进行重定向时(比如不同源端设备对同一应用进行重定向),不同源端设备创建的源端重定向实例不同;当同一源端设备需要对不同重定向对象进行重定向时,同一源端设备基于不同重定向对象创建的源端重定向实例也不同。
可选的,源端设备在接收到重定向操作时创建源端重定向实例,或者,源端设备接收到第三方设备的重定向指令时创建源端重定向实例,即通过源端设备进行重定向可以在源端设备侧触发,也可以由第三方设备触发,其中,该第三方设备与源端设备处于同一调度域中,比如,第三方设备与源端设备登陆有相同用户帐号。
关于源端设备重定向的具体内容,在一些实施例中,源端设备可以对屏幕镜像进行重定向,也可以对安装并运行的应用程序(即重定向应用)进行重定向。对应的,当目标重定向对象为屏幕镜像时,目标重定向对象标识为镜像标识;当目标重定向对象为重定向应用时,目标重定向对象标识为重定向应用的应用标识。
步骤202,目的端设备基于目的端设备标识以及目标屏幕标识创建目的端重定向实例,目标屏幕标识用于表征目的端设备的目标屏幕。
与源端设备相对应的,进行展示的目的端设备需要创建与源端重定向实例对应的目的端重定向实例。其中,目的端设备基于目的端设备标识(即自身设备标识)以及进行展示的目标屏幕的目标屏幕标识,创建目的端重定向实例,即以“目的端设备+目标屏幕”为单位形成目的端重定向实例。进一步的,源端重定向实例和目的端重定向实例即构成了重定向事件。
本申请实施例中,目的端设备具有至少一块屏幕,不同屏幕对应不同的屏幕标识,且不同屏幕由目的端设备中的同一SoC进行控制。比如,目的端设备为车载终端,该车载终端具有主驾屏幕和副驾屏幕。
其中,当不同目的端设备对同一重定向对象进行展示时,不同目的端设备创建的目的端重定向实例不同;当同一目的端设备通过不同屏幕进行展示时,同一目的端设备基于不同屏幕创建的目的端重定向实例也不同。
可选的,目的端设备在接收到源端设备发送的重定向请求时创建目的端重定向实例,或者,目的端设备接收到第三方设备的重定向指令时创建目的端重定向实例,其中,该第三方设备与目的端设备处于同一调度域中,比如,第三方设备与目的端设备登陆有相同用户帐号。
步骤203,源端设备向目的端设备传输源端重定向实例对应的重定向数据。
完成源端重定向实例创建后,源端设备生成源端重定向实例对应的重定向数据,并将重定向数据传输至目的端设备,其中,该重定向数据至少包含视频数据流,还可以包含音频数据流以及控制数据流中的至少一种。
可选的,当需要实现一对多重定向时,源端设备可以将重定向数据传输至多个目的端设备,以便多个目的端设备同时展示同一目标重定向对象。
在一些实施例中,源端设备对目标重定向对象的画面进行视频编码,得到视频数据流,其中,源端设备可以采用H264、H265等视频编码格式进行编码,本申请实施例对此不作限定;重定向数据包括音频数据流时,源端设备对目标重定向对象的声音进行音频编码,得到音频数据流,其中,源端设备可以采用AAC等音频编码格式进行编码,本申请实施例对此不作限定;当重定向数据包括控制数据流时,源端设备可以按照约定的指令格式对控制指令进行编码,得到控制数据流。
关于重定向数据的传输方式,可选的,源端设备可以通过无线方式传输重定向数据,比如,Wlan AP、WiFi-P2P或移动数据网络;也可以通过有线方式传输重定向数据,比如,USB有线连接;也可以通过有线无线混合方式传输重定向数据,本申请实施例对此不作限定。
步骤204,目的端设备接收源端设备传输的源端重定向实例对应的重定向数据,源端重定向实例与目的端重定向实例对应同一重定向事件。
在一种可能的实施方式中,由于同一目的端设备可能会同时接收到不同源端设备传输的重定向数据,或者,同时接收到同一源端设备传输的多路重定向数据(对应不同的重定向对象),因此为了保证后续展示的准确性,目的端设备接收到重定向数据后,需要确定该重定向数据对应的源端重定向实例,进而确定与该源端重定向实例对应同一重定向事件的目的端重定向实例。
步骤205,目的端设备基于重定向数据,通过目标屏幕对目标重定向对象进行展示。
进一步的,目的端设备确定目的端重定向实例所指示的目标屏幕,并对重定向数据进行解析(比如对视频数据流进行视频解码),从而通过目标屏幕对目标重定向对象进行展示。
在一些实施例中,当重定向数据中还包括音频数据流时,目的端设备对音频数据流进行解析,并通过音频播放组件进行播放目标重定向对象的声音。
综上所述,本申请实施例中,重定向过程中,源端设备基于源端设备标识以及目标重定向对象标识创建源端重定向实例,目的端设备基于目的端设备标识以及目标屏幕标识,创建与源端重定向实例对应的目的端重定向实例,从而在接收到源端重定向实例对应的重定向数据后,通过目的端重定向实例所指示的目标屏幕对目标重定向对象进行展示;采用本申请实施例提供的方案,通过创建源端重定向实例和目的端重定向实例能够实现多层级的多对多重定向,比如,可以将同一源端设备中的不同重定向对象重定向至不同目的端设备,可以将源端设备中同一重定向对象同时投屏至多个屏幕,可以使同一目的端设备的不同屏幕显示不同的重定向对象,可以使目的端设备的屏幕同时显示多路重定向对象等等,适用于源端设备层面、重定向对象层面、目的端设备以及设备屏幕层面的多对多重定向场景,提高对复杂重定向场景的适用性。
为了实现多层级的多对多重定向,源端设备以及目的端设备的重定向模块进行分层设计。如图3所示,重定向模块的层级结构包括:
设备层:包括多路投屏服务,用于对外提供设备的投屏API(ApplicationProgramming Interface,应用程序接口)。
投屏应用层:包括由投屏管理器创建的源端重定向实例(作为源端设备时)或目的端重定向实例(作为目的端设备时),重定向事件即对应一对源端重定向实例以及目的端重定向实例。
流媒体处理层:包括视频处理模块、音频处理模块以及控制处理模块,用于处理源端或目的端重定向实例中特定媒体类型的数据。
重定向实例层:作为源端设备时,包括源端视频重定向器、源端音频重定向器以及源端控制重定向器;作为目的端设备时,包括目的端视频重定向器、目的端音频重定向器以及目的端控制重定向器。特定媒体类型的源端重定向器以及目的端重定向器之间的传输链路即用于传输特定媒体类型的重定向数据。
显示层:包括投屏窗体应用,且不同投屏窗体应用对应目的端设备的不同屏幕。
下面结合上述层级结构,对重定向过程进行进一步说明。
请参考图4,其示出了本申请另一个示例性实施例提供的重定向方法的流程图,本申请实施例以该方法应用于图1所示的实施环境为例进行说明,该方法包括:
步骤401,源端设备基于源端设备标识以及目标重定向对象标识创建源端重定向实例,目标重定向对象标识用于表征目标重定向对象。
本步骤的实施方式可以参考上述步骤201,本实施例在此不作赘述。
步骤402,源端设备创建源端重定向器。
在一种可能的实施方式中,源端设备创建出源端重定向实例后,进一步基于源端重定向实例创建源端重定向器,该源端重定向器即用于将源端重定向实例对应的重定向数据,重定向传输至属于同一重定向事件的目的端重定向实例对应的目的端设备。
可选的,源端设备基于源端重定向实例以及目的端设备标识创建源端重定向器。其中,当源端设备向不同目的端设备重定向时(可以是同一重定向对象,也可以是不同重定向对象),源端设备创建多个源端重定向器;当源端设备向目的端设备的多个屏幕投屏同一重定向对象时,源端设备创建单个源端重定向器;当源端设备向目的端设备的多个屏幕投屏不同重定向对象时,源端设备针对不同重定向对象创建多个源端重定向器。
比如,当需要向第一目的端设备以及第二目的端设备投屏游戏应用时,源端设备基于源端设备标识、第一目的端标识以及游戏应用标识创建第一源端重定向器,基于源端设备标识、第二目的端标识以及导航应用标识创建第二源端重定向器;当需要向第一目的端设备的第一屏幕投屏游戏应用,向第一目的端设备的第二屏幕投屏导航应用时,源端设备基于源端设备标识、第一目的端标识以及游戏应用标识创建第一源端重定向器,基于源端设备标识、第一目的端标识以及导航应用标识创建第二源端重定向器;当需要向第一目的端设备的第一屏幕以及第二屏幕同时投屏游戏应用时,源端设备基于源端设备标识、第一目的端标识以及游戏应用标识创建第一源端重定向器。
可选的,在进行重定向时,可以设置重定向对象的媒体类型(可以由用户手动设置,也可以由源端设备基于目的端设备的能力自动设置),该媒体类型包括视频、音频以及控制中的至少一种。当源端重定向实例的媒体类型包括视频时,目的端设备可以通过屏幕显示目标重定向对象;当源端重定向实例的媒体类型包括音频时,目的端设备可以通过音频播放组件播放目标重定向对象的声音;当源端重定向实例的媒体类型包括控制时,目的端设备可以对目标重定向对象进行反向控制。
相应的,源端设备需要根据目标重定向对象对应的媒体类型,分别创建不同媒体类型对应的源端重定向器。在另一种可能的实施方式中,源端设备基于源端重定向实例、目的端设备标识以及目标重定向对象对应的媒体类型,创建至少一个源端重定向器,其中,不同的源端重定向器对应不同的媒体类型。
示例性的,当目标重定向对象对应的媒体类型包括视频时,源端设备创建源端视频重定向器,该源端视频重定向器用于重定向目标重定向对象的视频数据流;当目标重定向对象对应的媒体类型包括音频时,源端设备创建源端音频重定向器,该源端音频重定向器用于重定向目标重定向对象的音频数据流;当目标重定向对象对应的媒体类型包括控制,源端设备创建源端控制重定向器,该源端控制重定向器用于重定向目标重定向对象的控制数据流。
比如,当需要向第一目的端设备投屏游戏应用,且第一目的端设备支持显示游戏应用画面、播放游戏应用声音以及反向控制游戏应用时,源端设备基于源端设备标识、第一目的端标识、游戏应用标识以及视频类型创建源端视频重定向器,基于源端设备标识、第一目的端标识、游戏应用标识以及音频类型创建源端音频重定向器;基于源端设备标识、第一目的端标识、游戏应用标识以及控制类型创建源端控制重定向器。
步骤403,目的端设备基于目的端设备标识以及目标屏幕标识创建目的端重定向实例,目标屏幕标识用于表征目的端设备的目标屏幕。
本步骤的实施方式可以参考上述步骤202,本实施例在此不再赘述。
步骤404,目的端设备创建目的端重定向器。
与源端设备相对应的,目的端设备需要创建与源端重定向器对应的目的端重定向,以便后续通过源端重定向器与目的端重定向器之间的链路传输源端重定向实例对应的重定向数据。
关于创建目的端重定向器的方式,在一种可能的实施方式中,目的端设备知悉源端设备以及目标重定向对象,从而基于源端设备标识、目标重定向对象标识以及目的端设备标识创建目的端重定向器,即源端重定向器和目的端重定向器对应同一源端重定向事件。
其中,当源端设备向不同目的端设备投屏时(可以是同一重定向对象,也可以是不同重定向对象),不同目的端设备创建不同目的端重定向器;当源端设备向目的端设备的多个屏幕投屏同一重定向对象时,目的端设备创建单个目的端重定向器;当源端设备向目的端设备的多个屏幕投屏不同重定向对象时,目的端设备针对不同重定向对象创建多个目的端重定向器。
比如,当源端设备向第一目的端设备以及第二目的端设备投屏游戏应用时,第一目的端设备基于源端设备标识、第一目的端标识以及游戏应用标识创建第一目的端重定向器,第二目的端设备基于源端设备标识、第二目的端标识以及导航应用标识创建第二目的端重定向器;当源端设备向第一目的端设备的第一屏幕投屏游戏应用,向第一目的端设备的第二屏幕投屏导航应用时,目的端设备基于源端设备标识、第一目的端标识以及游戏应用标识创建第一目的端重定向器,基于源端设备标识、第一目的端标识以及导航应用标识创建第二目的端重定向器;当源端设备向第一目的端设备的第一屏幕以及第二屏幕同时投屏游戏应用时,源端设备基于源端设备标识、第一目的端标识以及游戏应用标识创建第一目的端重定向器。
可选的,当用户在重定向过程中设置了源端重定向实例的媒体类型时,源端设备会针对不同媒体类型创建不同源端重定向器,而目的端设备则需要对应针对不同媒体类型的目的端重定向器。
在另一种可能的实施方式中,目的端设备基于源端重定向实例、目的端设备标识以及目标重定向对象对应的媒体类型,创建至少一个目的端重定向器,其中,不同的目的端重定向器对应不同的媒体类型。
示例性的,当目标重定向对象对应的媒体类型包括视频时,目的端设备创建目的端视频重定向器,用于接收源端视频重定向器传输的视频数据流;当目标重定向对象对应的媒体类型包括音频时,目的端设备创建目的端音频重定向器,用于接收源端音频重定向器传输的音频数据流;当目标重定向对象对应的媒体类型包括控制,目的端设备创建目的端控制重定向器,用于向源端控制重定向器传输控制数据流。
比如,当源端设备向第一目的端设备投屏游戏应用,且第一目的端设备支持显示游戏应用画面、播放游戏应用声音以及反向控制游戏应用时,目的端设备基于源端设备标识、第一目的端标识、游戏应用标识以及视频类型创建目的端视频重定向器,基于源端设备标识、第一目的端标识、游戏应用标识以及音频类型创建目的端音频重定向器;基于源端设备标识、第一目的端标识、游戏应用标识以及控制类型创建目的端控制重定向器。
步骤405,源端设备通过源端重定向器与目的端重定向器之间的链路,向目的端设备传输源端重定向实例对应的重定向数据。
完成重定向器创建后,源端设备即通过源端重定向器,向对应的目的端重定向器(目的端重定向器与源端重定向器对应同一源端重定向实例)传输重定向数据。
在一种可能的实施方式中,当源端设备和目的端设备针对不同媒体类型创建不同重定向器时,源端设备通过至少一个源端重定向器与一个所述目的端重定向器之间的至少一条链路,向目的端设备传输至少一种媒体类型的重定向数据,其中,不同源端重定向器与目的端重定向器之间的链路用于传输不同媒体类型的重定向数据。
比如,当源端设备向目的端设备投屏游戏应用,且目的端设备支持显示游戏应用画面以及播放游戏应用声音时,源端设备通过源端视频重定向器向目的端设备的目的端视频重定向器传输视频数据流,通过源端音频重定向器向目的端设备的目的端音频重定向器传输音频数据流。
步骤406,目的端设备通过目的端重定向器与源端重定向器之间的链路,接收源端设备传输的重定向数据。
在一种可能的实施方式中,目的端设备通过至少一个目的端重定向器与至少一个源端重定向器之间的至少一条链路,接收源端设备传输的至少一种媒体类型的重定向数据。
步骤407,目的端设备基于重定向数据,通过目标屏幕对应的目标投屏窗体应用,对目标重定向对象进行展示。
在一种可能的实施方式中,当目的端设备具有至少两块屏幕时,目的端设备根据目的端重定向实例中的目标屏幕标识确定目标屏幕,进而通过目标屏幕进行展示。
在一些可能应用场景中,多路投屏(来自同一源端设备或不同源端设备)需要同时显示在目的端设备中的同一块屏幕(同屏多显);多路投屏需要显示在目的端设备中的不同屏幕(多屏异显);源端设备的同一投屏对象需要同时显示在目的端设备的不同屏幕(多屏同显)。
为了保证投屏显示的准确性,在一些实施例中,目的端设备的各个屏幕分别对应各自的投屏窗体应用,接收到重定向数据后,目的端设备即通过目标屏幕对应的目标投屏窗体应用进行展示。以安卓系统为例,投屏窗体应用可以为Activity(活动)组件。
可选的,投屏窗体应用对应设置有窗体应用代理,用于对投屏窗体应用的生命周期进行控制。
并且,针对同屏多显场景,目的端设备需要复用投屏窗体应用,在同一屏幕中对多个重定向对象进行分屏显示。
在一种可能的实施方式中,目的端设备接收到重定向数据后进行展示可以包括如下两种可能的情况。
1、响应于目标屏幕对应的目标投屏窗体应用处于未启动状态,启动目标投屏窗体应用;通过目标投屏窗体应用对目标重定向对象进行展示。
可选的,确定出展示的目标屏幕后,目的端设备检测该目标屏幕对应的目标投屏窗体应用是否处于启动状态,若处于未启动状态,表明当前没有其他投屏对象通过目标屏幕进行展示,从而启动目标投屏窗体应用,进而通过目标投屏窗体应用进行展示,此时,目标屏幕仅显示目标重定向对象的画面。
2、响应于目标投屏窗体应用处于启动状态,通过复用目标投屏窗体应用对目标重定向对象进行展示,其中,复用目标投屏窗体应用后,各个投屏对象分屏显示在目标屏幕中。
可选的,当检测到目标投屏窗体应用处于启动状态时,表明目标屏幕当前正在展示其他投屏对象。目的端设备需要复用目标投屏窗体应用(即多个源端重定向实例复用同一投屏窗体应用),进而对目标屏幕当前展示的其他投屏对象以及目标重定向对象进行分屏显示。其中,目的端设备可以基于各个投屏对象的投屏方向(横屏或竖屏)以及投屏对象的数量进行分屏控制,本申请实施例对此不作限定。
在一些实施例中,当投屏窗体应用内的各个源端重定向实例均退出时,目的端设备结束投屏窗体应用的生命周期,即销毁投屏窗体应用。
本实施例中,源端设备以及目的端设备分别创建源端重定向器以及目的端重定向器,并通过重定向器之间的链路进行重定向数据传输,保证重定向数据的准确传输;此外,在创建重定向器时,针对源端重定向实例的媒体类型,创建不同媒体类型对应的重定向器,从而通过特定重定向器之间的链路传输特定媒体类型的数据,避免不同媒体类型对应重定向数据之间的相互干扰,并能够实现细粒度的展示(比如仅投屏画面,或同时投屏画面和声音,或同时投屏画面和声音,并开放反向控制)。
向目的端设备传输重定向数据前,源端设备需要对重定向对象进行画面采集,并通过视频编码器对采集到的画面进行视频编码得到视频数据流,这个过程会产生编码开销。对应的,目的端接收到视频数据流后,需要通过视频解码器进行视频解码,从而还原重定向对象的画面,这个过程会场景解码开销。此外,源端设备与目的端设备间进行数据传输会产生IO(In/Out,输入输出)开销。
在一种可能的投屏场景下,源端设备中的同一投屏对象需要被投屏至不同目的端设备,或者,被投屏至同一目的端设备的不同屏幕。如图5所示,当需要将源端设备中的投屏应用同时投屏至目的端设备1的屏幕1和屏幕2,以及目的端设备2的屏幕3时,通过视频编码器1、2、3分别进行视频编码,通过视频解码器1、2、3分别进行视频解码,以及分三路进行视频数据流传输会产生三倍编码、解码以及IO开销(相较于一对一投屏)。
为了降低编解码以及IO开销,源端设备和目的端设备可以采用复用策略进行视频编解码,采用分流策略进行视频数据流传输。在一种可能的实施方式中,如图6所示,视频的编解码以及传输过程可以包括如下步骤。
步骤601,源端设备复用视频编码器对同一源端重定向实例对应的画面进行视频编码,得到视频数据流。
可选的,当需要将同一重定向对象投屏至至少两个屏幕时,源端设备将复用视频编码器对该源端重定向实例的画面进行视频编码,得到视频数据流,而非根据屏幕数量采用多个视频编码器分别进行视频编码。
示意性的,如图7所示,当需要将源端设备中的投屏应用同时投屏至目的端设备1的屏幕1和屏幕2,以及目的端设备2的屏幕3时,源端设备复用视频编码器1进行视频编码,得到视频数据流。相较于图5中通过三个视频编码器进行视频编码,编码开销降低为1倍。
步骤602,源端设备将视频数据流分流至源端重定向实例对应的至少一个源端视频重定向器。
进一步的,同一源端重定向实例可能同时对应多个源端视频重定向器,比如,将源端设备的投屏应用同时投屏至两个目的端设备时,源端设备需要创建两个源端重定向器。因此,源端设备需要对编码得到的视频数据流进行分流处理,从而通过不同的源端视频重定向器重定向至不同不同的目的端视频重定向器。
步骤603,源端设备通过源端视频重定向器与目的端视频重定向器之间的链路,向目的端设备传输视频数据流。
示意性的,如图7所示,由于投屏应用需要被投屏至目的端设备1和目的端设备2,因此源端设备需要创建针对目的端设备1的第一源端视频重定向器,以及针对目的端设备2的第二源端视频重定向器,并将编码得到的视频数据流分流至第一源端视频重定向器和第二源端视频重定向器,进而通过第一源端视频重定向器和第一目的端视频重定向器将视频数据流传输至目的端设备1,通过第二源端视频重定向器和第二目的端视频重定向器将视频数据流传输至目的端设备2,实现视频数据流的分流传输。相较于图5中通过三条链路进行数据传输,IO开销降低为2倍。
步骤604,目的端设备复用视频解码器对同一源端重定向实例对应的视频数据流进行视频解码,得到源端重定向实例对应的画面。
可选的,当需要将同一重定向对象投屏至同一目的端设备的至少两个屏幕时,目的端设备将复用视频解码器对该源端重定向实例的视频数据流进行视频解码,得到视频画面,而非根据屏幕数量采用多个视频解码器分别进行视频解码。
示意性的,如图7所示,目的端设备1接收到视频数据流后,复用视频解码器1进行视频解码,从而通过屏幕1和屏幕2对解码得到的画面进行显示;目的端设备2接收到视频数据流后,通过视频解码器2进行视频解码,从而通过屏幕3对解码得到的画面进行显示。相较于图5中通过三个视频解码器进行视频解码,解码开销降低为2倍。
本实施例中,针对同一源端投屏实例,源端设备通过复用视频编码器、分流以及复用视频解码器,有助于降低编解码开销以及IO开销。
在一种可能的场景下,当目标重定向对象对应的媒体类型包括音频时,源端设备需要对重定向对象进行音频采集,并对采集到的音频进行编码,得到音频数据流,从而将该音频数据流传输至目的端设备,以供目的端设备进行解析播放。在一种可能的实施方式,当目标重定向对象的类型为屏幕镜像时,源端设备通过设备级音频采集编码器进行音频采集及编码,得到音频数据流,其中,该设备级音频采集编码器用于采集设备的音频并编码;当目标重定向对象的类型为重定向应用时,源端设备通过应用级音频采集编码器进行音频采集及编码,得到音频数据流,其中,该应用级音频采集编码器用于采集重定向应用的音频并编码。
进一步的,源端设备通过源端音频重定向器与目的端音频重定向器之间的链路,向目的端设备传输音频数据流。可选的,源端设备在进行音频编码的过程中,可以针对同一源端重定向实例复用音频编码器,并在传输过程中采用分流策略,对应的,目的端设备在进行音频解码时也可以复用音频解码器,从而降低音频编解码以及IO开销。
在一种可能的场景下,当目标重定向对象对应的媒体类型包括控制时,目的端设备进行展示时,用户可以通过控制操作对重定向对象进行反向控制。由于目的端设备仅是对重定向对象的画面进行解码显示,而非真实运行重定向对象,因此目的端设备需要基于自身接收到的控制操作,向源端设备发送反向控制指令,以便源端设备基于反向控制指令对重定向对象进行控制。在一种可能的实施方式中,如图8所示,目的端设备反向控制重定向对象的过程可以包括如下步骤。
步骤801,响应于对目标重定向对象的控制操作,目的端设备生成反向控制指令。
可选的,该控制操作可以通过目标屏幕触发,比如,当目的端设备为车载终端,且车载终端的屏幕具备触控功能时,用户可以在屏幕上进行点击、长按、拖动等触控操作;也可以通过外接控制组件触发,比如,当目的端设备为电视时,用户可以通过电视遥控器对显示的内容进行控制;还可以通过传感器或输入输出组件触发,比如,当目的端设备为平板电脑时,用户可以通过旋转平板对显示的内容进行控制(类似体感游戏),或者,通过语音对显示内容进行控制。本申请实施例并不对控制操作的具体触发方式进行限定。
针对不同类型的控制操作,目的端设备生成的反向控制指令也不同。可选的,当控制操作通过目标屏幕触发时,该反向控制指令中包含触控操作的坐标以及触控类型(点击、长按、滑动等等);当控制操作通过外接控制组件触发时,该反向控制指令中包含外接控制组件的组件类型以及控制数据(比如键盘输入内容);当控制操作通过传感器或输入输出组件触发时,该反向控制指令中包含传感器数据(比如角速度数据)或者输入数据(比如语音数据)。本申请实施例并不对反向控制指令中包含的具体内容进行限定。
在一些实施例中,当目的端设备的目标屏幕具备触控功能时,用于可以对目标屏幕进行触控操作,以此反向控制重定向对象。比如,当重定向对象为游戏应用时,用户可以通过点击目标屏幕上的虚拟按键对游戏应用中的游戏内容进行控制;当重定向对象为视频应用时,用户可以通过在目标屏幕上执行快捷操作手势,控制视频应用中视频内容的播放进度、音量、亮度等等。
由于源端设备与目的端设备的屏幕尺寸可能不同,且目的端设备同一屏幕可能同时显示有多个重定向对象,因此目的端设备接收到触控操作后,需要对触控操作的触控坐标进行转换,从而基于转换后的触控坐标生成反向控制指令。如图9所示,本步骤可以包括如下步骤。
步骤801A,响应于对目标屏幕的触控操作,确定第一触控坐标,第一触控坐标位于目标屏幕的坐标系下。
当接收到对目标屏幕的触控操作时,目的端设备首先获取目标屏幕的坐标系下,该触控操作对应的第一触控坐标。
步骤801B,响应于基于第一触控坐标确定出触控操作用于控制的目标重定向对象,将第一触控坐标转换为第二触控坐标,第二触控坐标位于目标重定向对象的坐标系下。
可选的,当目标屏幕仅显示有目标重定向对象时,对目标屏幕的触控操作即用于控制重定向对象,目的端设备进一步将屏幕坐标系下的第一触控坐标转换为目标重定向对象坐标系下的第二触控坐标。
可选的,当目标屏幕同时显示有多个重定向对象时,目的端设备接收到触控操作时,首先需要确定该控制操作所控制的实际重定向对象,并在该实际重定向对象为目标重定向对象时,将屏幕坐标系下的第一触控坐标转换为目标重定向对象坐标系下的第二触控坐标。
在一种可能的实施方式中,目的端设备中各块屏幕对应的投屏窗体应用包含一个SurfaceView,当多个重定向对象复用该投屏窗体应用时,即在SurfaceView中绘制各个投屏对应对应的GLView,并将各个GLView各自对应的位置信息存储在投屏窗体应用中。相应的,在确定触控操作所控制的重定向对象时,目的端设备获取目标投屏窗体应用中各个重定向对象的位置信息,并基于第一触控坐标与位置信息之间的位置关系,确定触控操作所控制的重定向对象。其中,该位置信息可以为重定向对象所占据矩形显示区域的顶点坐标,目的端设备即根据第一触控坐标与顶点坐标之间的位置关系,确定触控操作所控制的重定向对象。
在一些实施例中,目的端设备根据屏幕坐标系与重定向对象坐标系之间的映射关系,将第一触控坐标转换为第二触控坐标。
在一个示意性的例子中,如图10所示,目标屏幕1001分屏显示应用A、B、C、D对应的投屏画面,当接收到触控操作时,目的端设备获取坐标系(X1-O1-Y1)下的第一触控坐标(x1,y1),并获取各个应用各自对应的位置信息。由于第一触控坐标(x1,y1)位于应用D对应的显示区域内,因此目的端设备确定控制操作用于控制应用D,并进一步基于坐标系(X1-O1-Y1)与坐标系(X2-O2-Y2)之间的坐标转换关系,将第一触控坐标(x1,y1)转换为第二触控坐标(x2,y2)。
步骤801C,基于第二触控坐标生成反向控制指令。
进一步的,目的端设备基于第二触控坐标生成反向控制指令。在一种可能的实施方式中,由于目的端设备可以会进行旋转,因此目的端设备还需要根据自身的旋转情况,对第二触控坐标进行旋转处理,从而基于旋转处理后第二触控坐标生成反向控制指令。
并且,由于目的端设备可能具有多块屏幕,因此为了保证反向控制的准确性,在一种可能的实施方式中,目的端设备在生成反向控制指令时,还需要基于目标屏幕的屏幕标识,对触控点对应的触控点标识进行偏移处理,从而保证触控点标识的唯一性。比如,pointerId(触控点标识)=100×displayId(屏幕标识)+pointerId。
此外,由于目的端设备中目标重定向对象的显示尺寸与源端设备的屏幕尺寸可能不同,因此在一种可能的实施方式中,目的端设备基于源端设备的屏幕尺寸以及目标重定向对象的显示尺寸,对第二触控坐标进行坐标缩放处理,以此保证反向控制的准确性。当然,也可以由源端设备对触控坐标进行坐标缩放处理,本实施例对此不作限定。
步骤802,目的端设备通过目的端控制重定向器与源端控制重定向器之间的链路,向源端设备发送反向控制指令。
在一种可能的实施方式中,目的端设备对反向控制指令进行编码,得到控制数据流,从而将控制数据流重定向至源端设备。本实施例中,目的端设备与源端设备之间的控制数据流即通过目的端控制重定向器与源端控制重定向器之间的链路进行传输。
步骤803,源端设备通过源端控制重定向器与目的端控制重定向器之间的链路,接收目的端设备发送的反向控制指令。
对应的,源端设备通过源端控制重定向器接收目的端设备发送的反向控制指令。
步骤804,源端设备基于反向控制指令控制目标重定向对象。
在一种可能的实施方式中,源端设备获取反向控制指令中包含的第二触控坐标,从而基于第二触控坐标生成模拟触控事件,从而将模拟触控事件注入目标重定向对象,模拟出在源端设备上对目标重定向对象进行触控操作,实现对目标重定向对象的反向控制。
在一些实施例中,当目标重定向对象被同时投屏至多块屏幕时,源端设备可能会接收到多路反向控制指令,比如,移动终端将游戏应用投屏至后排车载终端的两块屏幕上,以便后排乘客同时对游戏应用进行控制。此时,源端设备需要通过操作系统(对应镜像投屏场景)或投屏应用(对应应用投屏场景)对多路反向控制指令进行冲突处理,本实施例对此不作赘述。
本实施例中,目的端设备接收到对目标屏幕的触控操作后,确定触控操作对应的重定向对象,并对触控操作的触控坐标进行转换处理,从而基于转换后的触控坐标生成反向控制指令,并发送至源端设备,实现对源端设备中重定向对象的反向控制,并保证反向控制过程的准确性。
结合上述实施例,如图11所示,重定向模块更细致的层级结构包括:
投屏窗体应用:用于在屏幕上呈现投屏画面,投屏窗体应用代理用于管理投屏窗体应用生命周期。
投屏管理器:用于实际管理和调度源端重定向实例以及目的端重定向实例。
投屏上下文/投屏信息:用于同步当前重定向实例的相关状态数据。
源端/目的端音频管理器:用于统一管理设备的音频输入输出。
设备级/应用级音频采集编码器:在源端负责音频的采集(设备级或应用级)和编码。
音频解码播放器:在目的端负责音频的解码和播放。
多路反控模块:负责统一控制该投屏应用下多路反控事件注入,并解决反控冲突。
视频编码器:在源端负责投屏应用的视频编码。
视频解码器:在目的端负责投屏应用的视频解码。
信令处理模块:在源端和目的端负责视频、音频和控制的信令能力协商和业务逻辑处理。
媒体流数据通道:负责视频、音频、控制等各种流数据的传输。
序列化加解密模块:负责视频、音频、控制的序列化反序列化及加解密。
流数据对象池:负责视频、音频、控制等各种流数据的对象缓存复用。
内存缓冲池:负责视频、音频、控制二进制数据的内存缓存复用。
OpenGL多路渲染:负责同一显示屏下的多路视频画面的合成与渲染。
多路布局策略:提供多路画面的动态布局算法。
为了降低上层应用以及用户的使用门槛,本申请实施例提供的方案对重定向API进行了合理抽象,采用重定向信息抽象化表示重定向事件。在一种可能的实施方式中,该重定向信息为四元组信息,该四元组信息中包含源端设备标识、目标重定向对象标识、目的端设备标识以及目标屏幕标识。
在另一种可能的实施方式中,当重定向事件支持设置重定向对象的媒体类型时,该重定向信息为五元组信息,该五元组信息中包含源端设备标识、目标重定向对象标识、目的端设备标识、目标屏幕标识以及媒体类型。
在图1所示的实施环境中,“平板电脑111中的视频应用被投屏至第一车载终端121的第一屏幕1211”这一投屏事件可以采用五元组[Source=平板电脑,App=视频应用,Sink=第一车载终端,Display=第一屏幕,Channel=Audio+Video]表示。
“智能手机112中的导航应用被投屏至第一车载终端121的第一屏幕1211”这一投屏事件可以采用五元组[Source=智能手机,App=导航应用,Sink=第一车载终端,Display=第一屏幕,Channel=Audio+Video+Control]表示。
“智能手机112中的第二游戏应用被投屏至第二车载终端122的第三屏幕1221”这一投屏事件可以采用五元组[Source=智能手机,App=第二游戏应用,Sink=第二车载终端,Display=第三屏幕,Channel=Audi o+Video+Control]表示。
“智能手机112中的第二游戏应用被投屏至第二车载终端122的第四屏幕1222”这一投屏事件可以采用五元组[Source=智能手机,App=第二游戏应用,Sink=第二车载终端,Display=第四屏幕,Channel=Audi o+Video+Control]表示。
相应的,源端设备和目的端设备即根据获取到的重定向信息创建源端重定向实例以及目的端重定向实例。
关于重定向信息获取方式,在一种可能的实施方式中,用户可以在源端设备上通过重定向操作创建重定向事件,相应的,响应于重定向操作,源端设备确定重定向信息,从而基于重定向信息中的源端设备标识以及目标重定向对象标识创建源端重定向实例。
在一些实施例中,源端设备可以显示设置重定向事件的重定向设置界面,用户可以通过触发重定向设置界面中的控件,完成重定向事件的设置,相应的,源端设备获取重定向事件的重定向信息。可选的,如图12所示,重定向信息的获取过程可以包括如下步骤。
步骤1201,显示重定向设置界面。
该重定向设置界面用于进行重定向事件,包含设置重定向事件中各项参数的控件。可选的,该控件包括源端设备选择控件、重定向对象选择控件、目的端设备选择控件、屏幕选择控件以及媒体选择控件。
步骤1202,响应于对重定向设置界面中源端设备选择控件的触发操作,确定源端设备标识。
可选的,在设置重定向事件时,用户首先通过重定向设置界面中的源端设备选择控件,选择重定向事件中的源端设备。在一种可能的实施方式中,当接收到对源端设备选择控件的触发操作时,重定向设置界面中显示调度域内各个能够作为源端设备的候选源端设备。进一步的,当接收到对某一候选源端设备的选择操作时,该候选源端设备即被确定为重定向事件中的源端设备,进而获取该源端设备的源端设备标识。
步骤1203,响应于对重定向设置界面中所述源端设备对应的重定向对象选择控件的触发操作,确定目标重定向对象标识。
完成源端设备设置后,用户进一步通过重定向设置界面中的重定向对象选择控件,选择重定向事件中的目标重定向对象。在一种可能的实施方式中,当接收到对重定向对象选择控件的触发操作时,重定向设备界面中显示源端设备对应的屏幕镜像选项,以及源端设备中候选重定向应用对应的候选应用选项。当接收到对屏幕镜像选项的触发操作时,即将屏幕镜像确定为目标重定向对象;当接收到对候选应用选项的触发操作时,即将候选应用选项对应的应用确定为目标重定向对象,并将该应用对应的应用标识(比如应用包名)确定为目标重定向对象标识。
步骤1204,响应于对重定向设置界面中目的端设备选择控件的触发操作,确定目的端设备标识。
进一步的,用户通过重定向设置界面中的目的端设备选择控件,选择重定向事件中的目的端设备。在一种可能的实施方式中,当接收到对目的端设备选择控件的触发操作时,重定向设置界面中显示调度域中各个能够作为目的端设备的候选目的端设备。进一步的,当接收到对某一候选目的端设备的选择操作时,该候选目的端设备即被确定为重定向事件中的目的端设备,进而获取该目的端设备的目的端设备标识。
步骤1205,响应于对重定向设置界面中目的端设备对应的屏幕选择控件的触发操作,确定目标屏幕标识。
进一步的,用户通过重定向设置界面中的屏幕选择控件,选择重定向事件中的目标屏幕。在一种可能的实施方式中,当接收到对屏幕选择控件的触发操作时,重定向设置界面中显示目的端设备中各块候选屏幕的屏幕标识。当接收到对某一候选屏幕对应屏幕标识的选择操作,即将选中的候选屏幕确定的目标屏幕,并获取目标屏幕的目标屏幕标识。
步骤1206,响应于对重定向设置界面中媒体选择控件的触发操作,确定媒体类型。
进一步的,用户通过重定向设置界面中的媒体选择控件,选择目标重定向对象中需要重定向的媒体类型。在一种可能的实施方式中,当接收到对媒体选择控件的触发操作时,重定向设备界面中候选媒体类型控件,其中,不同的候选媒体类型控件对应不同的媒体类型。当接收到对某一候选媒体类型控件的选择操作时,即将选中的候选媒体类型确定为目标重定向对象中需要重定向的媒体类型。
示意性的,如图13所示完成重定向事件设置后,源端设备显示重定向设置界面1300。该重定向设置界面1300中的重定向事件被分为四级,分别为源端重定向实例级1301、目的端设备级1302、目的端设备屏幕级1303以及媒体类型级1304。
上述实施例中,以重定向事件在源端设备侧设置为例进行说明,在另一种可能的实施方式中,重定向事件也可以由调度域中,源端设备以及目的端设备以外的第三方设备设置。第三方设备完成重定向事件设置后,即将包含重定向信息的重定向指令发送至源端设备以及目的端设备。源端设备接收到重定向指令后,获取重定向指令中的重定向信息,并基于重定向信息中的源端设备标识以及目标重定向对象标识创建源端重定向实例;目的端设备接收到重定向指令后,获取重定向指令中的重定向信息,并基于重定向信息中的目的端设备标识以及目标屏幕标识创建目的端重定向实例。
需要说明的是,上述实施例中以源端设备与目的端设备在重定向过程中的交互流程为例进行说明,其中,以源端设备为执行主体的步骤可以单独实现成为源端设备侧的重定向方法,以目的端设备为执行主体的步骤可以单独实现成为目的端设备侧的重定向方法,本申请实施例在此不作赘述。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图14,其示出了本申请一个实施例提供的重定向装置的结构框图。该装置可以包括:
创建模块1401,用于基于源端设备标识以及目标重定向对象标识创建源端重定向实例,所述目标重定向对象标识用于表征目标重定向对象;
传输模块1402,用于向目的端设备传输所述源端重定向实例对应的重定向数据,以便所述目的端设备基于所述重定向数据,通过目的端重定向实例所指示的目标屏幕对所述目标重定向对象进行展示,所述目的端重定向实例与所述源端重定向实例对应同一重定向事件,且所述目的端重定向实例基于目的端设备标识以及目标屏幕标识创建得到。
可选的,所述传输模块1402,包括:
重定向器创建单元,用于创建源端重定向器;
传输单元,用于通过所述源端重定向器与目的端重定向器之间的链路,向所述目的端设备传输所述源端重定向实例对应的重定向数据,所述目的端重定向器由所述目的端设备创建得到。
可选的,所述重定向器创建单元,用于:
基于所述源端重定向实例、所述目的端设备标识以及所述目标重定向对象对应的媒体类型,创建至少一个所述源端重定向器,其中,不同的源端重定向器对应不同的媒体类型,所述媒体类型包括视频、音频以及控制中的至少一种;
所述传输单元,用于:
通过至少一个所述源端重定向器与至少一个所述目的端重定向器之间的至少一条链路,向所述目的端设备传输至少一种所述媒体类型的所述重定向数据。
可选的,当所述媒体类型为视频时,所述源端重定向器包括源端视频重定向器;
所述装置还包括:
视频编码模块,用于复用视频编码器对同一源端重定向实例对应的画面进行视频编码,得到视频数据流;
分流模块,用于将所述视频数据流分流至所述源端重定向实例对应的至少一个源端视频重定向器;
所述传输单元,用于:
通过所述源端视频重定向器与目的端视频重定向器之间的链路,向所述目的端设备传输所述视频数据流。
可选的,当所述媒体类型包括音频时,所述源端重新定向器包括源端音频重定向器;
所述装置还包括:
第一音频编码模块,用于当所述目标重定向对象的类型为屏幕镜像时,通过设备级音频采集编码器进行音频采集及编码,得到音频数据流;
第二音频编码模块,用于当所述目标重定向对象的类型为应用时,通过应用级音频采集编码器进行音频采集及编码,得到音频数据流;
所述传输单元,用于:
通过所述源端音频重定向器与目的端音频重定向器之间的链路,向所述目的端设备传输所述音频数据流。
可选的,当所述媒体类型包括控制时,所述源端重定向器包括源端控制重定向器;
所述装置还包括:
接收模块,用于通过所述源端控制重定向器与目的端控制重定向器之间的链路,接收所述目的端设备发送的反向控制指令,所述反向控制指令由所述目的端设备接收到对所述目标重定向对象的控制操作时触发;
控制模块,用于基于所述反向控制指令控制所述目标重定向对象。
可选的,所述创建模块1401,包括:
确定单元,用于响应于重定向操作,确定重定向信息;或,响应于第三方设备发送的重定向指令,获取所述重定向指令中包含的重定向信息;
实例创建单元,用于基于所述重定向信息中的所述源端设备标识以及所述目标重定向对象标识创建所述源端重定向实例;其中,所述重定向信息包含所述源端设备标识、所述目标重定向对象标识、所述目的端设备标识以及所述目标屏幕标识。
可选的,所述重定向信息中还包括媒体类型,所述媒体类型包括视频、音频以及控制中的至少一种。
可选的,所述确定单元,用于:
显示重定向设置界面;
响应于对所述重定向设置界面中源端设备选择控件的触发操作,确定所述源端设备标识;
响应于对所述重定向设置界面中所述源端设备对应的重定向对象选择控件的触发操作,确定所述目标重定向对象标识;
响应于对所述重定向设置界面中目的端设备选择控件的触发操作,确定所述目的端设备标识;
响应于对所述重定向设置界面中所述目的端设备对应的屏幕选择控件的触发操作,确定所述目标屏幕标识;
响应于对所述重定向设置界面中媒体选择控件的触发操作,确定所述媒体类型。
综上所述,重定向过程中,源端设备基于源端设备标识以及目标重定向对象标识创建源端重定向实例,目的端设备基于目的端设备标识以及目标屏幕标识,创建与源端重定向实例对应的目的端重定向实例,从而在接收到源端重定向实例对应的重定向数据后,通过目的端重定向实例所指示的目标屏幕对目标重定向对象进行展示;采用本申请实施例提供的方案,通过创建源端重定向实例和目的端重定向实例能够实现多层级的多对多重定向,比如,可以将同一源端设备中的不同投屏对象投屏至不同目的端设备,可以将源端设备中同一投屏对象同时投屏至多个屏幕,可以使同一目的端设备的不同屏幕显示不同的投屏对象,可以使目的端设备的屏幕同时显示多路投屏对象等等,适用于源端设备层面、重定向对象层面、目的端设备以及设备屏幕层面的多对多重定向场景,提高对复杂重定向场景的适用性。
请参考图15,其示出了本申请另一个实施例提供的重定向装置的结构框图。该装置可以包括:
创建模块1501,用于基于目的端设备标识以及目标屏幕标识创建目的端重定向实例,所述目标屏幕标识用于表征目的端设备的目标屏幕;
接收模块1502,用于接收源端设备传输的源端重定向实例对应的重定向数据,所述源端重定向实例与所述目的端重定向实例对应同一重定向事件,且所述目的端重定向实例基于源端设备标识以及目标重定向对象标识创建得到,所述目标重定向对象标识用于表征目标重定向对象;
展示模块1503,用于基于所述重定向数据,通过所述目标屏幕对所述目标重定向对象进行展示。
可选的,接收模块1502,包括:
重定向器创建单元,用于创建目的端重定向器;
接收单元,用于通过所述目的端重定向器与源端重定向器之间的链路,接收所述源端设备传输的所述重定向数据,所述源端重定向器由所述源端设备创建得到。
可选的,所述重定向器创建单元,用于:
基于所述源端重定向实例、所述目的端设备标识以及所述目标重定向对象对应的媒体类型,创建至少一个所述目的端重定向器,其中,不同的目的端重定向器对应不同的媒体类型,所述媒体类型包括视频、音频以及控制中的至少一种;
所述接收单元,用于:
通过至少一个所述目的端重定向器与至少一个所述源端重定向器之间的至少一条链路,接收所述源端设备传输的至少一种所述媒体类型的所述重定向数据。
可选的,当所述媒体类型包括视频时,所述目的端重定向器包括目的端视频重定向器;
所述装置还包括:
视频解码模块,用于复用视频解码器对同一源端重定向实例对应的视频数据流进行视频解码,得到所述源端重定向实例对应的画面。
可选的,当所述媒体类型包括视频时,所述目的端重定向器包括目的端视频重定向器;
所述展示模块1503,用于:
通过所述目标屏幕对应的目标投屏窗体应用,对所述目标重定向对象进行展示。
可选的,所述展示模块1503,包括:
第一展示单元,用于响应于所述目标屏幕对应的所述目标投屏窗体应用处于未启动状态,启动所述目标投屏窗体应用;通过所述目标投屏窗体应用对所述目标重定向对象进行展示;或,
第二展示单元,用于响应于所述目标投屏窗体应用处于启动状态,通过复用所述目标投屏窗体应用对所述目标重定向对象进行展示,其中,复用所述目标投屏窗体应用后,各个重定向对象分屏显示在所述目标屏幕中。
可选的,当所述媒体类型包括控制时,所述目的端重定向器包括目的端控制重定向器;
所述装置还包括:
生成模块,用于响应于对所述目标重定向对象的控制操作,生成反向控制指令;
发送模块,用于通过所述目的端控制重定向器与源端控制重定向器之间的链路,向所述源端设备发送所述反向控制指令,以便所述源端设备基于所述反向控制指令控制所述目标重定向对象。
可选的,所述生成模块,包括:
坐标确定单元,用于响应于对所述目标屏幕的触控操作,确定第一触控坐标,所述第一触控坐标位于所述目标屏幕的坐标系下;
坐标转换单元,用于响应于基于所述第一触控坐标确定出所述触控操作用于控制的所述目标重定向对象,将所述第一触控坐标转换为第二触控坐标,所述第二触控坐标位于所述目标重定向对象的坐标系下;
生成单元,用于基于所述第二触控坐标生成所述反向控制指令。
可选的,所述生成模块,还包括:
位置信息获取单元,用于获取所述目标投屏窗体应用中各个所述重定向对象的位置信息;
对象确定单元,用于基于所述第一触控坐标与所述位置信息之间的位置关系,确定所述触控操作所控制的重定向对象。
可选的,所述创建模块1501,包括:
重定向信息获取单元,用于获取重定向信息,所述重定向信息包含所述源端设备标识、所述目标重定向对象标识、所述目的端设备标识以及所述目标屏幕标识;
实例创建单元,用于基于所述重定向信息中的所述目的端设备标识以及所述目标屏幕标识创建所述目的端重定向实例。
可选的,所述重定向信息中还包括媒体类型,所述媒体类型包括视频、音频以及控制中的至少一种。
可选的,所述源端设备为移动终端,所述目的端设备为车载终端。
综上所述,重定向过程中,源端设备基于源端设备标识以及目标重定向对象标识创建源端重定向实例,目的端设备基于目的端设备标识以及目标屏幕标识,创建与源端重定向实例对应的目的端重定向实例,从而在接收到源端重定向实例对应的重定向数据后,通过目的端重定向实例所指示的目标屏幕对目标重定向对象进行展示;采用本申请实施例提供的方案,通过创建源端重定向实例和目的端重定向实例能够实现多层级的多对多重定向,比如,可以将同一源端设备中的不同投屏对象投屏至不同目的端设备,可以将源端设备中同一投屏对象同时投屏至多个屏幕,可以使同一目的端设备的不同屏幕显示不同的投屏对象,可以使目的端设备的屏幕同时显示多路投屏对象等等,适用于源端设备层面、重定向对象层面、目的端设备以及设备屏幕层面的多对多重定向场景,提高对复杂重定向场景的适用性。
请参考图16,其示出了本申请一个实施例提供的重定向系统的系统架构框图。该系统中包括:至少一个源端设备1610和至少一个目的端设备1620。
源端设备1610,用于基于源端设备标识以及目标重定向对象标识创建源端重定向实例,目标重定向对象标识用于表征目标重定向对象;向目的端设备传输源端重定向实例对应的重定向数据;
目的端设备1620,用于基于目的端设备标识以及目标屏幕标识创建目的端重定向实例,目标屏幕标识用于表征目的端设备的目标屏幕;接收源端设备传输的源端重定向实例对应的重定向数据,源端重定向实例与目的端重定向实例对应同一重定向事件;基于重定向数据,通过目标屏幕对所述目标重定向对象进行展示。
需要说明的是,源端设备1610与目的端设备1620进行重定向的具体过程可以参见上述方法实施例,本申请实施例在此不作赘述。
请参考图17,其示出了本申请一个示例性实施例提供的计算机设备的结构方框图。该计算机设备1700可以实现成为上述各个实施例中的源端设备或目的端设备。计算机设备1700可以包括一个或多个如下部件:处理器1710和存储器1720。
处理器1710可以包括一个或者多个处理核心。处理器1710利用各种接口和线路连接整个计算机设备1700内的各个部分,通过运行或执行存储在存储器1720内的指令、程序、代码集或指令集,以及调用存储在存储器1720内的数据,执行计算机设备1700的各种功能和处理数据。可选地,处理器1710可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1710可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)、神经网络处理器(Neural-network Processing Unit,NPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责触摸显示屏所需要显示的内容的渲染和绘制;NPU用于实现人工智能(Artificial Intelligence,AI)功能;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1710中,单独通过一块芯片进行实现。
存储器1720可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。可选地,该存储器1720包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1720可用于存储指令、程序、代码、代码集或指令集。存储器1720可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等;存储数据区可存储根据计算机设备1700的使用所创建的数据(比如音频数据、电话本)等。
除此之外,本领域技术人员可以理解,上述附图所示出的计算机设备1700的结构并不构成对计算机设备的限定,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,计算机设备1700中还包括显示屏、摄像组件、麦克风、扬声器、射频电路、输入单元、传感器(比如加速度传感器、角速度传感器、光线传感器等等)、音频电路、WiFi模块、电源、蓝牙模块等部件,在此不再赘述。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现如上各个实施例所述的重定向方法。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面的各种可选实现方式中提供的重定向方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (27)

1.一种重定向方法,其特征在于,所述方法用于源端设备,所述方法包括:
基于源端设备标识以及目标重定向对象标识创建源端重定向实例,所述目标重定向对象标识用于表征目标重定向对象;
向目的端设备传输所述源端重定向实例对应的重定向数据,以便所述目的端设备基于所述重定向数据,通过目的端重定向实例所指示的目标屏幕对所述目标重定向对象进行展示,所述目的端重定向实例与所述源端重定向实例对应同一重定向事件,且所述目的端重定向实例基于目的端设备标识以及目标屏幕标识创建得到。
2.根据权利要求1所述的方法,其特征在于,所述向目的端设备传输所述源端重定向实例对应的重定向数据,包括:
创建源端重定向器;
通过所述源端重定向器与目的端重定向器之间的链路,向所述目的端设备传输所述源端重定向实例对应的重定向数据,所述目的端重定向器由所述目的端设备创建得到。
3.根据权利要求2所述的方法,其特征在于,所述创建源端重定向器,包括:
基于所述源端重定向实例、所述目的端设备标识以及所述目标重定向对象对应的媒体类型,创建至少一个所述源端重定向器,其中,不同的源端重定向器对应不同的媒体类型,所述媒体类型包括视频、音频以及控制中的至少一种;
所述通过所述源端重定向器与目的端重定向器之间的链路,向所述目的端设备传输所述源端重定向实例对应的重定向数据,包括:
通过至少一个所述源端重定向器与至少一个所述目的端重定向器之间的至少一条链路,向所述目的端设备传输至少一种所述媒体类型的所述重定向数据。
4.根据权利要求3所述的方法,其特征在于,当所述媒体类型为视频时,所述源端重定向器包括源端视频重定向器;
所述方法还包括:
复用视频编码器对同一源端重定向实例对应的画面进行视频编码,得到视频数据流;
将所述视频数据流分流至所述源端重定向实例对应的至少一个源端视频重定向器;
所述通过至少一个所述源端重定向器与至少一个所述目的端重定向器之间的至少一条链路,向所述目的端设备传输至少一种所述媒体类型的所述重定向数据,包括:
通过所述源端视频重定向器与目的端视频重定向器之间的链路,向所述目的端设备传输所述视频数据流。
5.根据权利要求3所述的方法,其特征在于,当所述媒体类型包括音频时,所述源端重新定向器包括源端音频重定向器;
所述方法还包括:
当所述目标重定向对象的类型为屏幕镜像时,通过设备级音频采集编码器进行音频采集及编码,得到音频数据流;
当所述目标重定向对象的类型为应用时,通过应用级音频采集编码器进行音频采集及编码,得到音频数据流;
所述通过至少一个所述源端重定向器与至少一个所述目的端重定向器之间的至少一条链路,向所述目的端设备传输至少一种所述媒体类型的所述重定向数据,包括:
通过所述源端音频重定向器与目的端音频重定向器之间的链路,向所述目的端设备传输所述音频数据流。
6.根据权利要求3所述的方法,其特征在于,当所述媒体类型包括控制时,所述源端重定向器包括源端控制重定向器;
所述方法还包括:
通过所述源端控制重定向器与目的端控制重定向器之间的链路,接收所述目的端设备发送的反向控制指令,所述反向控制指令由所述目的端设备接收到对所述目标重定向对象的控制操作时触发;
基于所述反向控制指令控制所述目标重定向对象。
7.根据权利要求1至6任一所述的方法,其特征在于,所述基于源端设备标识以及目标重定向对象标识创建源端重定向实例,包括:
响应于重定向操作,确定重定向信息;或,响应于第三方设备发送的重定向指令,获取所述重定向指令中包含的重定向信息;
基于所述重定向信息中的所述源端设备标识以及所述目标重定向对象标识创建所述源端重定向实例;其中,所述重定向信息包含所述源端设备标识、所述目标重定向对象标识、所述目的端设备标识以及所述目标屏幕标识。
8.根据权利要求7所述的方法,其特征在于,所述重定向信息中还包括媒体类型,所述媒体类型包括视频、音频以及控制中的至少一种。
9.根据权利要求8所述的方法,其特征在于,所述响应于重定向操作,确定重定向信息,包括:
显示重定向设置界面;
响应于对所述重定向设置界面中源端设备选择控件的触发操作,确定所述源端设备标识;
响应于对所述重定向设置界面中所述源端设备对应的重定向对象选择控件的触发操作,确定所述目标重定向对象标识;
响应于对所述重定向设置界面中目的端设备选择控件的触发操作,确定所述目的端设备标识;
响应于对所述重定向设置界面中所述目的端设备对应的屏幕选择控件的触发操作,确定所述目标屏幕标识;
响应于对所述重定向设置界面中媒体选择控件的触发操作,确定所述媒体类型。
10.一种重定向方法,其特征在于,所述方法用于目的端设备,所述方法包括:
基于目的端设备标识以及目标屏幕标识创建目的端重定向实例,所述目标屏幕标识用于表征所述目的端设备的目标屏幕;
接收源端设备传输的源端重定向实例对应的重定向数据,所述源端重定向实例与所述目的端重定向实例对应同一重定向事件,且所述目的端重定向实例基于源端设备标识以及目标重定向对象标识创建得到,所述目标重定向对象标识用于表征目标重定向对象;
基于所述重定向数据,通过所述目标屏幕对所述目标重定向对象进行展示。
11.根据权利要求10所述的方法,其特征在于,所述接收源端设备传输的源端重定向实例对应的重定向数据,包括:
创建目的端重定向器;
通过所述目的端重定向器与源端重定向器之间的链路,接收所述源端设备传输的所述重定向数据,所述源端重定向器由所述源端设备创建得到。
12.根据权利要求11所述的方法,其特征在于,所述创建目的端重定向器,包括:
基于所述源端重定向实例、所述目的端设备标识以及所述目标重定向对象对应的媒体类型,创建至少一个所述目的端重定向器,其中,不同的目的端重定向器对应不同的媒体类型,所述媒体类型包括视频、音频以及控制中的至少一种;
所述通过所述目的端重定向器与源端重定向器之间的链路,接收所述源端设备传输的所述重定向数据,包括:
通过至少一个所述目的端重定向器与至少一个所述源端重定向器之间的至少一条链路,接收所述源端设备传输的至少一种所述媒体类型的所述重定向数据。
13.根据权利要求12所述的方法,其特征在于,当所述媒体类型包括视频时,所述目的端重定向器包括目的端视频重定向器;
所述方法还包括:
复用视频解码器对同一源端重定向实例对应的视频数据流进行视频解码,得到所述源端重定向实例对应的画面。
14.根据权利要求12所述的方法,其特征在于,当所述媒体类型包括视频时,所述目的端重定向器包括目的端视频重定向器;
所述通过所述目标屏幕对所述目标重定向对象进行展示,包括:
通过所述目标屏幕对应的目标投屏窗体应用,对所述目标重定向对象进行展示。
15.根据权利要求14所述的方法,其特征在于,所述通过所述目标屏幕对应的目标投屏窗体应用,对所述目标重定向对象进行展示,包括:
响应于所述目标屏幕对应的所述目标投屏窗体应用处于未启动状态,启动所述目标投屏窗体应用;通过所述目标投屏窗体应用对所述目标重定向对象进行展示;或,
响应于所述目标投屏窗体应用处于启动状态,通过复用所述目标投屏窗体应用对所述目标重定向对象进行展示,其中,复用所述目标投屏窗体应用后,各个重定向对象分屏显示在所述目标屏幕中。
16.根据权利要求12所述的方法,其特征在于,当所述媒体类型包括控制时,所述目的端重定向器包括目的端控制重定向器;
所述方法还包括:
响应于对所述目标重定向对象的控制操作,生成反向控制指令;
通过所述目的端控制重定向器与源端控制重定向器之间的链路,向所述源端设备发送所述反向控制指令,以便所述源端设备基于所述反向控制指令控制所述目标重定向对象。
17.根据权利要求16所述的方法,其特征在于,所述响应于对所述目标重定向对象的控制操作,生成反向控制指令,包括:
响应于对所述目标屏幕的触控操作,确定第一触控坐标,所述第一触控坐标位于所述目标屏幕的坐标系下;
响应于基于所述第一触控坐标确定出所述触控操作用于控制的所述目标重定向对象,将所述第一触控坐标转换为第二触控坐标,所述第二触控坐标位于所述目标重定向对象的坐标系下;
基于所述第二触控坐标生成所述反向控制指令。
18.根据权利要求17所述的方法,其特征在于,所述目标屏幕对应的目标投屏窗体应用被至少两个重定向对象复用时,所述响应于对所述目标屏幕的触控操作,确定第一触控坐标之后,还包括:
获取所述目标投屏窗体应用中各个所述重定向对象的位置信息;
基于所述第一触控坐标与所述位置信息之间的位置关系,确定所述触控操作所控制的重定向对象。
19.根据权利要求10至18任一所述的方法,其特征在于,所述基于目的端设备标识以及目标屏幕标识创建目的端重定向实例,包括:
获取重定向信息,所述重定向信息包含所述源端设备标识、所述目标重定向对象标识、所述目的端设备标识以及所述目标屏幕标识;
基于所述重定向信息中的所述目的端设备标识以及所述目标屏幕标识创建所述目的端重定向实例。
20.根据权利要求19所述的方法,其特征在于,所述重定向信息中还包括媒体类型,所述媒体类型包括视频、音频以及控制中的至少一种。
21.根据权利要求10至18任一所述的方法,其特征在于,所述源端设备为移动终端,所述目的端设备为车载终端。
22.一种重定向装置,其特征在于,所述装置包括:
创建模块,用于基于源端设备标识以及目标重定向对象标识创建源端重定向实例,所述目标重定向对象标识用于表征目标重定向对象;
传输模块,用于向目的端设备传输所述源端重定向实例对应的重定向数据,以便所述目的端设备基于所述重定向数据,通过目的端重定向实例所指示的目标屏幕对所述目标重定向对象进行展示,所述目的端重定向实例与所述源端重定向实例对应同一重定向事件,且所述目的端重定向实例基于目的端设备标识以及目标屏幕标识创建得到。
23.一种重定向装置,其特征在于,所述装置包括:
创建模块,用于基于目的端设备标识以及目标屏幕标识创建目的端重定向实例,所述目标屏幕标识用于表征目的端设备的目标屏幕;
接收模块,用于接收源端设备传输的源端重定向实例对应的重定向数据,所述源端重定向实例与所述目的端重定向实例对应同一重定向事件,且所述目的端重定向实例基于源端设备标识以及目标重定向对象标识创建得到,所述目标重定向对象标识用于表征目标重定向对象;
展示模块,用于基于所述重定向数据,通过所述目标屏幕对所述目标重定向对象进行展示。
24.一种重定向系统,其特征在于,所述重定向系统包括:至少一个源端设备和至少一个目的端设备;
所述源端设备,用于基于源端设备标识以及目标重定向对象标识创建源端重定向实例,所述目标重定向对象标识用于表征目标重定向对象;向目的端设备传输所述源端重定向实例对应的重定向数据;
所述目的端设备,用于基于目的端设备标识以及目标屏幕标识创建目的端重定向实例,所述目标屏幕标识用于表征所述目的端设备的目标屏幕;接收所述源端设备传输的源端重定向实例对应的重定向数据,所述源端重定向实例与所述目的端重定向实例对应同一重定向事件;基于所述重定向数据,通过所述目标屏幕对所述目标重定向对象进行展示。
25.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如权利要求1至9任一所述的重定向方法,或,实现如权利要10至21任一所述的重定向方法。
26.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现如权利要求1至9任一所述的重定向方法,或,实现如权利要10至21任一所述的重定向方法。
27.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中;计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令,使得所述计算机设备执行如权利要求1至9任一所述的重定向方法,或,如权利要10至21任一所述的重定向方法。
CN202111249916.7A 2021-10-26 2021-10-26 重定向方法、装置、设备、存储介质及程序产品 Active CN113992966B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111249916.7A CN113992966B (zh) 2021-10-26 2021-10-26 重定向方法、装置、设备、存储介质及程序产品
PCT/CN2022/117904 WO2023071546A1 (zh) 2021-10-26 2022-09-08 重定向方法、装置、设备、存储介质及程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111249916.7A CN113992966B (zh) 2021-10-26 2021-10-26 重定向方法、装置、设备、存储介质及程序产品

Publications (2)

Publication Number Publication Date
CN113992966A true CN113992966A (zh) 2022-01-28
CN113992966B CN113992966B (zh) 2024-09-24

Family

ID=79741857

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111249916.7A Active CN113992966B (zh) 2021-10-26 2021-10-26 重定向方法、装置、设备、存储介质及程序产品

Country Status (2)

Country Link
CN (1) CN113992966B (zh)
WO (1) WO2023071546A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114979899A (zh) * 2022-04-20 2022-08-30 Oppo广东移动通信有限公司 音频重定向方法、装置、设备及存储介质
WO2023071546A1 (zh) * 2021-10-26 2023-05-04 Oppo广东移动通信有限公司 重定向方法、装置、设备、存储介质及程序产品
WO2023207194A1 (zh) * 2022-04-25 2023-11-02 Oppo广东移动通信有限公司 画面显示方法、装置、设备、存储介质及程序产品
WO2024113187A1 (zh) * 2022-11-29 2024-06-06 京东方科技集团股份有限公司 一种多设备协同控制的方法、显示设备及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160182929A1 (en) * 2013-07-03 2016-06-23 Luis Miguel Ortiz Methods and systems enabling access by portable wireless handheld devices to data associated with programming rendering on flat panel displays
CN110221798A (zh) * 2019-05-29 2019-09-10 华为技术有限公司 一种投屏方法、系统及相关装置
CN111131866A (zh) * 2019-11-25 2020-05-08 华为技术有限公司 一种投屏音视频播放方法及电子设备
CN111984215A (zh) * 2020-08-19 2020-11-24 Oppo广东移动通信有限公司 多媒体数据播放方法、终端及存储介质
CN112860204A (zh) * 2021-02-19 2021-05-28 西安万像电子科技有限公司 数据处理方法及系统
CN112905289A (zh) * 2021-03-10 2021-06-04 Oppo广东移动通信有限公司 应用画面的显示方法、装置、终端、投屏系统及介质
CN113329240A (zh) * 2021-05-10 2021-08-31 西安万像电子科技有限公司 投屏的方法及装置
CN113542839A (zh) * 2021-06-09 2021-10-22 荣耀终端有限公司 电子设备的投屏方法和电子设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111078168B (zh) * 2019-11-13 2021-10-22 联想(北京)有限公司 一种信息处理方法、第一电子设备和存储介质
CN113242462B (zh) * 2021-06-23 2022-03-25 烽火通信科技股份有限公司 一种实现融合终端的投屏方法和装置
CN113992966B (zh) * 2021-10-26 2024-09-24 Oppo广东移动通信有限公司 重定向方法、装置、设备、存储介质及程序产品

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160182929A1 (en) * 2013-07-03 2016-06-23 Luis Miguel Ortiz Methods and systems enabling access by portable wireless handheld devices to data associated with programming rendering on flat panel displays
CN110221798A (zh) * 2019-05-29 2019-09-10 华为技术有限公司 一种投屏方法、系统及相关装置
CN111131866A (zh) * 2019-11-25 2020-05-08 华为技术有限公司 一种投屏音视频播放方法及电子设备
CN111984215A (zh) * 2020-08-19 2020-11-24 Oppo广东移动通信有限公司 多媒体数据播放方法、终端及存储介质
CN112860204A (zh) * 2021-02-19 2021-05-28 西安万像电子科技有限公司 数据处理方法及系统
CN112905289A (zh) * 2021-03-10 2021-06-04 Oppo广东移动通信有限公司 应用画面的显示方法、装置、终端、投屏系统及介质
CN113329240A (zh) * 2021-05-10 2021-08-31 西安万像电子科技有限公司 投屏的方法及装置
CN113542839A (zh) * 2021-06-09 2021-10-22 荣耀终端有限公司 电子设备的投屏方法和电子设备

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023071546A1 (zh) * 2021-10-26 2023-05-04 Oppo广东移动通信有限公司 重定向方法、装置、设备、存储介质及程序产品
CN114979899A (zh) * 2022-04-20 2022-08-30 Oppo广东移动通信有限公司 音频重定向方法、装置、设备及存储介质
WO2023202152A1 (zh) * 2022-04-20 2023-10-26 Oppo广东移动通信有限公司 音频重定向方法、装置、设备及存储介质
WO2023207194A1 (zh) * 2022-04-25 2023-11-02 Oppo广东移动通信有限公司 画面显示方法、装置、设备、存储介质及程序产品
WO2024113187A1 (zh) * 2022-11-29 2024-06-06 京东方科技集团股份有限公司 一种多设备协同控制的方法、显示设备及系统
WO2024114069A1 (zh) * 2022-11-29 2024-06-06 京东方科技集团股份有限公司 一种多设备协同控制的方法、显示设备及系统

Also Published As

Publication number Publication date
CN113992966B (zh) 2024-09-24
WO2023071546A1 (zh) 2023-05-04

Similar Documents

Publication Publication Date Title
CN113992966B (zh) 重定向方法、装置、设备、存储介质及程序产品
CN107147769B (zh) 基于移动终端的设备控制方法、装置和移动终端
US9370718B2 (en) System and method for delivering media over network
US9172979B2 (en) Experience or “sentio” codecs, and methods and systems for improving QoE and encoding based on QoE experiences
CN116193213A (zh) 用于虚拟现实应用的音频传递优化
US8876601B2 (en) Method and apparatus for providing a multi-screen based multi-dimension game service
CN112905289A (zh) 应用画面的显示方法、装置、终端、投屏系统及介质
US11914922B2 (en) Audio mixing for teleconferencing
CN110636305B (zh) 图像渲染和编码方法及相关装置
Han Mobile immersive computing: Research challenges and the road ahead
WO2023207194A1 (zh) 画面显示方法、装置、设备、存储介质及程序产品
JP7508586B2 (ja) 没入型テレカンファレンスおよびテレプレゼンスのためのマルチグルーピングの方法、装置、およびコンピュータプログラム
CN115550705A (zh) 一种音频播放方法及装置
US20110271195A1 (en) Method and apparatus for allocating content components to different hardward interfaces
CN114157903B (zh) 重定向方法、装置、设备、存储介质及程序产品
WO2023202152A1 (zh) 音频重定向方法、装置、设备及存储介质
WO2022089713A1 (en) Apparatus, method, and computer program for providing service level for extended reality application
CN115364477A (zh) 云游戏控制方法、装置、电子设备及存储介质
CN114071170A (zh) 一种网络直播互动方法及设备
CN111930328A (zh) 应用数据的显示方法、装置及系统
GB2568726A (en) Object prioritisation of virtual content
US20220391167A1 (en) Adaptive audio delivery and rendering
WO2018178748A1 (en) Terminal-to-mobile-device system, where a terminal is controlled through a mobile device, and terminal remote control method
KR20120045953A (ko) 신호 처리 장치 및 그 방법
CN118741195A (zh) 一种视频切换方法及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant