一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种投屏方法及设备与流程

2022-06-11 15:29:09 来源:中国专利 TAG:

一种投屏方法及设备
1.本技术要求于2020年12月08日提交国家知识产权局、申请号为202011425441.8、申请名称为“一种投屏方法及设备”的中国专利申请的优先权,其全部内容通过引用结合在本技术中。
技术领域
2.本技术涉及电子设备领域,尤其涉及一种投屏方法及设备。


背景技术:

3.为了提高办公效率,用户可将不同设备连接起来一起配合使用。如,一个设备的显示界面可投射到另一个设备的显示屏上供用户查看。目前,一个设备的显示界面能够在另一个设备上呈现,主要利用一对一的镜像投屏技术实现,即仅能实现一对一的投屏。
4.但是,在如开会、发布会演示等场景下,可能需要将多个设备的显示界面在同一个设备(如,大屏设备)上呈现供用户查看。


技术实现要素:

5.本技术实施例提供一种投屏方法及设备,实现了多个设备的显示界面在同一个设备上的呈现,即实现了多对一的投屏。另外,投屏源端通过创建多路媒体流,并根据策略分布到一个或多个投屏目的端,实现了一个设备中的多个应用的内容到其他设备上的投射显示。
6.为达到上述目标,本技术采用如下技术方案:
7.第一方面,本技术实施例提供一种投屏方法,该方法可以应用于第一终端,第一终端与多个第二终端连接,该方法可以包括:第一终端从多个第二终端中每个第二终端接收数据;第一终端根据从多个第二终端接收的数据,在第一终端上显示多个第一界面,多个第一界面与多个第二终端一一对应;其中,第一界面的内容是对应第二终端显示的第二界面内容的镜像,或第一界面的内容与对应第二终端显示的第二界面的部分内容相同。
8.采用上述技术方案,作为投屏目的端的第一终端,根据多个作为投屏源端的第二终端发送的数据,可在第一终端的显示屏上显示多个第一界面,这多个第一界面与多个第二终端一一对应。第一界面的内容是对应第二终端显示的第二界面内容的镜像,或第一界面的内容与对应第二终端显示的第二界面的部分内容相同。实现了多个投屏源端到一个投屏目的端的多对一投屏。这样,如在开会、发布会演示等场景下,多个手机,平板电脑可将其显示屏上的内容(如ppt,所播视频)投射到同一个大屏设备上呈现,实现了多对一的投屏。提高了多设备协同使用的效率,提高了用户的使用体验。
9.在一种可能的实现方式中,该方法还可以包括:第一终端可以创建多个绘制组件,这多个绘制组件与多个第二终端一一对应。作为一种示例,绘制组件可以为视图或画布。第一终端根据从多个第二终端接收的数据,在第一终端上显示多个第一界面,可以包括:第一终端根据从多个第二终端接收的数据,在多个绘制组件上分别绘制对应第二终端的第一界
面,以在第一终端上显示多个第一界面。通过创建与第二终端对应的视图或画布,用于实现对应第二终端的投屏界面的绘制,为实现多对一投屏做好准备。
10.在另一种可能的实现方式中,在第一终端根据从多个第二终端接收的数据,在第一终端上显示多个第一界面之前,该方法还可以包括:第一终端配置多个解码参数,这多个解码参数与多个第二终端一一对应;第一终端根据多个解码参数,对从对应第二终端接收的数据进行解码。通过为不同的第二终端配置对应的解码参数,用于对对应的数据进行解码,实现多路解码。
11.在另一种可能的实现方式中,在第一终端从多个第二终端中每个第二终端接收数据之前,该方法还可以包括:第一终端获取多个第二终端的连接信息,该连接信息用于第一终端与对应第二终端建立连接;其中,多个绘制组件与多个第二终端一一对应,包括:多个绘制组件与多个第二终端的连接信息一一对应;多个解码参数与多个第二终端一一对应,包括:多个解码参数与多个第二终端的连接信息一一对应。
12.在另一种可能的实现方式中,在第一终端根据从多个第二终端接收的数据,在第一终端上显示多个第一界面之后,该方法还可以包括:第一终端接收用户对第一界面的窗口的第一操作;响应于第一操作,第一终端缩小、放大或关闭窗口,或切换焦点窗口。用户使用投屏目的端的输入设备可对第一界面进行控制,如能够通过设置焦点并根据用户操作在不同源端设备的投屏界面之间切换焦点,又如实现对不同投屏源端的独立控制(如缩小、放大或关闭投屏界面)。投屏目的端还可以根据源端设备的增加或减少进行对呈现的投屏界面的布局进行调整,以给用户呈现最佳的视觉效果。
13.在另一种可能的实现方式中,在第一终端根据从多个第二终端接收的数据,在第一终端上显示多个第一界面之后,该方法还可以包括:第一终端接收用户对与第二终端对应的第一界面的第二操作;第一终端将第二操作的数据发送给第二终端,用于第二终端根据第二操作显示第三界面。在接收到用户使用投屏目的端的输入设备对第一界面,如投屏界面的操作后,第一终端通过将对应操作的数据发送给该第一界面对应的投屏源端,以便投屏源端做出对应的响应,使得用户使用投屏目的端的输入设备便可实现对投屏源端的反控。
14.在另一种可能的实现方式中,在第一终端将第二操作的数据发送给第二终端之后,该方法还可以包括:第一终端从第二终端接收更新的数据;第一终端根据更新的数据,将第二终端对应的第一界面更新为第四界面,第四界面的内容是第三界面内容的镜像,或第四界面的内容与第三界面的部分内容相同。在投屏源端的界面发生改变后,可将更新后界面的数据发送给第一终端,以便第一终端可对第一终端显示的对应界面进行更新。
15.在另一种可能的实现方式中,第一终端还与第三终端建立连接;该方法还可以包括:第一终端将从多个第二终端接收的数据发送给第三终端,用于第三终端显示多个第一界面。作为一种示例,第三终端可以是与第一终端进行畅连通话的终端,第一终端通过将来自投屏源端的数据发送给第三终端,使得与第一终端进行畅连通话的第三终端也可以显示投屏源端的界面,实现跨地域办公。这种跨地域办公方式,可以提升会议效率,节省跨地域办公的沟通成本。
16.在另一种可能的实现方式中,该方法还可以包括:第一终端接收来自第三终端的视频数据;第一终端在第一终端显示多个第一界面的同时,根据第三终端的视频数据在第
一终端上显示视频通话画面。在另一种可能的实现方式中,该方法还可以包括:第一终端采集视频数据,发送给第三终端,用于第三终端在第三终端上显示多个第一界面的同时,显示视频通话画面。两个地域的终端不仅可展示视频通话画面,同时还可以显示本地和对端投射的内容,进一步提升了会议效率,节省跨地域办公的沟通成本。
17.第二方面,本技术实施例提供一种投屏方法,该方法可以应用于第二终端,第二终端与第一终端连接,该方法可以包括:第二终端显示第二界面;第二终端接收用户操作;响应于用户操作,第二终端向第一终端发送第二界面的数据,用于第一终端显示与第二终端对应的第一界面,第一终端上还显示有与其他第二终端对应的第一界面;其中,第一界面的内容是对应第二终端显示的第二界面内容的镜像,或第一界面的内容与对应第二终端显示的第二界面的部分内容相同。
18.采用上述技术方案,作为投屏源端的多个第二终端可根据用户触发将当前界面的数据发送给作为投屏目的端的第一终端,以便第一终端可根据多个第二终端发送的数据,可在第一终端的显示屏上显示多个第一界面,这多个第一界面与多个第二终端一一对应。第一界面的内容是对应第二终端显示的第二界面内容的镜像,或第一界面的内容与对应第二终端显示的第二界面的部分内容相同。实现了多个投屏源端到一个投屏目的端的多对一投屏。这样,如在开会、发布会演示等场景下,多个手机,平板电脑可将其显示屏上的内容(如ppt,所播视频)投射到同一个大屏设备上呈现,实现了多对一的投屏。提高了多设备协同使用的效率,提高了用户的使用体验。
19.在一种可能的实现方式中,上述用户操作可以为开始投屏的操作;在第二终端向第一终端发送第二界面的数据之前,该方法还可以包括:第二终端获取第二界面的数据;其中,在第一界面的内容是第二界面内容的镜像的情况下,第二界面的数据为第二界面的录屏数据;在第一界面的内容与第二界面的部分内容相同的情况下,第二界面的数据为第二界面中预定元素所在图层的录屏数据。在无线投屏场景下,多个第二终端可将各自当前显示的界面或界面中的部分内容投射到第一终端上显示,实现多对一投屏。
20.在另一种可能的实现方式中,在第一界面的内容与第二界面的部分内容相同的情况下,在第二终端获取第二界面的数据之前,该方法还可以包括:第二终端显示配置界面,配置界面包括图层过滤设置选项;第二终端接收用户对图层过滤设置选项的选中操作。在接收到用户对图层过滤设置选项的选中操作后,作为投屏源端的第二终端可将当前界面中部分元素(如用户拖拽的元素,或预定元素)所在图层投射到投屏目的端,实现图层过滤。这样,可确保投屏源端的隐私信息不被投射到投屏目的端,保护了用户的隐私。
21.在另一种可能的实现方式中,第二终端接收用户操作,可以包括:第二终端接收用户对第二界面或第二界面中元素的拖拽操作;在第二终端向第一终端发送第二界面的数据之前,该方法还可以包括:第二终端确定用户的拖拽意图是跨设备拖拽;第二终端获取第二界面的数据。在跨设备拖拽场景中,用户通过拖拽第二终端的界面或界面中的元素,可触发投屏。
22.在另一种可能的实现方式中,在接收到用户对第二界面中元素的拖拽操作的情况下,该元素可以为视频组件,悬浮窗,画中画或自由小窗,第二界面的数据为元素所在图层的录屏数据;或,该元素为第二界面中的用户界面(ui)控件,第二界面的数据为第二界面的指令流和ui控件的标识,或第二界面的数据为ui控件的绘制指令和标识。在投射界面中的
ui控件的场景中,可将需投射的内容对应的指令流发送给投屏目的端实现投屏,这样,可提高投屏目的端投屏界面的显示效果,还可节约传输带宽。
23.第三方面,本技术实施例提供一种投屏装置,该装置可以应用于第一终端,第一终端与多个第二终端连接,该装置可以包括:接收单元,用于从多个第二终端中每个第二终端接收数据;显示单元,用于根据从多个第二终端接收的数据,在第一终端上显示多个第一界面,多个第一界面与多个第二终端一一对应;其中,第一界面的内容是对应第二终端显示的第二界面内容的镜像,或第一界面的内容与对应第二终端显示的第二界面的部分内容相同。
24.在一种可能的实现方式中,该装置还可以包括:创建单元,用于创建多个绘制组件,多个绘制组件与多个第二终端一一对应,绘制组件为视图或画布;显示单元根据从多个第二终端接收的数据,在第一终端上显示多个第一界面,可以包括:根据从多个第二终端接收的数据,在多个绘制组件上分别绘制对应第二终端的第一界面,以在第一终端上显示多个第一界面。
25.在另一种可能的实现方式中,该装置还可以包括:配置单元,用于配置多个解码参数,多个解码参数与多个第二终端一一对应;解码单元,用于根据多个解码参数,对从对应第二终端接收的数据进行解码。
26.在另一种可能的实现方式中,该装置还可以包括:获取单元,用于获取多个第二终端的连接信息,连接信息用于第一终端与对应第二终端建立连接;其中,多个绘制组件与多个第二终端一一对应,包括:多个绘制组件与多个第二终端的连接信息一一对应;多个解码参数与多个第二终端一一对应,包括:多个解码参数与多个第二终端的连接信息一一对应。
27.在另一种可能的实现方式中,该装置还可以包括:输入单元,用于接收用户对第一界面的窗口的第一操作;显示单元,还用于响应于第一操作,缩小、放大或关闭窗口,或切换焦点窗口。
28.在另一种可能的实现方式中,输入单元,还用于接收用户对与第二终端对应的第一界面的第二操作;该装置还可以包括:发送单元,用于将第二操作的数据发送给第二终端,用于第二终端根据第二操作显示第三界面。
29.在另一种可能的实现方式中,接收单元,还用于从第二终端接收更新的数据;显示单元,还用于根据更新的数据,将第二终端对应的第一界面更新为第四界面,第四界面的内容是第三界面内容的镜像,或第四界面的内容与第三界面的部分内容相同。
30.在另一种可能的实现方式中,第一终端还与第三终端建立连接;发送单元,还用于将从多个第二终端接收的数据发送给第三终端,用于第三终端显示多个第一界面。
31.在另一种可能的实现方式中,接收单元,还用于接收来自第三终端的视频数据;显示单元,还用于在第一终端显示多个第一界面的同时,根据第三终端的视频数据在第一终端上显示视频通话画面。
32.在另一种可能的实现方式中,该装置还可以包括:采集单元,用于采集视频数据;发送单元,还用于发送视频数据给第三终端,用于第三终端在第三终端上显示多个第一界面的同时,显示视频通话画面。
33.第四方面,本技术实施例提供一种投屏装置,该装置可以应用于第二终端,第二终端与第一终端连接,该装置可以包括:显示单元,用于显示第二界面;输入单元,用于接收用
户操作;发送单元,用于响应于用户操作,向第一终端发送第二界面的数据,用于第一终端显示与第二终端对应的第一界面,第一终端上还显示有与其他第二终端对应的第一界面;其中,第一界面的内容是对应第二终端显示的第二界面内容的镜像,或第一界面的内容与对应第二终端显示的第二界面的部分内容相同。
34.在一种可能的实现方式中,用户操作为开始投屏的操作;该装置还可以包括:获取单元,用于获取第二界面的数据;其中,在第一界面的内容是第二界面内容的镜像的情况下,第二界面的数据为第二界面的录屏数据;在第一界面的内容与第二界面的部分内容相同的情况下,第二界面的数据为第二界面中预定元素所在图层的录屏数据。
35.在另一种可能的实现方式中,显示单元,还用于显示配置界面,配置界面包括图层过滤设置选项;输入单元,还用于接收用户对图层过滤设置选项的选中操作。
36.在另一种可能的实现方式中,输入单元接收用户操作,可以包括:输入单元接收用户对第二界面或第二界面中元素的拖拽操作;该装置还可以包括:确定单元,用于确定用户的拖拽意图是跨设备拖拽;获取单元,还用于获取第二界面的数据。
37.在另一种可能的实现方式中,在接收到用户对第二界面中元素的拖拽操作的情况下,该元素可以为视频组件,悬浮窗,画中画或自由小窗,第二界面的数据为元素所在图层的录屏数据;或,该元素可以为第二界面中的用户界面ui控件,第二界面的数据为第二界面的指令流和ui控件的标识,或第二界面的数据为ui控件的绘制指令和标识。
38.第五方面,本技术实施例提供一种投屏方法,应用于第一终端,该方法可以包括:第一终端显示第一应用的界面;第一终端接收第一操作;响应于第一操作,第一终端向第二终端发送第一应用的界面的数据,用于第二终端显示第一界面,第一界面的内容是第一应用的界面内容的镜像,或第一界面的内容与第一应用的界面的部分内容相同;第一终端接收第二操作;响应于第二操作,第一终端显示第二应用的界面;第一终端接收第三操作;在第一终端向第二终端投射第一应用的界面的情况下,响应于第三操作,第一终端向第三终端发送第二应用的界面的数据,用于第三终端在显示第二界面,第二界面的内容是第二应用的界面内容的镜像,或第二界面的内容与第二应用的界面的部分内容相同。
39.采用上述技术方案,作为投屏源端的第一终端可通过创建多路媒体流,实现该第一终端的多个应用的内容到一个或多个投屏目的端的投射,满足了多任务并行的需求,这样可提高终端的使用效率,提升用户的使用体验。
40.在一种可能的实现方式中,该方法还可以包括:第一终端创建第一虚拟显示;第一终端将第一应用的界面或第一应用的界面中第一元素绘制到第一虚拟显示,以获取第一应用的界面的数据;第一终端创建第二虚拟显示;第一终端将第二应用的界面或第二应用的界面中第二元素绘制到第二虚拟显示,以获取第二应用的界面的数据。这样,通过创建虚拟显示,并基于虚拟显示对投屏源端的内容进行屏幕录制,以实现投屏源端内容在投屏目的端的显示,支持镜像投屏和异源投屏。
41.在另一种可能的实现方式中,该方法还可以包括:第一终端向第二终端发送第一应用的音频数据,用于第二终端输出对应音频;第一终端向第三终端发送第二应用的音频数据,用于第三终端输出对应音频。这样,支持投屏源端音频数据到投屏目标端的投射显示。
42.在另一种可能的实现方式中,该方法还可以包括:第一终端创建第一录音
(audiorecord)对象,基于第一audiorecord对象录制获得第一应用的音频数据;第一终端创建第二audiorecord对象,基于第二audiorecord对象录制获得第二应用的音频数据。这样,通过创建audiorecord对象,并基于audiorecord对象对投屏源端的音频进行录制,以实现投屏源端音频数据在投屏目的端的输出。
43.在另一种可能的实现方式中,第二终端与第三终端相同。
44.第六方面,本技术实施例提供一种投屏方法,应用于第二终端,该方法可以包括:第二终端接收来自第一终端的第一应用的界面的数据;第二终端显示第一界面,第一界面的内容是第一应用的界面内容的镜像,或第一界面的内容与第一应用的界面的部分内容相同;第二终端接收来自第一终端的第二应用的界面的数据;第二终端显示第三界面,第三界面包括第一界面的内容和第二界面的内容,第二界面的内容是第二应用的界面内容的镜像,或第二界面的内容与第二应用的界面的部分内容相同。
45.采用上述技术方案,作为投屏目的端的第二终端可接收来自作为投屏源端的第一终端的多路媒体流,实现第一终端的多个应用的内容到第二终端的投射,满足了多任务并行的需求,这样可提高终端的使用效率,提升用户的使用体验。
46.第七方面,本技术实施例提供一种投屏装置,应用于第一终端,该装置可以包括:显示单元,用于显示第一应用的界面;输入单元,用于接收第一操作;发送单元,用于响应于第一操作,向第二终端发送第一应用的界面的数据,用于第二终端显示第一界面,第一界面的内容是第一应用的界面内容的镜像,或第一界面的内容与第一应用的界面的部分内容相同;输入单元,还用于接收第二操作;显示单元,还用于响应于第二操作,显示第二应用的界面;输入单元,还用于接收第三操作;发送单元,还用于在第一终端向第二终端投射第一应用的界面的情况下,响应于第三操作,向第三终端发送第二应用的界面的数据,用于第三终端在显示第二界面,第二界面的内容是第二应用的界面内容的镜像,或第二界面的内容与第二应用的界面的部分内容相同。
47.在一种可能的实现方式中,该装置还可以包括:创建单元,用于创建第一虚拟显示;绘制单元,用于将第一应用的界面或第一应用的界面中第一元素绘制到第一虚拟显示,以获取第一应用的界面的数据;创建单元,还用于创建第二虚拟显示;绘制单元,还用于将第二应用的界面或第二应用的界面中第二元素绘制到第二虚拟显示,以获取第二应用的界面的数据。
48.在另一种可能的实现方式中,发送单元,还用于向第二终端发送第一应用的音频数据,用于第二终端输出对应音频;向第三终端发送第二应用的音频数据,用于第三终端输出对应音频。
49.在另一种可能的实现方式中,创建单元,还用于创建第一audiorecord对象;该装置还可以包括:录制单元,用于基于第一audiorecord对象录制获得第一应用的音频数据;创建单元,还用于创建第二audiorecord对象;录制单元,还用于基于第二audiorecord对象录制获得第二应用的音频数据。
50.在另一种可能的实现方式中,第二终端与第三终端相同。
51.第八方面,本技术实施例提供一种投屏装置,应用于第二终端,该装置可以包括:接收单元,用于接收来自第一终端的第一应用的界面的数据;显示单元,用于显示第一界面,第一界面的内容是第一应用的界面内容的镜像,或第一界面的内容与第一应用的界面
的部分内容相同;接收单元,还用于接收来自第一终端的第二应用的界面的数据;显示单元,还用于显示第三界面,第三界面包括第一界面的内容和第二界面的内容,第二界面的内容是第二应用的界面内容的镜像,或第二界面的内容与第二应用的界面的部分内容相同。
52.第九方面,本技术实施例提供一种投屏装置,该装置可以包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令时使得投屏装置实现如第一方面或第一方面可能的实现方式中任一项所述的方法,或者使得投屏装置实现如第二方面或第二方面可能的实现方式中任一项所述的方法,或者使得投屏装置实现如第五方面或第五方面可能的实现方式中任一项所述的方法,或者使得投屏装置实现如第六方面所述的方法。
53.第十方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被电子设备执行时使得电子设备实现如第一方面或第一方面可能的实现方式中任一项所述的方法,或者实现如第二方面或第二方面可能的实现方式中任一项所述的方法,或者使得投屏装置实现如第五方面或第五方面可能的实现方式中任一项所述的方法,或者使得投屏装置实现如第六方面所述的方法。
54.第十一方面,本技术实施例提供一种投屏系统,该系统可以包括第一终端和多个第二终端;多个第二终端中的每个第二终端,用于显示第二界面;在接收到用户操作后,向第一终端发送第二界面的数据;第一终端,用于从多个第二终端中每个第二终端接收数据;根据从多个第二终端接收的数据,在第一终端上显示多个第一界面,多个第一界面与多个第二终端一一对应;其中,第一界面的内容是对应第二终端显示的第二界面内容的镜像,或第一界面的内容与对应第二终端显示的第二界面的部分内容相同。
55.第十二方面,本技术实施例提供一种电子设备(如上述第一终端或第二终端),该电子设备包括显示屏,一个或多个处理器和存储器;显示屏,处理器和存储器耦合;存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当计算机指令被电子设备执行时,使得该电子设备执行如第一方面或第一方面可能的实现方式中任一项所述的方法,或者执行如第二方面或第二方面可能的实现方式中任一项所述的方法,或者使得投屏装置实现如第五方面或第五方面可能的实现方式中任一项所述的方法,或者使得投屏装置实现如第六方面所述的方法。
56.第十三方面,本技术实施例提供一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备中运行时,电子设备中的处理器执行第一方面或第一方面的可能的实现方式中任一项所述的方法,或者执行如第二方面或第二方面可能的实现方式中任一项所述的方法,或者使得投屏装置实现如第五方面或第五方面可能的实现方式中任一项所述的方法,或者使得投屏装置实现如第六方面所述的方法。
57.可以理解地,上述提供的第三方面及其任一种可能的实现方式所述的投屏装置,第四方面及其任一种可能的实现方式所述的投屏装置,第七方面所述的投屏装置,第八方面所述的投屏装置,第九方面所述的投屏装置,第十方面所述的计算机可读存储介质,第十一方面所述的投屏系统,第十二方面所述的电子设备,及第十三方面所述的计算机程序产品所能达到的有益效果,可参考如第一方面或第二方面或第五方面或第六方面及其任一种可能的实现方式中的有益效果,此处不再赘述。
附图说明
58.图1a为本技术实施例提供的一种场景示意图;
59.图1b为本技术实施例提供的一种系统架构的简化示意图;
60.图2为本技术实施例提供的一种手机的结构示意图;
61.图3为本技术实施例提供的一种软件架构的组成示意图;
62.图4为本技术实施例提供的一种投屏方法的流程示意图;
63.图5为本技术实施例提供的一种显示界面示意图;
64.图6为本技术实施例提供的另一种投屏方法的流程示意图;
65.图7为本技术实施例提供的另一种显示界面示意图;
66.图8为本技术实施例提供的又一种显示界面示意图;
67.图9为本技术实施例提供的又一种投屏方法的流程示意图;
68.图10为本技术实施例提供的又一种显示界面示意图;
69.图11为本技术实施例提供的又一种显示界面示意图;
70.图12为本技术实施例提供的又一种显示界面示意图;
71.图13为本技术实施例提供的又一种显示界面示意图;
72.图14为本技术实施例提供的又一种显示界面示意图;
73.图15为本技术实施例提供的又一种投屏方法的流程示意图;
74.图16为本技术实施例提供的又一种显示界面示意图;
75.图17为本技术实施例提供的又一种显示界面示意图;
76.图18为本技术实施例提供的又一种显示界面示意图;
77.图19为本技术实施例提供的又一种显示界面示意图;
78.图20为本技术实施例提供的又一种显示界面示意图;
79.图21为本技术实施例提供的又一种显示界面示意图;
80.图22为本技术实施例提供的又一种显示界面示意图;
81.图23为本技术实施例提供的又一种显示界面示意图;
82.图24为本技术实施例提供的又一种显示界面示意图;
83.图25为本技术实施例提供的又一种显示界面示意图;
84.图26为本技术实施例提供的又一种显示界面示意图;
85.图27为本技术实施例提供的一种投屏装置的组成示意图;
86.图28为本技术实施例提供的另一种投屏装置的组成示意图;
87.图29为本技术实施例提供的另一种软件架构的组成示意图;
88.图30为本技术实施例提供的又一种显示界面示意图;
89.图31为本技术实施例提供的一种数据传输示意图;
90.图32为本技术实施例提供的另一种数据传输示意图;
91.图33为本技术实施例提供的又一种数据传输示意图;
92.图34为本技术实施例提供的一种芯片系统的组成示意图。
具体实施方式
93.以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性
或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本技术实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
94.近年来,消费类电子产品呈现出了爆发式增长,为了能够给用户提供更佳的使用体验,如图1a所示,华为提出了“1 8 n”第五代移动通信技术(fifth-generation,5g)全场景战略。其中,“1”指智能手机,“8”指8个大行星,“n”指n颗卫星。“8个大行星”分别是电视(television,tv)、音响、眼镜、手表、车机、耳机、个人电脑(personal computer,pc)、平板(pad)。围绕在8个大行星的周边是合作伙伴开发的n颗卫星,分别是移动办公、智能家居、运动健康、影音娱乐及智慧出行各大板块的延伸业务及生态。
95.目前,在上述场景下,为了提高办公效率,用户可将多个终端连接起来一起配合使用。例如,在两个终端连接后,利用多屏协同可实现这两个终端间的协同办公。多屏协同可利用镜像投屏方式,将一个终端显示的界面投射到另一个终端的显示屏上显示。在本实施例中,可以将投射其显示界面的终端称为投屏源端,或称为源(source)端,接收投屏源端的投射并显示投屏源端显示界面的终端称为投屏目的端,或称为接收(sink)端。将投屏目的端上显示的投屏源端投射的界面称为投屏界面,将投屏目标端用于显示投屏界面的窗口称为投屏窗口。
96.当前利用镜像投屏方式仅能实现一个终端的显示界面到另一个终端的显示,即仅能实现一对一的投屏。但是,在如开会、发布会演示等场景下,可能需要多个终端的显示界面在同一个终端(如,大屏设备)上的呈现,即存在多对一的投屏需求。在相关技术中,可借助无线投屏器(如awind奇机
tm
无线投影网关)实现多个终端的界面到一个终端显示屏上的投射。但是,这种实现多对一投屏的技术需要借助对应的无线投屏器。
97.本技术实施例提供一种投屏方法,可应用于投屏场景下。采用本实施例提供的方法,无需借助其他设备,可实现多个终端的显示界面到同一个终端显示屏上的显示,满足了开会、发布会演示等场景中的多对一投屏需求,提高了多终端协同使用的效率,提高了用户的使用体验。
98.另外,当前实现多屏协同采用的技术主要是dlna、miracast及airplay。
99.其中,dlna的宗旨是“随时随地享受音乐、照片和视频”。dlna定义了两种设备,分别为数字媒体服务器(digital media server,dms)和数字媒体播放器(digital media player,dmp)。dms提供了媒体流的获取、录制、存储以及作为源头的能力提供,如向多种dmp提供内容以及与网络中其他设备共享内容。dms可以看作多媒体网盘。dmp可查找并播放由dms提供的任何媒体文件。通常电脑和电视均支持dlna,需要用户手动开启。dlna没有连接状态,默认连接到同一局域网内即可连接成功。目前,dlna仅支持多媒体文件(如图片,音频,视频)投送,投送之后dms显示控制界面,不同步播放。另外,dlna只是将手机的图片、音频或视频投送到大屏上显示或播放,对于在线视频,需要第三方应用支持,并且需要电视(盒)或大屏支持dlna。由于dlna本质上是推送一个资源的统一资源定位符(uniform resource locator,url),因此当多个设备作为dms投送内容到同一作为dmp的目标设备时,采用抢占式,即哪个设备最后投送内容,目标设备就播放它的媒体文件。
100.miracast是由无线保真(wireless fidelity,wi-fi)联盟于2012年所制定,以wi-fi直连为基础的无线显示标准。miracast是一种镜像投屏,即投屏源端和投屏目的端的界
面完全相同,适合远程共享。支持此标准的设备可通过无线方式分享视频画面。例如,手机可通过miracast将影片或照片直接在电视等大屏上播放而无需受到连接线缆长度的影响。但,miracast需要配件支持。且并不是所有的设备都支持miracast。如,pc从windows 8.1开始才支持miracast,安装低版本windows系统的pc并不支持。另外,镜像投屏需要发送大量实时编码的数据流,对网络质量有较高的要求,在丢包严重的wifi环境下,会出现卡顿、花屏等现象。
101.airplay是苹果开发的一种无线技术,可以通过wi-fi将ios设备上的图片、音频或视频通过无线的方式传输到支持airplay的设备上。airplay具备dlna所没有的镜像功能,可将如手机,平板等ios设备上的画面无线传输到电视上。也就是说,ios设备上显示什么,电视屏幕上就显示什么,且不仅限于图片和视频。但,airplay只适用于苹果认证过的设备或授权的合作伙伴的设备。另外,airplay不开源,与设备的交互也有局限性。
102.随着用户使用的如手机等终端越来越多样化,用户对多任务并行的需求越来越迫切。而目前,由于手机等终端的操作系统,如系统并不是真正的多任务系统,因此无法做到多个应用(app)同时运行,也即无法满足多任务并行的需求。鉴于此,考虑可借助其他手机、pad、电视、pc等各种带屏设备,将手机上多个应用对应内容投射到其他设备上显示,或者说通过将手机上的多个应用“转移”到其他带屏设备上,以实现多任务并行的需求。但,上述用于实现多屏协同的技术仅能实现设备的一个应用对应内容到另一个设备的投射显示,即仅能实现一对一投屏,或者说仅能实现设备的一个应用到其他设备上的“转移”,并无法实现真正的多任务并行。
103.本技术实施例提供的投屏方法,终端还可通过创建多路媒体流,实现该终端的一个或多个应用的内容到其他终端上的投射显示,以满足多任务并行的需求,提高终端的使用效率,提升用户的使用体验。
104.下面将结合附图对本技术实施例的实施方式进行详细描述。
105.图1b示出的是可以应用本技术实施例的系统架构的简化示意图。如图1b所示,该系统架构可以包括:第一终端101和至少一个第二终端102。
106.其中,针对每个第二终端102,其与第一终端101可通过有线或无线的方式建立连接。基于建立的连接,第一终端101和第二终端102可配合一起使用。在本实施例中,第一终端101和第二终端102采用无线方式建立连接时采用的无线通信协议可以为wi-fi协议、蓝牙(bluetooth)协议、zigbee协议、近距离无线通信(near field communication,nfc)协议等,还可以是各种蜂窝网协议,在此不做具体限制。不同第二终端102与第一终端101建立连接时采用的无线通信协议可以相同,也可以不同。
107.在本技术一些实施例中,在第一终端101与多个第二终端102连接后,第一终端101和多个第二终端102中的投屏源端可将其显示屏上显示的界面或界面中的部分元素投射到投屏目的端显示屏上显示。如,以第一终端101作为投屏目的端,多个第二终端102均作为投屏源端为例。多个第二终端102中的每个第二终端102可将其显示屏上显示的界面或界面中的部分元素均投射到第一终端101的显示屏上显示。如,第一终端101可将多个第二终端102的界面聚合后显示在第一终端101的显示屏上供用户查看。用户还可使用第一终端101的输入设备,在第一终端101显示屏上显示的各第二终端102对应的投屏界面上进行操作,以实现对对应第二终端102中显示的实际界面的操作。
108.在本技术其他一些实施例中,在第一终端101与第二终端102连接后,第一终端101和第二终端102中的投屏源端可通过创建多路媒体流,将其一个或多个应用的内容投射到投屏目的端显示屏上显示。如,以第一终端101作为投屏源端,至少一个第二终端102作为投屏目的端为例。第一终端101可通过创建多路媒体流,将第一终端101中一个或多个应用的内容投射到至少一个第二终端102的显示屏上显示,以满足多任务并行的需求。如第一终端101可通过创建多路媒体流,将第一终端101中多个应用的内容投射到一个或多个第二终端102的显示屏上显示。又如,第一终端101可通过创建多路媒体流,将第一终端101中一个应用的内容投射到多个第二终端102的显示屏上显示。
109.需要说明的是,本技术实施例中的终端,如上述第一终端101,又如上述第二终端102,可以为手机,平板电脑,手持计算机,个人电脑(personal computer,pc),蜂窝电话,个人数字助理(personal digital assistant,pda),可穿戴式设备(如智能手表),车载电脑,游戏机,以及增强现实(augmented reality,ar)\虚拟现实(virtual reality,vr)设备等,本实施例对终端的具体形式不做特殊限制。另外,本实施例提供的技术方案除了可以应用于上述终端(或者说移动终端)外,还可以应用于其他电子设备,如智能家居设备(如电视机)等。其中,第一终端101和第二终端102的设备形态可以相同,也可以不同。当上述系统架构包括多个第二终端102时,多个第二终端102的设备形态可以相同,也可以不同,本实施例在此不做限制。作为一种示例,第一终端101可以是pc,电视机等大屏设备,第二终端102可以为手机,平板电脑等移动设备。作为又一种示例,第一终端101可以是手机,平板等移动设备,第二终端102可以为pc,电视等大屏设备。其中,图1b中以第一终端101为电视机,多个第二终端102均为手机为例示出,但本实施例不限于此。
110.在本实施例中,以终端为手机为例。请参考图2,为本技术实施例提供的一种手机的结构示意图。以下实施例中的方法可以在具有上述硬件结构的手机中实现。
111.如图2所示,手机可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,usb)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,无线通信模块160,音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,传感器模块180,按键190,马达191,指示器192,摄像头193以及显示屏194等。可选的,手机还可以包括移动通信模块150,用户标识模块(subscriber identification module,sim)卡接口195等。
112.其中,传感器模块180可以包括压力传感器180a,陀螺仪传感器180b,气压传感器180c,磁传感器180d,加速度传感器180e,距离传感器180f,接近光传感器180g,指纹传感器180h,温度传感器180j,触摸传感器180k,环境光传感器180l,骨传导传感器180m等。
113.可以理解的是,本实施例示意的结构并不构成对手机的具体限定。在另一些实施例中,手机可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
114.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,
也可以集成在一个或多个处理器中。
115.控制器可以是手机的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
116.处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
117.在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,i2c)接口,集成电路内置音频(inter-integrated circuit sound,i2s)接口,脉冲编码调制(pulse code modulation,pcm)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,uart)接口,移动产业处理器接口(mobile industry processor interface,mipi),通用输入输出(general-purpose input/output,gpio)接口,sim接口,和/或usb接口等。
118.充电管理模块140用于从充电器接收充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为手机供电。电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141也可接收电池142的输入为手机供电。
119.手机的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
120.天线1和天线2用于发射和接收电磁波信号。手机中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
121.当手机包括移动通信模块150时,移动通信模块150可以提供应用在手机上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,lna)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
122.调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170a,受话器170b等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
123.无线通信模块160可以提供应用在手机上的包括无线局域网(wireless local area networks,wlan)(如wi-fi网络),蓝牙(bluetooth,bt),全球导航卫星系统(global navigation satellite system,gnss),调频(frequency modulation,fm),nfc,红外技术
(infrared,ir)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
124.在一些实施例中,手机的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得手机可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,gsm),通用分组无线服务(general packet radio service,gprs),码分多址接入(code division multiple access,cdma),宽带码分多址(wideband code division multiple access,wcdma),时分码分多址(time-division code division multiple access,td-scdma),长期演进(long term evolution,lte),bt,gnss,wlan,nfc,fm,和/或ir技术等。所述gnss可以包括全球卫星定位系统(global positioning system,gps),全球导航卫星系统(global navigation satellite system,glonass),北斗卫星导航系统(beidou navigation satellite system,bds),准天顶卫星系统(quasi-zenith satellite system,qzss)和/或星基增强系统(satellite based augmentation systems,sbas)。
125.手机通过gpu,显示屏194,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏194和应用处理器。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
126.显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,lcd),有机发光二极管(organic light-emitting diode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode,amoled),柔性发光二极管(flex light-emitting diode,fled),miniled,microled,micro-oled,量子点发光二极管(quantum dot light emitting diodes,qled)等。在一些实施例中,手机可以包括1个或n个显示屏194,n为大于1的正整数。
127.手机可以通过isp,摄像头193,视频编解码器,gpu,显示屏194以及应用处理器等实现拍摄功能。在一些实施例中,手机可以包括1个或n个摄像头193,n为大于1的正整数。
128.外部存储器接口120可以用于连接外部存储卡,例如micro sd卡,实现扩展手机的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
129.内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行手机的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储手机使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。
130.手机可以通过音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,以及应用处理器等实现音频功能。例如音乐播放,录音等。
131.压力传感器180a用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180a可以设置于显示屏194。压力传感器180a的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。当有触摸操作作用于显示屏194,手机根据压力传感器180a检测所述触摸操作强度。手机也可以根据压力传感器180a的检测信号计算触摸的位置。
132.陀螺仪传感器180b可以用于确定手机的运动姿态。气压传感器180c用于测量气压。磁传感器180d包括霍尔传感器。手机可以利用磁传感器180d检测翻盖皮套的开合。加速度传感器180e可检测手机在各个方向上(一般为三轴)加速度的大小。距离传感器180f,用于测量距离。手机可以利用接近光传感器180g检测用户手持手机贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180g也可用于皮套模式,口袋模式自动解锁与锁屏。环境光传感器180l用于感知环境光亮度。指纹传感器180h用于采集指纹。手机可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。温度传感器180j用于检测温度。
133.触摸传感器180k,也称“触控面板”。触摸传感器180k可以设置于显示屏194,由触摸传感器180k与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180k用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180k也可以设置于手机的表面,与显示屏194所处的位置不同。
134.骨传导传感器180m可以获取振动信号。按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
135.当手机包括sim卡接口195时,sim卡接口195用于连接sim卡。sim卡可以通过插入sim卡接口195,或从sim卡接口195拔出,实现和手机的接触和分离。手机可以支持1个或n个sim卡接口,n为大于1的正整数。手机通过sim卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,手机采用esim,即:嵌入式sim卡。esim卡可以嵌在手机中,不能和手机分离。
136.结合图1b,本技术实施例示例性说明第一终端101和第二终端102的软件架构。其中,以第一终端101作为投屏目的端,第二终端102作为投屏源端为例。请参考图3,为本技术实施例提供的一种软件架构的组成示意图。
137.作为一种示例,第一终端101和第二终端102的软件架构均可以包括:应用层和框架层(framework,fwk)。
138.其中,如图3所示,第一终端101可以包括:网络管理模块,解码模块和窗口管理模块。第一终端101包括的各模块可以包含于第一终端101的软件架构的任意一层。如第一终端101的网络管理模块,解码模块和窗口管理模块均包含于第一终端101的框架层,本实施例在此不做具体限制。第一终端101还可以包括应用程序,可以包含于上述应用层。应用程序可以包括投屏应用,该投屏应用可辅助作为投屏目的端的第一终端101实现多对一投屏功能。
139.第二终端102可以包括:网络管理模块,编码模块和设置模块。第二终端102包括的
各模块可以包含于第二终端102的软件架构的任意一层。如第二终端102的网络管理模块和编码模块包含于第二终端102的框架层。第二终端102的设置模块包含于第二终端102的应用层,本实施例在此不做具体限制。第二终端102还可以包括应用程序,可以包含于上述应用层。应用程序可以包括投屏应用,该投屏应用可辅助作为投屏源端的第二终端102实现多对一投屏功能。
140.在本实施例中,第一终端101的网络管理模块可负责第一终端101与第二终端102之间传输通道的建立。其中,第一终端101的网络管理模块可支持第一终端101与多个第二终端102之间传输通道的建立,即支持1对n的建连。第一终端101的解码模块可负责对来自作为投屏源端的第二终端102的数据(如称为投屏数据,还可以称为录屏数据)进行解码。该解码模块支持多路解码。如,对于来自不同第二终端102的数据,第一终端101的解码模块可使用不同的解码参数对相应数据进行解码。第一终端101的窗口管理模块可负责根据解码后的多路数据,在第一终端101上呈现多个投屏窗口。该多个投屏窗口与多个第二终端102一一对应。投屏窗口中的内容与对应第二终端102所呈现界面的全部或部分内容相同。第一终端101的窗口管理模块还可负责动态增加、减少第一终端101上的投屏窗口,根据用户操作对第一终端101上呈现的投屏窗口进行缩小,放大,切换焦点窗口等。
141.第二终端102的网络管理模块可负责第二终端102与第一终端101之间传输通道的建立。第二终端102的编码模块可负责对当前显示界面或界面中的部分元素对应数据(如称为投屏数据)进行编码。第二终端102的设置模块可负责根据用户的设置对音视频参数进行设置,音视频参数可以包括分辨率,横竖屏,同源/异源,图层过滤等。其中,同源/异源可以是指第二终端102投屏后是否在第二终端102继续显示当前界面,如同源则指第二终端102投屏后在第二终端102继续显示当前界面,异源则指第二终端102投屏后不在第二终端102继续显示当前界面。
142.以下结合图1b和图3,以第一终端101为电视机,多个第二终端102均为手机(如多个第二终端102包括:手机1和手机2)为例,结合附图对本技术实施例提供的投屏方法进行详细介绍。
143.图4为本技术实施例提供的一种投屏方法的流程示意图。如图4所示,该方法可以包括以下s401-s406。
144.s401、手机1与电视机建立连接,手机2与电视机建立连接。
145.在用户想将多个终端(如称为第二终端,如上述手机1和手机2)的显示界面投射到同一个终端(如称为第一终端,如上述电视机)上显示,实现多对一的投屏时,可将这多个第二终端分别与该第一终端建立连接。
146.其中,第一终端与第二终端建立连接的方式可以有多种。在一些实施例中,第一终端与第二终端可以采用有线的方式建立连接。例如,手机1与电视机可通过数据线建立有线连接。又例如,手机2与电视机可通过数据线建立有线连接。
147.在其他一些实施例中,第一终端与第二终端可以采用无线的方式建立连接。其中,终端之间采用无线方式建立连接有两点要求,一个是终端之间互相知晓对端的连接信息,另一个是各终端具有传输能力。连接信息可以是终端的设备标识,如互联网协议(internet protocol,ip)地址,端口号或终端登录的账号等。终端登录的账号可以是运营商为用户提供的账号,如华为账号等。终端登录的账号还可以为应用账号,如微信
tm
账号、优酷
tm
账号
等。终端具有传输能力可以是近场通信能力,也可以是长距离通信能力。也就是说,终端间,如手机1(或手机2)与电视机建立连接采用的无线通信协议可以是如wi-fi协议或蓝牙协议或nfc协议等近场通信协议,也可以是蜂窝网协议。
148.需要说明的是,不同第二终端与第一终端建立连接的方式可以相同,也可以不同,如电视机与手机1建立连接的方式,和与手机2建立连接的方式可以相同,也可以不同,本实施例在此不做具体限制。
149.示例性的,结合图1b和图3,在本实施例中,以多个第二终端均与第一终端采用无线方式建立连接为例。用户想实现多个第二终端到第一终端的多对一投屏,即多个第二终端,如手机1和手机2为投屏源端,第一终端,如电视机为投屏目的端。用户可手动开启作为投屏目的端的电视机的投屏服务功能(也可以称为多对一投屏功能)。电视机的投屏服务功能也可以自动开启,如在电视机开机启动时自动开启。在电视机的投屏服务功能开启后,电视机可获取各投屏源端(如手机1和手机2)的连接信息,如ip地址。
150.其中,电视机可通过以下方式获取作为投屏源端的各第二终端的连接信息。
151.方式1、各第二终端的连接信息可以是用户手动输入的。示例性的,在电视机的投屏服务功能开启后,电视机可显示配置界面1,供用户输入各第二终端的连接信息,如ip地址。在用户输入各第二终端的连接信息后,电视机可获得该各第二终端的连接信息。其中,配置界面1中,供用户输入连接信息的控件(如输入框)数量可以是固定(如2个,3个或者更多,本实施例不做具体限制)的。用户可在该控件中输入第二终端的连接信息。用户输入的连接信息数量可以等于或小于控件的数量。可以理解的是,用户输入的连接信息的数量与电视机可连接的投屏源端的数量相同。
152.例如,以配置界面1中供用户输入连接信息的输入框包括两个为例。如图5所示,在电视机的投屏服务功能开启后,电视机可显示配置界面501,该配置界面501中包括供用户输入连接信息的输入框502和输入框503。用户可在输入框502和输入框503中分别输入作为投屏源端的第二终端的连接信息,如ip地址。如用户在输入框502中输入手机1的ip地址:192.168.43.164,在输入框503中输入手机2的ip地址:192.168.43.155。之后,电视机可从配置界面501中获得各第二终端的连接信息。例如,在用户完成输入后,可对配置界面501中的聚合按钮504进行操作,如点击操作。电视机接收到该操作后,便可从配置界面501中获取各第二终端的连接信息,如ip地址:192.168.43.164和ip地址:192.168.43.155。如,可由电视机的窗口管理模块从配置界面501中获得ip地址:192.168.43.164和ip地址:192.168.43.155。
153.方式2、作为投屏源端的各第二终端的连接信息可以是电视机监听到的。示例性的,手机1、手机2和电视机均打开了蓝牙功能。在电视机的投屏服务功能开启后,电视机可开始执行设备发现过程。如电视机开启蓝牙监听。在作为投屏源端的第二终端,如手机1和手机2的蓝牙功能开启的情况下,其可发送蓝牙广播。电视机可接收到第二终端发送的蓝牙广播。在电视机进行设备发现的过程中也可与发现的设备(如上述第二终端)互相交换连接信息,如ip地址。如,电视机可向第二终端,如手机1和手机2分别发送通知消息,以通知其上报自身的ip地址。之后,电视机(如电视机的网络管理模块)可接收来自第二终端,如手机1和手机2的ip地址。
154.可以理解的是,电视机开启蓝牙监听后,处于监听范围内的所有终端发送的蓝牙
广播电视机均可监听到。在一些实施例中,电视机可向所有监听到的终端发送上述通知消息,以便其上报自身的连接信息。如电视机监听到手机1和手机2的蓝牙广播,其向手机2和手机2均发送上述通知消息。在其他一些实施例中,电视机在监听到终端的蓝牙广播后,可显示发现设备列表。该发现设备列表中包括电视机监听到的所有终端的标识,如包括手机1的标识和手机2的标识。该发现设备列表供用户选择想要与电视机连接的终端。电视机可仅向用户选择的终端发送上述通知消息。如,用户选择了发现设备列表中手机1的标识和手机2的标识,则电视机可将手机1和手机2发送上述通知消息。
155.电视机在获取到各第二终端的连接信息后,可根据获得的各连接信息,与对应的第二终端建立连接。其中,电视机与各第二终端建立连接时采用的无线通信协议可以相同,也可以不同,本实施例在此不做具体限制。如,电视机可根据手机1的ip地址192.168.43.164,与手机1采用wi-fi协议建立连接,根据手机2的ip地址192.168.43.155,与手机2采用wi-fi协议建立连接。又如,电视机可根据手机1的ip地址192.168.43.164,与手机1采用wi-fi协议建立连接,根据手机2的ip地址192.168.43.155,与手机2采用蓝牙协议建立连接。
156.作为一种示例,结合图3,电视机与第二终端(如手机1或手机2)建立连接的过程可以是:电视机的网络管理模块根据ip地址,向第二终端发起网络连接,如发送建立连接请求。第二终端的网络管理模块响应该建立连接请求,完成与电视机连接的建立。需要说明的是,在电视机通过上述方式1获得各第二终端的连接信息的场景中,各第二终端的连接信息具体的是由电视机的窗口管理模块获取的。在该场景中,电视机的窗口管理模块可将获得的各第二终端的连接信息发送给电视机的网络管理模块,用于电视机的网络管理模块发起网络连接。
157.s402、电视机创建与手机1和手机2分别对应的视图,配置与手机1和手机2分别对应的解码参数。
158.可以理解的是,在第二终端与第一终端连接的情况下,作为投屏源端的终端可将其显示屏上显示的界面投射到作为投屏目的端的终端显示屏上显示。结合s401中的描述,在本实施例中,多个第二终端均作为投屏源端,第一终端作为投屏目的端,即多个第二终端均可将其显示屏上显示的界面投射到第一终端的显示屏上显示,实现多对一投屏。为了实现多对一的投屏目的,在本实施例中,作为投屏目的端的第一终端可进行如下准备工作:
159.针对多个第二终端中的每个第二终端,第一终端在获取到该第二终端的连接信息后,或在与该第二终端连接成功后,可创建对应的视图(view),用于渲染该第二终端投射的界面。其中,上述视图可以为本技术实施例中的绘制组件。
160.示例性的,结合图3,以各第二终端的连接信息是用户手动输入的为例,如图6所示,第一终端在显示配置界面1后,用户可通过配置界面1输入各第二终端的连接信息,如ip地址。第一终端,如第一终端的窗口管理模块可从配置界面1中获得该各第二终端的ip地址(如,图6中的步骤1)。在获取到各第二终端的ip地址,或与各第二终端连接成功后,第一终端可在本地保存一个数组,如称为数组1。该数组1中包括作为投屏源端的各第二终端的ip地址。第一终端可根据该数组1,为作为投屏源端的各第二终端分别创建一个对应的view,用于渲染各第二终端投射的界面。如,由第一终端的窗口管理模块创建一个view数组,该view数组可以包括:与数组1中的ip地址一一对应view(如,图6中的步骤2)。
161.第一终端为多个第二终端中的每个第二终端配置解码参数,用于对来自各第二终端的投屏数据进行解码。
162.可以理解的是,投屏源端将当前显示的界面投射到投屏目的端的具体实现可以是,投屏源端获取当前显示界面对应的数据,如称为投屏数据,并发送给投屏目的端,以便投屏目的端在其显示屏上显示对应内容。一般的,在投屏源端传输投屏数据之前,对投屏数据可进行编码,并将编码后的投屏数据传输给投屏目的端。对应的,对于投屏目的端而言,其在接收到来自投屏源端的投屏数据后,可对其进行解码。
163.在本实施例中,对于作为投屏源端的多个第二终端,第一终端可采用相同的解码参数对来自不同第二终端的投屏数据进行解码,也可以采用不同的解码参数对来自不同第二终端的投屏数据进行解码。在采用不同的解码参数对来自不同第二终端的投屏数据进行解码的场景中,继续结合图6,在第一终端的窗口管理模块成功创建每个ip地址对应的view后,第一终端的窗口管理模块可在第一终端的解码模块中配置与对应ip地址关联的解码参数(如,图6中的步骤3)。如,第一终端的窗口管理模块可在view创建成功后,通过回调函数在解码模块中配置与对应ip地址关联的解码参数。这样,第一终端可为各第二终端配置不同的解码参数,用于对来自各第二终端的投屏数据进行解码。其中,上述解码参数可以是第一终端与第二终端协商出来的,也可以是预先配置在第一终端的,本实施例在此不做具体限制。
164.作为一种示例,上述解码参数可以包括:视频流的分配模式,视频流的规格,视频编码格式,视频编码的码率,虚拟显示(virtual display)的标志,是否投射音频数据等。其中,视频流的分配模式可以包括广播模式,分发模式,汇聚模式等。广播模式可以指仅启动单路视频流以低时延分布到多个投屏目的端。分发模式可以是指启动多路视频流分别分布到多个不同的投屏目的端。汇聚模式可以是指启动多路视频流分布到同一个投屏目的端。视频流的规格可以是指视频编码器的分辨率,如720p,1080p,2k等。视频的编码格式可以是h.264(高级视频编码(advanced video coding,avc)),h.265(高效率视频编码(high efficiency video coding,hevc))等。
165.另外,第一终端为多个第二终端中的每个第二终端保存一个连接实例,用于接收来自该第二终端的投屏数据。
166.如s401中的描述,第一终端是基于获取到的(如用户输入)ip地址与各第二终端建立连接的。示例性的,继续结合图6,第一终端的窗口管理模块可将获得的各第二终端的ip地址传输给第一终端的网络管理模块,由网络管理模块根据获得的ip地址与各第二终端建立连接(如,图6中的步骤4)。在第一终端与各第二终端的连接建立成功后,第一终端,如第一终端的网络管理模块可以在本地维护一个数组,如称为数组2,该数组2中包括与数组1中的ip地址一一对应的连接实例(或者称为实例),用于接收来自对应第二终端的投屏数据。
167.例如,结合s401中的示例,手机1和手机2作为投屏源端,电视机作为投屏目的端。以手机1的ip地址和手机2的ip地址由用户手动输入为例,电视机在显示配置界面1(如图5中所示的配置界面501)后,用户可在配置界面1中输入手机1的ip地址和手机2的ip地址。电视机的窗口管理模块可从配置界面1中获得手机1的ip地址和手机2的ip地址。在获取到手机1和手机2的ip地址后,电视机可在本地保存一个数组1。该数组1中包括手机1的ip地址和手机2的ip地址。电视机的窗口管理模块可根据该数组1,创建一个view数组。该view数组包
括:与数组1中手机1的ip地址对应view,如view 1,用于渲染手机1投射的界面,与数组1中手机2的ip地址对应view,如view2,用于渲染手机2投射的界面。在电视机的窗口管理模块成功创建与手机1的ip地址对应的view 1后,通过回调函数在解码模块中配置与该手机1的ip地址关联的解码参数,如称为解码参数1。在成功创建与手机2的ip地址对应的view 2后,通过回调函数在解码模块中配置与该手机2的ip地址关联的解码参数,如称为解码参数2。这样,电视机可为手机1和手机2配置不同的解码参数,用于进行投屏数据的解码。另外,在电视机与手机1和手机2的连接建立成功后,电视机的网络管理模块还可以在本地维护一个数组2。该数组2中包括:与数组1中手机1的ip地址对应的连接实例,如称为连接实例1,用于接收来自手机1的投屏数据,与数组1中手机2的ip地址对应的连接实例,如称为连接实例2,用于接收来自手机2的投屏数据。
168.s403、手机1获取投屏数据1并发送给电视机。
169.s404、手机2获取投屏数据2并发送给电视机。
170.如前述实施例的描述,在第一终端和第二终端连接的情况下,第二终端可作为投屏源端将其显示屏上显示的界面投射到作为投屏目的端的第一终端显示屏上显示。
171.其中,在无线投屏场景下,第二终端开始投屏的条件,除了包括与第一终端成功建立连接外,还包括接收到对应的用户操作。
172.例如,该用户操作可以是用户选择开始投屏的操作,如可以是用户对开始投屏按钮的点击操作。该选择开始投屏的操作可以是第二终端在与第一终端建立连接之前接收到的,也可以是在与第一终端建立连接后接收到的。如果该选择开始投屏的操作是第二终端在与第一终端建立连接之前接收到的,则在第二终端与第一终端成功建立连接后,第二终端便可开始进行投屏。如果该选择开始投屏的操作是第二终端在与第一终端建立连接之后接收到的,则在第二终端与第一终端成功建立连接,且第二终端接收到该选择开始投屏的操作后,开始进行投屏。
173.又例如,该用户操作可以是第二终端与第一终端建立连接的过程中,用户确认投屏的操作。如,在第二终端与第一终端建立连接的过程中,第二终端可显示确认界面,以询问用户是否确认将第二终端显示界面投射到第一终端上显示。该确认投屏的操作可以是用户在该确认界面中对确认投屏按钮的点击操作。之后,在第二终端与第一终端成功建立连接后,第二终端便可开始进行投屏。
174.在本实施例中,作为一种示例,第二终端将其显示屏上显示的界面投射到第一终端显示屏上的具体实现可以是:第二终端通过获取第二终端当前显示界面(该界面可以为本技术实施例中的第二界面)对应的数据,如投屏数据,并发送给第一终端,用于第一终端在其显示屏上显示对应内容,从而实现第二终端的显示界面在第一终端显示屏上的投射显示。
175.例如,结合图7和图8,以手机1和手机2作为投屏源端,电视机作为投屏目的端,上述用户操作为无线投屏场景下,用户选择开始投屏的操作,且该操作是在手机1和手机2与电视机建立连接之前执行的为例。
176.用户想要将手机1和手机2各自显示的界面均投射到电视机上时,用户可分别触发手机1和手机2开始投屏。如,图7中的(a)所示,手机1当前显示界面701,图7中的(b)所示,手机2当前显示界面702。用户可分别触发手机1和手机2显示包括开始投屏按钮的界面,如称
为配置界面2,以便可触发手机1和手机2开始投屏。例如,如图8所示,用户可触发手机1显示配置界面801,该配置界面801中包括开始投屏按钮802。用户可对该开始投屏按钮802进行点击操作。手机1接收用户对开始投屏按钮802的点击操作。之后,手机1可获取当前显示界面701对应的数据。如,手机1可通过手机1的显示管理模块(或称为显示管理器,displaymanager,其可以是手机1框架层的模块)获取手机1当前显示界面701对应数据,如称为投屏数据1。用户还可以触发手机2显示配置界面2(如,类似于图8中的配置界面801)。手机2接收用户对配置界面2中开始投屏按钮的点击操作后,可获取当前显示界面702对应的数据。如,手机2可通过手机2的显示管理模块(或称为显示管理器,其可以是手机2框架层的模块)获取手机2当前显示界面对应数据,如称为投屏数据2。另,如前述实施例的描述,作为投屏目的端的电视机根据手机1和手机2的ip地址,可与手机1和手机2分别建立连接。在电视机与手机1的连接建立成功后,手机1可将获得的上述投屏数据1发送给电视机,用于实现手机1的显示界面701在电视机显示屏上的投射显示。在电视机与手机2的连接建立成功后,手机2可将获得的上述投屏数据2发送给电视机,用于实现手机2的显示界面在电视机显示屏上的投射显示。
177.在一些实施例中,可采用分布式多媒体协议(distributed multi-media protocol,dmp)来实现第二终端显示界面到第一终端显示屏上的投射显示。例如,在用户触发第二终端开始投屏后,第二终端可使用第二终端的显示管理模块创建虚拟显示(virtualdisplay)。之后,第二终端可将第二终端显示屏上显示的界面的绘制移到该virtualdisplay中。这样,第二终端便可获得对应投屏数据。之后,第二终端可将获得的投屏数据发送给第一终端。如,结合图3,第二终端在获得投屏数据后,可由第二终端的编码模块将投屏数据进行编码后发送第二终端的网络管理模块。第二终端的网络管理模块可通过与第一终端建立的连接,向第一终端发送编码后的投屏数据。
178.在其他一些实施例中,也可以采用无线投影(miracast)实现第二终端显示界面在第一终端显示屏上的投射显示,即第二终端可获取第二终端显示界面的所有图层,然后将获得的所有图层整合成视频流(或者说称为投屏数据)。之后,可由第二终端的编码模块对其编码后发送给第二终端的网络管理模块,以便网络管理模块采用实时流传输协议(real time streaming protocol,rtsp)协议,通过与第一终端建立的连接发送给第一终端。
179.以上实施例是以将第二终端显示屏上显示界面的全部内容投射到第一终端的显示屏上显示为例进行说明的。在其他一些实施例中,也可以将第二终端显示屏上显示界面的部分内容,如界面的部分元素投射到第一终端的显示屏上显示。其中,需要投射到第一终端的元素可以是界面中的预定元素,如视频元素等。在第二终端进行投屏时,可仅将该预定元素所在图层投射到第一终端,而不投射其他图层。这样可以保护第二终端上的隐私信息不被显示到第一终端。
180.其中,第二终端是否仅投射该预定元素所在图层,可以是系统预先定义的。如,当第二终端显示屏上显示的界面中包括预定元素时,第二终端仅将该预定元素所在图层投射到第一终端;当第二终端显示屏上显示的界面中不包括预定元素时,则第二终端将当前界面全部内容投射到第一终端。第二终端是否仅投射预定元素所在图层,也可以是用户设置的。如,继续结合图8,配置界面801中还包括启用图层过滤的选项803(该选项803可以为本技术实施例中的图层过滤设置选项)。当用户在该配置界面801中选中该启用图层过滤的选
项803时,第二终端启动图层过滤功能,即第二终端仅将预定元素所在图层投射到第一终端;当用户在该配置界面801中未选中该启用图层过滤的选项803时,第二终端将当前界面全部内容投射到第一终端。
181.作为一种示例,以采用dmp实现第二终端显示界面到第一终端显示屏上的投射显示,预定元素为视频元素为例,第二终端仅投射预定元素所在图层的具体实现可以包括:在第二终端创建了virtua ldisplay后,第二终端,如第二终端的显示合成(surface flinger)模块(如可以是第二终端应用层的模块)可逐图层将第二终端显示屏上显示的界面合成到virtualdisplay中。在逐图层进行合成的过程中,第二终端的surface flinger模块可判断当前需合成的图层中是否包括视频元素。例如,第二终端可根据图层的图层名称的前缀确定该图层中是否包括视频元素。如视频元素所在图层的图层名称的前缀一般是surfaceview,因此,第二终端可在确定当前需合成的图层的图层名称的前缀为surfaceview时,确定该图层中包括视频元素,在确定当前需合成的图层的图层名称的前缀不为surfaceview时,确定该图层中不包括视频元素。第二终端的surface flinger模块仅将包括视频元素的图层合成到virtualdisplay中,不包括视频元素的图层不合成到virtualdisplay中,以获得对应的投屏数据。其中,该投屏数据中仅包括视频元素所在图层对应的数据,以实现仅将视频元素投射到第一终端的目的。
182.可以理解的是,在本实施例中,当第二终端当前正在播放声音,如用户使用第二终端观看视频,听音乐时,在第二终端开启投屏后,第二终端不仅可以将当前显示的界面投射到第一终端,还可将音频也投射到第一终端。在该场景下,上述投屏数据(如投屏数据1或投屏数据2)可以包括视频数据和音频数据。其中,视频数据用于第一终端在第一终端的显示屏上显示对应投屏界面,音频数据用于第一终端播放对应声音。视频数据的具体获取过程如上述实施例中采用dmp或无线投影方式实现投屏所描述的过程。音频数据的获取过程可以是:第二终端可预先创建一个音频录音(audiorecord)对象,并创建一个缓存(buffer)。在用户触发第二终端开始投屏后,第二终端可调用该audiorecord对象。在该audiorecord对象被调用后,可对第二终端中的音频数据进行录制,如投射的界面中包括视频组件,则可对视频组件中播放的视频中的音频进行录制,以获得音频数据,该音频数据会被存储到创建的buffer中。之后,第二终端可从buffer中获得音频数据,并发送给第一终端。需要说明的是,在该场景中,可以将视频数据和音频数据均投屏到第一终端,也可以只将视频数据投屏到第一终端,而不将音频数据投屏到第一终端。具体是否投射音频数据可以是系统预先定义的,也可以是用户设置的。如,继续结合图8,配置界面801中还包括启用音频的选项804。当用户在该配置界面801中选中该启用音频的选项804时,第二终端将视频数据和音频数据均投屏到第一终端;当用户在该配置界面801中未选中该启用音频的选项804时,第二终端仅将视频数据投射到第一终端。
183.s405、电视机根据配置的对应解码参数分别对投屏数据1和投屏数据2进行解码。
184.s406、电视机根据解码后的投屏数据1和投屏数据2,利用创建的对应视图绘制投屏界面1和投屏界面2,并在电视机上显示。
185.其中,投屏界面1和投屏界面2可以为本技术实施例中的第一界面。
186.第一终端在接收到来自多个第二终端的投屏数据后,可根据接收到的各投屏数据在第一终端显示屏上显示与多个第二终端一一对应的投屏界面。如,继续结合以上示例,电
视机接收到投屏数据1后,可根据该投屏数据1在电视机上显示投屏界面,如称为投屏界面1,该投屏界面1中显示的内容与手机1显示屏上显示界面的全部或部分内容相同,或者说该投屏界面1中的内容为手机1显示屏上显示界面全部或部分内容的镜像。类似的,电视机接收到投屏数据2后,可根据该投屏数据2在电视机上显示投屏界面,如称为投屏界面2,该投屏界面2中显示的内容与手机2显示屏上显示界面的全部或部分内容相同,或者说该投屏界面2中的内容为手机2显示屏上显示界面全部或部分内容的镜像。
187.示例性的,结合图3和图6,第一终端根据接收到的第二终端的投屏数据,在第一终端上对应显示投屏界面的具体实现可以是:第一终端的网络管理模块在接收到来自第二终端的投屏数据后,可将该投屏数据发送给第一终端的解码模块进行解码(如,图6中所示的步骤5)。第一终端的解码模块利用对应的解码参数对该投屏数据进行解码后,将其发送给第一终端的窗口管理模块;第一终端的窗口管理模块利用对应的view,根据接收到的投屏数据,可绘制并在第一终端的显示屏上显示对应投屏界面(如,图6中的步骤6)。
188.例如,结合图3,图6,图7及上述s402的描述,在手机1的网络管理模块通过与电视机建立的连接,向电视机发送编码后的投屏数据1后,电视机的网络管理模块可接收到编码后的该投屏数据1。具体的,电视机的网络管理模块通过在本地维护的数组2中的连接实例1可接收到编码后的该投屏数据1。电视机的网络管理模块根据接收到数据的连接实例1,可确定投屏源端的ip地址为手机1的ip地址。之后,电视机的网络管理模块可将编码后的该投屏数据1和手机1的ip地址发送给电视机的解码模块。电视机的解码模块可根据手机1的ip地址,获取到对应的解码参数,如获得解码参数1,并采用该解码参数1对投屏数据1进行解码。电视机的解码模块可将解码后的投屏数据1发送给电视机的窗口管理模块。电视机的窗口管理模块根据解码后的投屏数据1,利用创建的view数组中与手机1的ip地址对应的view 1,可实现投屏界面1的绘制,并如图7中的(c)所示,在电视机的显示屏上显示投屏界面1。其中投屏界面1中的内容与图7中的(a)中手机1显示的界面701中的内容相同。类似的,在手机2的网络管理模块通过与电视机建立的连接,向电视机发送编码后的投屏数据2后,电视机的网络管理模块通过在本地维护的数组2中的连接实例2可接收到编码后的该投屏数据2。电视机的网络管理模块根据接收到数据的连接实例2,可确定投屏源端的ip地址为手机2的ip地址。之后,电视机的网络管理模块可将编码后的该投屏数据2和手机2的ip地址发送给电视机的解码模块。电视机的解码模块可根据手机2的ip地址,获取到对应的解码参数,如获得解码参数2,并采用该解码参数2对投屏数据2进行解码。电视机的解码模块可将解码后的投屏数据2发送给电视机的窗口管理模块。电视机的窗口管理模块根据解码后的投屏数据2,利用创建的view数组中与手机2的ip地址对应的view 2,可实现投屏界面2的绘制,并如图7中的(c)所示,在电视机的显示屏上显示投屏界面2。其中投屏界面2中的内容与图7中的(b)中手机2显示的界面702中的内容相同。
189.另外,在本实施例中,第一终端用于显示投屏界面的窗口可以称为投屏窗口。例如,结合图7中的(c)所示,用于显示投屏界面1的窗口可以称为投屏窗口1,用于显示投屏界面2的窗口可以称为投屏窗口2。
190.其中,在第一终端的投屏服务功能开启的情况下,第一终端可在确定与第二终端(如上述手机1或手机2)连接后,显示对应的投屏窗口。第一终端可根据作为投屏源端的第二终端的数量和第一终端显示屏的尺寸,设置与各第二终端对应投屏窗口的大小和布局。
如,作为投屏源端的第二终端的数量为两个。第一终端在与这两个第二终端连接后,可以在第一终端的显示屏上显示与这两个第二终端分别对应的投屏窗口。这两个投屏窗口在第一终端显示屏上的可垂直排列,也可以水平排列。这两个投屏窗口的大小可以相同,也可以不同。例如,如图7中的(c)所示,与手机1对应的投屏窗口1和与手机2对应的投屏窗口2垂直排列,且投屏窗口1和投屏窗口2的大小相同。其中,这两个投屏窗口可以是同时显示在第一终端显示屏的,也可以按照对应第二终端开始投屏的顺序,或者说第一终端接收到对应第二终端的投屏数据的顺序先后显示在第一终端的显示屏。对于按照对应第二终端开始投屏的顺序先后显示对应投屏窗口的情况,先显示的投屏窗口的大小可以与第一终端显示屏的大小相同,后显示的投屏窗口可以小于第一终端的显示屏,并以悬浮窗的形式显示在先显示的投屏窗口之上。
191.第一终端(如第一终端的窗口管理模块)在显示与多个第二终端一一对应的投屏界面的情况下,可根据用户的操作(该操作可以为本技术实施例中的第一操作),对对应的投屏窗口进行缩小,放大,切换焦点窗口,关闭等处理。其中,该操作可以是用户在第一终端的屏幕上的触摸操作,也可以是用户使用第一终端的输入设备(如pc的鼠标,键盘;又如,电视机的遥控器)输入的操作。
192.例如,继续结合图7,以电视机上显示了投屏界面1和投屏界面2,用于显示投屏界面1的窗口为投屏窗口1,用于显示投屏界面2的窗口为投屏窗口2为例。如图9所示,用户可使用电视机的遥控器对电视机当前显示的界面进行控制。
193.电视机接收到用户的控制操作(如,图9中的步骤1)后,可根据接收到的控制操作判断是否需要切换焦点窗口(如,图9中的步骤2)。其中,如果该控制操作是切换焦点窗口的操作,则确定需要切换焦点窗口。如,切换焦点窗口的操作可以是用户对遥控器的左按键或右按键的操作。也就是说,如果电视机接收到的控制操作为对遥控器左按键或右按键的操作,则电视机可确定需要切换焦点窗口,电视机可切换焦点(如,图9中的步骤3)。如电视机可在本地保存一个焦点窗口变量,该焦点窗口变量用于指示当前显示的多个投屏窗口中哪个窗口为焦点窗口。电视机切换焦点的操作可以包括,电视机将该焦点窗口变量由标识1更新为标识2。其中,标识1为切换焦点前作为焦点窗口的投屏窗口的标识,标识2为切换焦点后作为焦点窗口的投屏窗口的标识。例如,如图10所示,在电视机显示了投屏界面1和投屏界面2后,可默认其中一个投屏界面的投屏窗口为焦点窗口,如电视机默认用于显示投屏界面1的投屏窗口1为焦点窗口。如图10所示,电视机可显示提示标识1001,用于向用户提示当前投屏窗口1为焦点窗口。电视机还可将焦点窗口变量设置为投屏窗口1的标识,用于指示投屏窗口1为焦点窗口。之后,电视机接收到用户对遥控器右按键的操作,电视机可确定需要切换焦点窗口,则电视机将焦点窗口变量由标识1更新为投屏窗口2的标识2,用于指示投屏窗口2为当前的焦点窗口。另外,如图11所示,电视机可更新电视机显示屏上的提示标识1001的位置,即由投屏窗口1的位置滑动到投屏窗口2的位置,以向用户提示当前投屏窗口2为焦点窗口。
194.如果电视机确定不需要切换焦点窗口,则电视机可根据接收到的控制操作并结合当前焦点窗口的大小判断是否需要放大当前焦点窗口(如,图9中的步骤4)。其中,如果该控制操作是对焦点窗口的选择操作,如该选择操作可以是对遥控器确定按键的操作,且当前焦点窗口不是最大化窗口时,电视机可放大当前焦点窗口。对于其他的非焦点窗口,电视机
可将其隐藏(如,图9中的步骤5)。可以理解的是,投屏界面的大小随投屏窗口大小的改变而改变。投屏界面也随着投屏窗口的隐藏而隐藏。例如,继续结合图10,当前焦点窗口为投屏窗口1。电视机接收到用户对遥控器确定按键的操作,且电视机确定当前的焦点窗口,即投屏窗口1不是最大化窗口,则电视机可将投屏窗口1最大化,并隐藏其他投屏窗口(即隐藏投屏窗口2)。作为一种示例,放大窗口时,电视机可根据电视机的显示屏尺寸确定当前焦点窗口放大后的尺寸,如放大后的尺寸与电视机显示屏的尺寸相同。
195.如果电视机确定不需要放大当前焦点窗口,则电视机可根据接收到的控制操作并结合当前焦点窗口的大小,判断是否需要缩小当前焦点窗口(如,图9中的步骤6)。其中,如果该控制操作是对遥控器确定按键的操作,且当前焦点窗口是最大化窗口时,电视机可缩小当前焦点窗口,并显示其他的非焦点窗口(如,图9中的步骤7)。例如,电视机当前显示最大化的投屏窗口1,投屏窗口2被隐藏。电视机接收到用户对遥控器确定按键的操作,且电视机确定当前的焦点窗口,即投屏窗口1是最大化窗口,则如图10所示,电视机可缩小投屏窗口1,并显示被隐藏的其他投屏窗口,即显示投屏窗口2。作为一种示例,缩小窗口时,电视机可根据电视机的显示屏尺寸和被隐藏的其他投屏窗口的数量确定当前焦点窗口缩小后的尺寸,如缩小后的尺寸和被隐藏的其他投屏窗口的尺寸相同,且所有投屏窗口的尺寸之和与电视机显示屏的尺寸相同。
196.如果电视机确定不需要缩小当前焦点窗口,则电视机可根据接收到的控制操作,更新当前焦点窗口中的投屏界面(如,图9中的步骤8)。可以理解的是,如果接收到的控制操作不是用来切换焦点窗口,不是用来放大和缩小投屏窗口的,该控制操作可能是用于操作投屏界面的操作(该操作可以为本技术实施例中的第二操作)。那么,电视机可将该控制操作发送给与当前焦点窗口对应的投屏源端,以便于投屏源端根据接收到的控制操作,执行对应的事件,并更新投屏源端显示的界面(投屏源端更新后的界面可以为本技术实施例中的第三界面)。之后,投屏源端可将更新后的界面投射到投屏目的端,如电视机,即投屏源端可获取新的投屏数据,并发送给电视机。电视机接收到更新后的投屏数据后,可根据该新的投屏数据更新当前焦点窗口中的投屏界面(电视机更新后的投屏界面可以为本技术实施例中的第四界面)。
197.如,当前焦点窗口为投屏窗口1。该投屏窗口1中的投屏界面1的内容为ppt。如果接收到的控制操作是对遥控器上按键或下按键的操作,电视机可将该对遥控器上按键或下按键的操作,发送给与投屏窗口1对应的手机1。手机1接收到该操作后,可根据该操作对ppt执行上翻页或下翻页的操作,并可获取新的投屏数据发送给电视机。电视机接收到该新的投屏数据后,可根据该新的投屏数据更新显示投屏窗口1中的投屏界面1。需要说明的是,手机1获取并发送新的投屏数据,电视机接收新的投屏数据并根据新的投屏数据显示投屏界面的具体实现与上述实施例中,s403-s406中对应过程的实现类似,此处不再详细赘述。当然,用于操作投屏界面的控制操作也可能是其他的操作,如对投屏界面中某可操作元素的操作。如果该控制操作是对投屏界面中某可操作元素的操作,则电视机不仅可将该操作发送给对应的投屏源端,还可将该操作在投屏界面中的操作位置发送给投屏源端。投屏源端根据该操作位置可确定出用户操作的是当前显示界面中的哪个元素,进而根据接收到的操作和确定出的被操作的元素执行对应的事件,并更新投屏源端显示的界面。
198.另外,第一终端还可根据作为投屏源端的第二终端的数量,动态调整第一终端显
示的与各第二终端对应投屏窗口的大小和排列布局。其中,作为投屏源端的第二终端的数量可以动态的增加或减少。如,第一终端与多个第二终端建立了连接,第一终端当前显示这多个终端分别对应的投屏窗口。当第一终端与其中一个第二终端断开连接,或者第一终端接收到了用户关闭某投屏窗口的操作(如当某投屏窗口为焦点窗口时,电视机接收到了用户对遥控器的返回键的操作),即作为投屏源端的第二终端的数量减少,则第一终端可停止显示断开连接的第二终端对应的投屏窗口,并根据剩余连接的第二终端的数量,调整各第二终端对应投屏窗口的大小和排列布局。当有新的第二终端与第一终端建立了连接,并开启了投屏,即作为投屏源端的第二终端的数量增加,则第一终端可增加显示与该新的第二终端对应的投屏窗口,并根据当前作为投屏源端的第二终端的数量,调整各第二终端对应投屏窗口的大小和排列布局。
199.其中,以上实施例中的示例,是以无线投屏场景下,实现多对一的投屏为例进行说明的。在其他一些实施例中,本实施例中的多对一的投屏方法也可以应用于跨设备拖拽的场景中。在跨设备拖拽的场景中,具体实现多对一投屏的过程与上述s401-s406中的实现类似,区别在于:
200.1、第一终端,如电视机创建视图和配置解码参数的时机可以是与对应第二终端,如手机1和手机2的连接建立成功后便执行的,也可以是第一终端确定对应第二终端将开始投屏后执行的。如,在跨设备拖拽的场景中,当第二终端确定用户触发跨设备拖拽时,可向第一终端发送对应的拖拽数据。该拖拽数据中可用于指示该拖拽数据是拖拽开始事件中相关数据的指示。该指示可以标识拖拽开始。第一终端根据该指示可确定第二终端将开始投屏。之后,电视机可创建该第二终端对应的视图,配置该第二终端对应的解码参数。
201.2、在跨设备拖拽的场景中,第二终端开始投屏的条件除了包括与第一终端成功建立连接外,还包括确定用户的拖拽意图是跨设备拖拽。其中,用户拖拽的对象可以是第二终端显示的界面,或界面中的元素(如视频元素、画中画或悬浮窗)。
202.示例性的,在第二终端的显示界面或显示界面中的元素被用户拖拽的过程中,或者说第二终端接收到用户的拖拽操作后,第二终端可判断用户拖拽的意图是否是跨设备拖拽,如果确定用户拖拽该元素的意图是跨设备拖拽,则可开始进行投屏。例如,第二终端可设置拖拽感知区域来确定用户的拖拽意图是否是跨设备拖拽。拖拽感知区域可以是第二终端显示屏上距离显示屏边缘预定距离的区域。该预定距离可以是预先定义的,也可以提供设置界面供用户设置。第二终端的拖拽感知区域可以是一个,也可以是多个。拖拽感知区域处设置有透明的视图(view)控件。在被拖拽的对象,如界面或界面中的元素被拖入拖拽感知区域后,设置在对应区域的视图控件可监测到元素的拖入。在存在视图控件监测到元素拖入时,第二终端便可确定用户的拖拽意图是跨设备拖拽。
203.3、在跨设备拖拽的场景中,如果第二终端拖拽的是其显示的界面,则第二终端可将该显示界面(该显示界面可以为本技术实施例中的第二界面)投射到第一终端。具体实现与s403和s404中无线投屏场景下第二终端投射显示界面到第一终端的实现类似,具体描述可参考s403和s404中对应内容的描述,此处不在详细赘述。如果第二终端拖拽的是其显示界面(该显示界面可以为本技术实施例中的第二界面)中的元素,则第二终端可仅将该元素投射到第一终端。例如,在第二终端接收到用户拖拽当前界面中的元素后,第二终端可获取该元素在当前显示界面中的层名称(或者说图层名称,layer name)。在第二终端开始投屏
后,在逐图层进行合成的过程中,第二终端可判断当前需合成的图层的层名称是否与获取到的层名称相同。如果相同,则第二终端将该图层合成到virtualdisplay中。如果不相同,则第二终端不将该图层合成到virtualdisplay中,以实现仅将被用户拖拽的元素投射到第一终端的目的。
204.4、在跨设备拖拽的场景中,为了能够提高用户跨设备拖拽时的跟手体验,第二终端可以在接收到用户的拖拽释放操作后,在第一终端显示被拖拽的对象。可以理解的是,在用户拖拽的过程中,会存在被拖拽的对象的部分区域显示在第二终端的显示屏上,另一部分区域被隐藏(或者说溢出显示屏)的情况。为了给用户该对象从第二终端拖拽到第一终端的视觉效果,在该对象被拖拽的过程中,如果该对象的部分区域溢出显示屏,则可在第一终端和第二终端上同时显示该对象。具体的:被拖拽的对象,一部分区域显示在第二终端上,另一部分区域(溢出第二终端的区域)显示在第一终端上。
205.作为一种示例,在拖拽过程中,实现在第一终端和第二终端上同时显示被拖拽的对象的具体实现可以是:在开始投屏后,第二终端不仅需向第一终端发送投屏数据,还需向第一终端发送被拖拽对象的矩形(rect)信息,及在拖拽过程中该对象某个角(如左上角,左下角,右上角和右下角中的任意一个角)的坐标信息,也就是说,第二终端向第一终端发送的数据包括投屏数据,被拖拽对象的矩形信息,及在拖拽过程中该对象某个角的坐标信息。其中,该对象的矩形信息包括开始拖拽时该对象的左上角、右上角、左下角和右下角四个角的坐标信息。这样,第一终端根据对象的矩形信息,拖拽过程中该对象某个角的坐标信息及第二终端的分辨率,可判断该对象是否存在区域溢出第二终端的显示屏。如果该对象存在区域溢出第二终端的显示屏时,则第一终端可根据该对象的矩形信息,拖拽过程中该对象某个角的坐标信息及第二终端的分辨率确定能够在第一终端的显示屏上对应显示的该对象的区域的信息(该区域与对象溢出第二终端显示屏的区域内容相同)。其中,第二终端的分辨率可以是第一终端在与第二终端建立连接的过程中,或连接建立成功后第二终端发送给第一终端的。第一终端根据确定出的区域的信息和投屏数据,可将该对象对应区域的内容在第一终端的显示屏上显示。
206.例如,结合图12-图14,以手机1和手机2作为投屏源端,电视机作为投屏目的端为例,对跨设备拖拽场景下,多对一投屏的实现过程进行举例介绍。
207.电视机获取手机1的ip地址1,与手机1建立连接。电视机创建与ip地址1对应的视图,如称为视图a。电视机配置与ip地址1关联的解码参数,如称为解码参数a。电视机保存与ip地址1对应的连接实例a,用于接收来自手机1的投屏数据。
208.如图12中的(a)所示,用户打开手机1的视频应用播放视频x。手机1接收到用户触发用于呈现该视频x的视频元素1201拖起的操作。如图12中的(b)所示,响应于该操作,手机1可将该视频元素1201拖起,还可进行背景虚化处理。之后,手机1接收到用户对拖起的视频元素1201的拖拽操作。手机1响应该拖拽操作,使视频元素1201在手机1显示屏上跟随用户手指的移动而移动,给用户以视频元素1201被用户手指拖动的视觉效果。其中,视频元素1201的拖拽方向可以是向上拖动,向左拖动,向右拖动,向下拖动。例如,如图12中的(c)所示,用户可使用手指对拖起后的视频元素1201执行拖拽操作,如长按并向右移动手指的操作。随着用户手指的移动,手机可绘制并显示视频元素1201随用户手指移动的动画。在视频元素1201被拖拽的过程中,手机1可判断用户的拖拽意图是否是跨设备操作。在手机1确定
用户的拖拽意图是跨设备操作后,手机1可创建虚拟显示,并将当前界面中该视频元素1201所在图层绘制到该虚拟显示上,以获得投屏数据,如称为投屏数据a。手机1可将该投屏数据a进行编码后发送给电视机。手机1还可将该视频元素1201的矩形信息,及在拖拽过程中该视频元素1201某个角(如左上角)的坐标信息发送给电视机。
209.电视机可通过连接实例a接收到编码后的投屏数据a,视频元素1201的矩形信息,及在拖拽过程中视频元素1201左上角的坐标信息。电视机根据接收到的视频元素1201的矩形信息,在拖拽过程中视频元素1201左上角的坐标信息和手机1的分辨率,在确定视频元素1201存在区域溢出手机1的显示屏后,电视机可根据该视频元素1201的矩形信息,拖拽过程中视频元素1201左上角的坐标信息及手机1的分辨率确定能够在电视机的显示屏上对应显示的该视频元素1201的区域的信息。
210.另外,电视机根据接收到数据的连接实例a,可确定投屏源端的ip地址为手机1的ip地址1。电视机可根据ip地址1,采用与ip地址1对应的编码参数a,对接收到的投屏数据a进行解码。之后,电视机根据解码后的投屏数据a和确定出的能够在电视机的显示屏上对应显示的视频元素1201的区域的信息,利用创建与ip地址1对应的视图a,可实现投屏界面1的绘制。如图13中的(a)所示,在电视机的显示屏上显示投屏界面1,该投屏界面1中的内容与手机1的视频元素1201中所承载视频x溢出手机显示屏的内容相同。在用户拖拽视频元素1201的过程中,手机1可实时获取投屏数据a和拖拽过程中视频元素1201左上角的坐标信息,并发送给电视机。这样,电视机可根据接收到的数据实时更新投屏界面1。在用户释放拖拽后,电视机可根据实时接收到的投屏数据a,在电视机的显示屏上全屏显示投屏界面1。如图13中的(b)所示,此时,投屏界面1中的内容与视频元素1201中所承载视频x的全部内容相同。
211.类似的,电视机获取手机2的ip地址2,与手机2建立连接。电视机创建与ip地址2对应的视图,如称为视图b。电视机配置与ip地址2关联的解码参数,如称为解码参数b。电视机保存与ip地址2对应的连接实例b,用于接收来自手机2的投屏数据。
212.如图14所示,用户打开手机2的健身应用查看健身视频。手机2接收到用户对承载该健身视频的视频元素的拖拽操作。手机2响应该拖拽操作,使该视频元素在手机2显示屏上跟随用户手指的移动而移动,给用户以视频元素被用户手指拖动的视觉效果。在视频元素被拖拽的过程中,手机2可判断用户的拖拽意图是否是跨设备操作。在手机2确定用户的拖拽意图是跨设备操作后,手机2可创建虚拟显示,并将当前界面中该视频元素所在图层绘制到该虚拟显示上,以获得投屏数据,如称为投屏数据b。手机2可将该投屏数据b进行编码后发送给电视机。手机2还可将该视频元素的矩形信息,及在拖拽过程中该视频元素某个角(如左上角)的坐标信息发送给电视机。电视机可通过连接实例b接收到编码后的投屏数据b,视频元素的矩形信息,及在拖拽过程中视频元素左上角的坐标信息。电视机根据接收到的视频元素的矩形信息,在拖拽过程中视频元素左上角的坐标信息和手机2的分辨率,在确定视频元素存在区域溢出手机2的显示屏后,电视机可根据该视频元素的矩形信息,拖拽过程中视频元素左上角的坐标信息及手机2的分辨率确定能够在电视机的显示屏上对应显示的该视频元素的区域的信息。
213.另外,电视机根据接收到数据的连接实例b,可确定投屏源端的ip地址为手机2的ip地址2。电视机可根据ip地址2,采用与ip地址2对应的编码参数b,对接收到的投屏数据b
进行解码。之后,电视机根据解码后的投屏数据b和确定出的能够在电视机的显示屏上对应显示的视频元素的区域的信息,利用创建与ip地址2对应的视图b,可实现投屏界面2的绘制。电视机此时可同时将投屏界面1和投屏界面2显示在电视机显示屏上。如,电视机上当前全屏显示有投屏界面1。在一些实施例中,如图13中的(c)所示,电视机可在电视机的显示屏上以小窗口(或者说画中画,悬浮窗)的形式显示投屏界面2,该投屏界面2中的内容与手机2的健身视频溢出手机显示屏的内容相同。在用户拖拽视频元素的过程中,手机2可实时获取投屏数据b和拖拽过程中视频元素左上角的坐标信息,并发送给电视机。这样,电视机可根据接收到的数据实时更新投屏界面2。在用户释放拖拽后,电视机可根据实时接收到的投屏数据b,在电视机的显示屏上继续以小窗口的形式显示投屏界面2。如图13中的(d)所示,此时,投屏界面2中的内容与手机2显示的健身视频的全部内容相同。
214.另外,如上述实施例的描述,在电视机显示多个投屏界面的情况下,电视机可默认设置其中一个投屏界面的投屏窗口为焦点窗口,如电视机默认小窗口为焦点窗口。如图13中的(d)所示,电视机显示提示标识1301,用于向用户提示小窗口,即投屏界面2的投屏窗口为焦点窗口。用户可使用电视机的遥控器选择切换焦点窗口,还可进行大小窗布局的切换(其中用于全屏显示投屏界面1的窗口可以称为大窗口),还可关闭大小窗口。如电视机接收到用户对遥控器的左按键或右按键的操作,切换焦点窗口。当焦点窗口为小窗口时,如果电视机接收到用户对遥控器的确认按键的操作,如图13中的(e)所示,电视机可将小窗口,即投屏界面2全屏显示,将大窗口,即投屏界面1以小窗口的形式显示。如果电视机接收到用户对遥控器的返回键的操作,则电视机可停止显示小窗口,或者说关闭小窗口,电视机还可通知该小窗口对应的手机2停止投屏。如果用户继续接收到用户对遥控器的返回键的操作,电视机可以停止显示大窗口,电视机还可通知该大窗口对应的手机1停止投屏。
215.以上示例是以跨设备拖拽场景中,用户拖拽的对象是第二终端显示的界面,或界面中如视频元素、画中画或悬浮窗等元素为例进行说明的。在其他一些实施例中,用户拖拽的对象还可以是第二终端显示的界面中的ui控件。被拖拽的ui控件可以是三方应用定义的,也可以是用户选择的,还可以是系统推荐的。在拖拽对象是界面中的ui控件的场景下,具体实现多对一投屏的过程与拖拽对象是界面或界面中元素的实现类似,区别在于:
216.1、第二终端不是获取投屏数据发送给第一终端,用于实现投屏。而是第二终端在启动投屏后,获取数据,如当前界面的指令流,并将指令流发送给第一终端。另外,第二终端还可将被拖拽的ui控件的标识(也就是说上述数据还可以包括被拖拽的ui控件的标识)发送给第一终端。这样,第一终端根据接收到的被拖拽的ui控件的标识,可从接收到的指令流中抽取出被拖拽的ui控件的画布(canvas)指令,以根据该canvas指令实现被拖拽的ui控件在第一终端上的显示。从而实现第二终端当前显示的界面(该界面可以为本技术实施例中的第二界面)中ui控件在第一终端上的投屏。第一终端上显示的ui控件可以为本技术实施例中的第一界面。其中,结合图3,第一终端和第二终端还可以包括指令管理模块。第二终端的指令管理模块可负责投屏源端界面内容的提取,即负责获取当前界面的指令流。第一终端的指令管理模块可负责对投屏源端内容的还原,如,根据指令流绘制对应的ui控件。或者,第二终端在启动投屏后,获取数据,如被拖拽的ui控件的2d绘制指令及标识,并发送给第一终端。第一终端根据接收到的2d绘制指令和标识,并依据对应的布局文件,绘制被拖拽的ui控件到第一终端的显示屏,即实现第二终端显示的界面中被用户拖拽的ui控件在第一
终端上的显示。其中,ui控件的标识可以是应用开发者在布局文件中写入的特定字段标识,如dupid=xxx。布局文件中还包括绘制区域的其他配置(如与ui控件的标识对应的位置及样式等配置)。第一终端在布局时,根据接收到的2d绘制指令和标识,从布局文件中读取标识对应配置来实现在第一终端的显示屏上ui控件的绘制和布局。
217.2、可以理解的是,在上述实施例中,用于实现第二终端在第一终端投屏的数据(如上述投屏数据),可以理解为视频数据,或者说包括视频数据,因此可以将第一终端和第二终端间用于传输投屏数据的通道称为视频通道,或者说视频传输通道。在跨设备拖拽ui控件的场景中,用于实现第二终端在第一终端投屏的数据为指令流。在一些实施例中,可以继续采用上述视频通道实现指令流的传输。在其他一些实施例中,也可以采用指令通道,或称为指令传输通道实现指令流的传输。也就是说,在本实施例中,可支持多路指令流投射到一个投屏目的端,如第一终端的屏幕上,实现多对一的投屏。
218.3、在跨设备拖拽ui控件的场景中采用指令流实现投屏的情况下,区别于s402中创建的视图,第一终端可创建与各第二终端对应的画布(canvas)(该画布可以为本技术实施例中的绘制组件),用于实现第二终端的ui控件在第一终端上的投射。例如,参考图15,第一终端实现多路指令流投射到一个屏幕上的过程可以包括:在第二终端与第一终端连接后,或第二终端与第一终端连接并开始投屏后,第一终端创建与第二终端对应的画布,用于承载(或绘制)该第二终端投射的ui控件(如,图15中的步骤1)。第一终端根据来自各第二终端的指令流和被拖拽ui控件的标识,在对应画布上分别绘制对应内容(如,图15中的步骤2)。第一终端将与各第二终端对应的画布合成为一个画布(如,图15中的步骤3)。第一终端将合成后的画布显示在第一终端的屏幕上(如,图15中的步骤4)。
219.可以理解的是,请参考图16,当只有一个第二终端作为投屏源端时,第一终端的屏幕上只显示与该第二终端对应的画布(如图16中的(a)中的画布1)的内容。当有两个第二终端作为投屏源端时,这两个第二终端对应画布可按照对应布局显示在第一终端的屏幕上。如,第一终端的屏幕划分为两个区域,其中一个区域用于显示与其中一个第二终端对应的画布(如图16中的(b)中的画布1)的内容,另一个区域用于显示与另一个第二终端对应画布(如图16中的(b)中的画布2)的内容。当有两个以上的第二终端作为投屏源端时,这多个第二终端对应画布可按照对应布局显示在第一终端的屏幕上,如,第一终端的屏幕可划分为对应数量的区域,分别用于显示各第二终端对应画布的内容。需要说明的是,多个画布在第一终端屏幕上的布局可以是预定的,也可以根据用户的设置进行设定,如多个画布以水平等分,垂直等分,画中画,三等分,四等分等方式布局在屏幕上,不限于图16中的(b)所示的水平等分的方式布局。
220.例如,结合图17-图20,以手机1和手机2作为投屏源端,电视机作为投屏目的端,被拖拽的ui控件是用户选择的,投屏源端通过将当前界面的指令流和被拖拽的ui控件的标识发送给第一终端实现ui控件投屏为例,对跨设备拖拽ui控件场景下,多对一投屏的实现过程进行举例介绍。
221.电视机的投屏服务功能启动后,可启动网络监听,以监听连接请求。电视机还可广播自身的ip地址,用于其他设备发起连接请求。如手机1接收到电视机的ip地址。手机1可根据电视机的ip地址发起连接请求,以请求与电视机建立连接。在连接建立的过程中,电视机可获得手机1的ip地址1。在电视机与手机1连接建立后,电视机可启动分布功能,如可创建
与ip地址1对应的画布,如称为画布x,配置与ip地址1关联的解码参数,如称为解码参数x,保存与ip地址1对应的连接实例x,用于接收来自手机1的数据,如指令流,被拖拽的ui控件的标识等,以为手机1的投屏做好准备。可选的,在做好准备后,电视机还可通知手机1已准备就绪。
222.对于手机1而言,用户可通过对手机1当前显示界面中的ui控件进行拖拽,以触发手机1开始投屏。如图17中的(a)所示,手机1显示购物应用的购物详情页1701。手机1接收用户对购物详情页1701中ui控件的拖拽操作。如该拖拽操作可以包括:用户选中ui控件的操作和触发选中的ui控件移动的操作。以被拖拽的ui控件包括:购物详情页1701中的商品预览控件1702,商品价格控件1703,商品简介控件1704,加入购物车按钮1705和立即购买按钮1706为例。如图17中的(b)所示,响应于该拖拽操作,手机1可显示对应ui控件随用户手指的移动而移动的动画,给用户以ui控件被用户手指拖动的视觉效果。在ui控件被拖拽的过程中,手机1可判断用户的拖拽意图是否是跨设备操作。在手机1确定用户的拖拽意图是跨设备操作后,手机1可启动指令抓取,如手机1可对购物详情页1701进行指令抽取,以获得该购物详情页1701对应的指令流,如称为指令流x。其中指令流x中可包括当前界面中各ui控件的canvas指令,层名称,控件的标识等信息。手机1可将该指令流x进行编码后发送给电视机。手机1还可将被拖拽的ui控件的标识发送给电视机。其中,控件的标识可以是应用开发者定义的特定字段标识(如,dup id)。
223.其中,手机1通过ui控件识别可识别出被用户拖拽的ui控件的类型。根据识别出的ui控件的类型手机1可确定被拖拽的ui控件的标识。其中,控件的类型与标识一一对应,且该对应关系预先存储在手机1中。示例性的,可采用人工智能(artificial intelligence)识别的方法来识别出被用户拖拽的ui控件的类型。例如,可预先获取手机中各应用的各界面(如包括上述商品详情页1701),如可通过截屏的方法获取商品详情页1701的整帧图像数据,并采用机器学习中的目标检测技术(如r-cnn,fast-r-cnn yolo等模型算法)定位出该商品详情页1701中的各ui控件的区域,然后将定位出的该商品详情页1701中的各ui控件的区域和类型与该商品详情页1701的标识对应存储在手机1中。在接收到用户拖拽该商品详情页1701中ui控件的操作后,手机根据用户选中ui控件时触摸的位置,及存储的该商品详情页1701中的各ui控件的区域,可识别出用户拖拽的ui控件的类型。又例如,在接收到用户拖拽该商品详情页1701中ui控件的操作后,可将用户选中的ui控件绘制出来,然后采用机器学习中的目标分类技术(如resnet模型算法),可识别出绘制出的ui控件的类型。
224.电视机可通过连接实例x接收到编码后的指令流x,及被拖拽的ui控件的标识。另外,电视机根据接收到数据的连接实例x,可确定投屏源端的ip地址为手机1的ip地址1。电视机可根据ip地址1,采用与ip地址1对应的编码参数x,对接收到的指令流x进行解码。之后,电视机根据解码后的指令流x和被拖拽的ui控件的标识,利用创建与ip地址1对应的画布x,可实现被拖拽的ui控件在电视机屏幕上的绘制及显示。如,在用户释放拖拽后,如图18中的(a)所示,电视机可显示投屏界面x。该投屏界面x中的内容与手机1显示的商品详情页1701中的用户拖拽的ui控件相同。其中,电视机在画布上实现ui控件的绘制时可根据预先配置的布局文件来绘制各ui控件。该布局文件中包括各ui控件绘制区域的配置(如包括ui控件的标识,位置及样式等配置),各ui控件的绘制区域不重叠。另外,该布局文件中各ui控件的绘制区域可与对应ui控件在原界面中的区域不对应,也就是说,通过该布局文件,可实
现ui控件的重新布局。该布局文件可以是系统开发人员或应用开发人员使用安卓
tm
studio生成的。如使用安卓
tm studio可实现ui控件相关布局的抓取及预览显示,系统开发人员或应用开发人员可在预览中调整ui控件的布局,可根据最终布局生成布局文件。
225.类似的,用户可将手机2上显示的界面中ui控件通过拖拽的方式投射到电视机上显示。具体实现与手机1显示界面中ui控件投射到电视机上显示类似,此处不再一一赘述。例如,如图19所示,手机2显示购物应用的购物详情页1901。用户对购物详情页1901中的ui控件执行拖拽操作。如被拖拽的ui控件包括:购物详情页1901中的商品预览控件1902,商品价格控件1903,商品简介控件1904,加入购物车按钮1905和立即购买按钮1906。在拖拽释放后,电视机可采用对应的编码参数(如编码参数y),对接收到的指令流(如指令流y)进行解码。电视机根据解码后的指令流y和被拖拽的ui控件的标识,利用创建的对应画布(如画布y),可实现手机2上被拖拽的ui控件的绘制。可以理解的是,电视机还在画布x上绘制了手机1上被拖拽的ui控件。之后,电视机可将画布x和画布y合成为一个画布后,显示在电视机屏幕上。如,如图18中的(b)所示,电视机可显示投屏界面x和投屏界面y。其中,投屏界面x中的内容与手机1显示的商品详情页1701中的用户拖拽的ui控件相同,投屏界面y中的内容与手机2显示的商品详情页1901中的用户拖拽的ui控件相同。
226.如上述实施例的描述,在电视机显示多个投屏界面的情况下,电视机可默认设置其中一个投屏界面的投屏窗口为焦点窗口。在该实施例中,进一步的,焦点位置具体可以是投屏窗口所呈现的投屏界面中某ui控件。如继续结合图18,如图18中的(b)所示,电视机焦点位置为投屏界面x的商品预览控件1801。用户可使用电视机的遥控器选择切换焦点位置。如,如果电视机接收到用户对遥控器的左按键,右按键,上按键或下按键的操作,则可切换焦点位置。例如,结合图18中的(b),电视机接收到用户对遥控器的右按键的操作,则如图18中的(c)所示,电视机将焦点位置从投屏界面x的商品预览控件1801,切换到投屏界面y的商品预览控件1802。之后,电视机接收到用户对遥控器的下按键的操作,则如图18中的(d)所示,电视机将焦点位置从投屏界面y的商品预览控件1802,切换到投屏界面y的加入购物车按钮1803。
227.用户还可以使用电视机的遥控器实现反控。例如,电视机接收到用户使用遥控器对某可操作性ui控件的操作时,电视机可获取该操作的位置信息。电视机根据该位置信息及被拖拽ui控件在电视机上的布局位置,可确定出该操作的位置(如坐标)对应在手机界面中的原始位置(如坐标),从而确定出用户想要操作的是手机上的哪个ui控件。之后,电视机可将对应的操作指令发送给手机,用于手机进行相应的响应,进而实现反控。如果该响应引起了手机界面内容的变化,则手机可将更新后的界面内容重新投屏到电视机上,以便电视机更新对应投屏界面。如,结合图18中的(b),焦点位置为投屏界面x的商品预览控件1801。电视机接收到用户对遥控器的确认按钮的操作。电视机根据当前焦点位置及布局,可确定用户想要操作手机1上的商品预览控件。电视机可将对应的操作指令发送给手机1。手机1接收到该操作指令后,可根据该操作指令,进行相应的响应,如播放商品预览视频。手机1还可将播放的该视频进行录屏后发送给电视机。如图18中的(e)所示,电视机可全屏播放该商品的预览视频。
228.电视机在接收到用户使用遥控器的操作后,如果对该操作的响应引起了手机界面内容的变化,手机也可不将更新后的界面投射到电视机。用户可在手机上继续进行操作。例
如,结合图20,如图20中的(a)所示,焦点位置为投屏界面x的立即购买按钮2001。电视机接收到用户对遥控器的确认按钮的操作。电视机根据当前焦点位置及存储的对应关系,可确定用户想要操作手机1上的立即购买控件。电视机可将对应的操作指令发送给手机1。如图20中的(b)所示,手机1接收到该操作指令后,可显示购买界面2002。用户可在手机1上继续进行操作。另外,如图20中的(c)所示,电视机还可将手机1对应的投屏界面x置为灰色,还可显示提示信息2003,如包括“在手机端继续操作”字样,以提示用户可继续在手机端进行操作。之后,如果用户触发手机1的购买界面2002退出前台显示,或操作了电视机的返回按键,可切换回电视机继续操作。如,提示信息2003还包括“退出请按“返回”键”字样。
229.采用上述技术方案,可以不借助其他设备,只需投屏源端和投屏目的端设置对应应用,如上述投屏应用,即可实现多个投屏源端到一个投屏目的端的多对一投屏。如,如在开会、发布会演示等场景下,多个手机,平板电脑可将其显示屏上的内容(如ppt,所播视频)投射到同一个大屏设备上呈现,实现了多对一的投屏。提高了多设备协同使用的效率,提高了用户的使用体验。允许用户使用投屏目的端的输入设备对投屏界面进行控制,还可实现对投屏源端的反控。能够通过设置焦点并根据用户操作在不同源端设备的投屏界面之间切换焦点,实现对不同投屏源端的独立控制。投屏目的端还可以根据源端设备的增加或减少进行对呈现的投屏界面的布局进行调整,以给用户呈现最佳的视觉效果。另外,支持图层过滤,即可将当前界面中部分元素(如用户拖拽的元素,或预定元素)所在图层投射到投屏目的端。这样,可确保投屏源端的隐私信息不被投射到投屏目的端,保护了用户的隐私。另外,在仅投射界面中的ui控件的场景中,可将需投射的内容由纯视频流更换为指令流,这样,可提高投屏目的端投屏界面的显示效果,还可节约传输带宽。
230.通过上述实施例中描述可知,采用本实施例提供的方案,多个第二终端与第一终端在连接的情况下,可实现这多个第二终端显示的界面在第一终端上的同时呈现,实现多对一投屏。从而满足开会、发布会演示等场景下,多个设备的显示界面在同一个设备(如,大屏设备)上呈现的需求。随着全球化的发展,跨地域办公越来越普遍,远程会议沟通的需求不断增加。但是现有的视频会议终端在远程共享文档的操作非常麻烦,需要安装并登录专业的付费客户端,并且需要连接电脑等其他设备,导致每次开会需要携带各种设备和连接线并提前准备,降低了会议效率,增加了跨地域办公的沟通成本。另外,随着手机等智能设备在办公中的应用,用户很多文件、数据都保存在手机上。因此,在本技术另外一个实施例中,可将本实施例提供的多对一投屏方案与畅连通话相结合,实现跨地域办公。这种跨地域办公方式,可以提升会议效率,节省跨地域办公的沟通成本。
231.其中,畅连通话实现了多设备间的高清音视频通话,可以在手机与手机、大屏设备、带屏智能音箱等设备间视频通话,并可以在这些设备间自由接续,选择最优的设备接听,给消费者带来更畅快、更自由的通话体验。同时,给用户提供很好的音视频通话体验,能够实现1080p高清视频通话,在暗光和网络质量不好(如:地铁或高铁场景)的情况下,也能够保持流畅。
232.例如,结合图21-图26,对将上述多对一投屏方案与畅连通话相结合实现跨地域办公的具体方案进行举例介绍。
233.地域a与地域b的与会人员需进行跨地域办公。地域a包括一个第一终端,如大屏设备a。地域b包括一个第三终端,如大屏设备b。大屏设备a与大屏设备b进行畅连通话。如图21
所示,大屏设备a显示地域b的会场画面,还可显示本地(即地域a)的会场画面。类似的,大屏设备b显示地域a的会场画面,还可显示本地(即地域b)的会场画面。其中,大屏设备(如大屏设备a和大屏设备b)上显示的对方会场的会场画面,是该大屏设备根据对端大屏设备实时采集的视频数据绘制的。大屏设备显示的本地的会场画面,是根据自身实时采集到的视频数据绘制的。大屏设备间可通过两者之间建立的远场数据通道传输实时采集到的视频数据。
234.地域a的参会人员可将一个或多个第二终端,如手机1和手机2上显示的文档(如分别称为文档1和文档2)采用上述实施例提供的多对一投屏方案投射到地域a的大屏设备a上。如,可以采用跨设备拖拽的方式,或无线投屏的方式实现手机1上显示的文档1,手机2上显示的文档2在大屏设备a上的投射。作为一种示例,手机1可通过与大屏设备a间建立的近场数据通道向大屏设备a发送投屏数据a1,用于大屏设备a显示文档1,以实现手机1上显示的文档1在大屏设备a上的展示。手机2通过与大屏设备a间建立的近场数据通道向大屏设备a发送投屏数据a2,用于大屏设备a上显示文档2,以实现手机2上显示的文档2在大屏设备a上的展示。即结合图21,如图22所示,大屏设备a可根据接收到的投屏数据a1,投屏数据a2,来自大屏设备b的视频数据及大屏设备a自身采集到的视频数据,在大屏设备a的屏幕上显示地域b的会场画面,地域a的会场画面,手机1投射的文档1和手机2投射的文档2。其中,在大屏设备a的屏幕上,本地的会场画面,即地域a的会场画面也可以不显示。
235.如上面的描述,大屏设备a和大屏设备b分别会实时采集本地的会场画面,并将对应视频数据发送给对端大屏设备。在大屏设备a接收到手机1和手机2的投屏,即接收到上述投屏数据a1和投屏数据a2后,大屏设备a不仅需要将实时采集到的视频数据发送给大屏设备b,还可将该投屏数据a1和投屏数据a2,通过与大屏设备b间的远场数据通道发送给大屏设备b,这样,大屏设备b也可在其屏幕上显示文档1和文档2。结合图21,如图22所示,大屏设备b可根据来自大屏设备a的投屏数据a1,投屏数据a2和视频数据,在大屏设备b的屏幕上显示地域a的会场画面,文档1和文档2。其中,在大屏设备b的屏幕上,大屏设备b也可以根据自身采集到的视频数据,显示本地的会场画面,即地域b的会场画面。
236.类似的,地域b的参会人员也可将一个或多个第二终端,如手机3和手机4上显示的文档(如分别称为文档3和文档4)采用上述实施例提供的多对一投屏方案投射到地域b的大屏设备b上。之后,大屏设备a和大屏设备b可分别显示对应的会场画面及两个地域的文档。如以手机3用于实现投屏的投屏数据称为投屏数据b1,手机4用于实现投屏的投屏数据称为投屏数据b2为例。结合图22,如图23所示,大屏设备a可根据来自手机1的投屏数据a1,来自手机2的投屏数据a2,来自大屏设备b的视频数据,投屏数据b1和投屏数据b2,以及大屏设备a自身采集到的视频数据,在大屏设备a的屏幕上显示地域b的会场画面,地域a的会场画面,手机1投射的文档1,手机2投射的文档2,手机3投射的文档3和手机4投射的文档4。类似的,如图23所示,大屏设备b可根据来自手机3的投屏数据b1,来自手机4的投屏数据b2,来自大屏设备a的视频数据,投屏数据a1和投屏数据a2,在大屏设备b的屏幕上显示地域1的会场画面,手机1投射的文档1,手机2投射的文档2,手机3投射的文档3和手机4投射的文档4。
237.在本实施例中,对于大屏设备来说,可将大屏设备的屏幕上用于展示视频通话画面,如上述会场画面的区域称为视频通话区域,将用于展示投屏界面,如上述文档的区域称为文档展示区域,如图23中所示。在一些实施例中,视频通话区域和文档展示区域在大屏设
备屏幕上的布局可以是预先定义的。预定义的布局方式不限于图23中所示的水平布局,还可以垂直布局,以画中画的方式布局等。当大屏设备当前仅显示了视频通话画面的情况下,如果接收到手机的投屏数据,则大屏设备可根据预定义的布局方式,将屏幕划分为视频通话区域和文档展示区域两个区域,分别用于展示视频通话画面和对应的投屏界面。
238.如,以预定义的布局方式是水平布局,手机1投射文档1到大屏设备a为例。结合图21,大屏设备a当前展示视频通话画面,包括地域b的会场画面和地域a的会场画面。地域a参会人员的手机1与大屏设备a连接的情况下,用户通过拖拽的方式触发跨设备投屏。大屏设备a可接收到的投屏请求。如图24中的(a)所示,大屏设备a可显示请求通知2401,用于询问用户手机1请求投屏,是否允许。当用户选择了允许(如选择了允许按钮2402)后,如图24中的(b)所示,大屏设备a可根据预定义的布局方式,将屏幕垂直划分为视频通话区域和文档展示区域两个区域,并呈现手机投射的文档1加入的动画效果,如视频通话画面收起到屏幕的左侧区域,并将文档1展示到屏幕的右侧区域。之后,如图24中的(c)所示,大屏设备a可同时显示视频通话画面和文档1。
239.另外,在本实施例中,用户还可使用大屏设备的输入设备实现对屏幕上所呈现内容的控制。示例性的,用户可使用大屏设备的遥控器进行布局切换。以大屏设备是大屏设备a为例。如图25中的(a)所示,在大屏设备a同时呈现地域b的会场画面,地域a的会场画面及手机1投射的文档1的情况下,大屏设备a可对应每个用于呈现画面的窗口显示一个全屏按钮,如对应地域b的会场画面的窗口显示全屏按钮2501,对应地域b的会场画面的窗口显示全屏按钮2503,对应文档1的画面的窗口显示全屏按钮2502。大屏设备a在接收到用户对全屏按钮的操作后,可将对应窗口的画面全屏展示,其他窗口的画面隐藏。例如,结合图25中的(a),用户可使用大屏设备a的遥控器,切换屏幕上遥控器操作的焦点位置,如遥控器操作的焦点位置切换到全屏按钮2502,该全屏按钮2502与呈现文档1画面的窗口对应。之后,大屏设备a接收到用户对遥控器确定按钮的操作。作为对该操作的响应,如图25中的(b)所示,大屏设备a全屏显示文档1。地域b的会场画面和地域a的会场画面可隐藏。在大屏设备a全屏展示某画面,如上述文档1的画面时,大屏设备a还可显示缩小按钮,如图25中的(b)所示,大屏设备a可显示缩小按钮2504。大屏设备a在接收到用户对该缩小按钮2504的操作后,可将所有画面同时呈现在屏幕上,如图25中的(a)所示。在其他一些实施例中,大屏设备也可不显示与不同画面对应的全屏按钮。在该实施例中,大屏设备,如大屏设备a在显示多个画面时,可默认设置其中一个画面的窗口为焦点窗口。用户可使用大屏设备a的遥控器的方向键切换焦点窗口。在某个画面的窗口为焦点窗口的情况下,大屏设备a接收到用户对遥控器确认按键的操作,则大屏设备a全屏呈现该焦点窗口的画面。之后,大屏设备a接收到用户对遥控器的确认按键或返回按键的操作,则退出全屏,将所有画面同时呈现在屏幕上。以上示例是以仅展示文档展示区域中的画面为例进行说明的,用户还可通知执行上述对应操作,仅在展示视频通话区域中的画面,本实施例在此不再一一赘述。
240.在本技术一些实施例中,与大屏设备(包括进行畅连通话的大屏设备a和大屏设备b)连接的投屏源端有多个时,对于在文档展示区域内具体展示哪个或哪些投屏源端投射的内容,可有如下方案:
241.方案1、在文档展示区域支持多对一共存式分享。如以与大屏设备a连接的投屏源端有两个,分别为手机1和手机2,与大屏设备b连接的投屏源端也有两个,分别为手机3和手
机4,则采用该多对一共存式分享方案,大屏设备a和大屏设备b上可同时展示手机1投射的文档1,手机2投射的文档2,手机3投射的文档3和手机4投射的文档4。例如,如图26中的(a)所示,文档1,文档2,文档3和文档4以四宫格的形式展示在文档展示区域。具体的,文档展示区域被划分为四个文档展示子区域,分别为文档展示子区域1,文档展示子区域2,文档展示子区域3和文档展示子区域4。大屏设备a和大屏设备b分别按照接收到对应投屏数据的先后顺序依次将文档展示在对应文档展示子区域。如投屏数据的先后顺序为:手机1的投屏数据,手机2的投屏数据,手机3的投屏数据,最后为手机4的投屏数据。则大屏设备a和大屏设备b依次将文档1、文档2、文档3和文档4展示在对应文档展示子区域1、文档展示子区域2、文档展示子区域3和文档展示子区域4。
242.方案2、在文档展示区域支持抢占式分享。即大屏设备上只有1个文档展示区域。当与大屏设备(包括进行畅连通话的大屏设备a和大屏设备b)连接的投屏源端有多个时,后一个投屏的文档可覆盖前一个投屏的文档。例如,结合图26中的(b),手机1先与大屏设备a连接,并投射文档1,即大屏设备a和大屏设备b先接收到了手机1的投屏数据,则大屏设备a和大屏设备b在其文档展示区域显示文档1。之后,手机2与大屏设备a连接,并投射文档2,即大屏设备a和大屏设备b接收到了手机2的投屏数据,则大屏设备a和大屏设备b在其文档展示区域不显示文档1,显示文档2。之后,手机3与大屏设备b连接,并投射文档3,即大屏设备b和大屏设备a接收到了手机3的投屏数据,则大屏设备a和大屏设备b在其文档展示区域不显示文档2,显示文档3。之后,手机4与大屏设备b连接,并投射文档4,即大屏设备b和大屏设备a接收到了手机4的投屏数据,则大屏设备a和大屏设备b在其文档展示区域不显示文档3,显示文档4。
243.方案3、也可以将上述方案1和方案2相结合。如,大屏设备最多支持四个投屏源端同时将内容呈现在屏幕上,则当投屏源端的数量小于或等于4时,可按照图26中的(a)所示的结果在大屏设备上呈现各投屏源端的内容。当投屏源端的数量大于4时,可采用抢占式分享的方式呈现其投射的内容。如,结合图26中的(a),在大屏设备当前已呈现了手机1、手机2、手机3和手机4投射的内容的情况下,如果手机5需进行投屏,则手机5投射的内容,如文档5可覆盖手机1投屏的文档1呈现在大屏设备上。之后,如果手机6需进行投屏,则手机6投射的内容,如文档6可覆盖手机2投屏的文档2呈现在大屏设备上,依次类推。
244.采用上述技术方案,不仅可达到上述多对一投屏方案中对应效果;而且当不同地域的两台终端进行畅连通话时,可将不同地域的其他终端的界面或界面中的部分元素呈现在两地的终端上。这两个地域的终端不仅可展示视频通话画面,同时还可以显示本地和对端投射的内容,实现跨地域办公。这样的跨地域办公方式,可以提升会议效率,节省跨地域办公的沟通成本。
245.图27为本技术实施例提供的一种投屏装置的组成示意图。该装置可以应用于第一终端,第一终端与多个第二终端连接。如图27所示,该装置可以包括:接收单元2701和显示单元2702。
246.接收单元2701,用于从多个第二终端中每个第二终端接收数据。
247.显示单元2702,用于根据从多个第二终端接收的数据,在第一终端上显示多个第一界面,多个第一界面与多个第二终端一一对应;其中,第一界面的内容是对应第二终端显示的第二界面内容的镜像,或第一界面的内容与对应第二终端显示的第二界面的部分内容
相同。
248.进一步的,如图27所示,该装置还可以包括:创建单元2703。
249.创建单元2703,用于创建多个绘制组件,多个绘制组件与多个第二终端一一对应,绘制组件为视图或画布。
250.显示单元2702根据从多个第二终端接收的数据,在第一终端上显示多个第一界面,可以包括:显示单元2702根据从多个第二终端接收的数据,在多个绘制组件上分别绘制对应第二终端的第一界面,以在第一终端上显示多个第一界面。
251.进一步的,如图27所示,该装置还可以包括:配置单元2704和解码单元2705。
252.配置单元2704,用于配置多个解码参数,多个解码参数与多个第二终端一一对应。
253.解码单元2705,用于根据多个解码参数,对从对应第二终端接收的数据进行解码。
254.进一步的,如图27所示,该装置还可以包括:获取单元2706。
255.获取单元2706,用于获取多个第二终端的连接信息,连接信息用于第一终端与对应第二终端建立连接;其中,多个绘制组件与多个第二终端一一对应,包括:多个绘制组件与多个第二终端的连接信息一一对应;多个解码参数与多个第二终端一一对应,包括:多个解码参数与多个第二终端的连接信息一一对应。
256.进一步的,如图27所示,该装置还可以包括:输入单元2707。
257.输入单元2707,用于接收用户对第一界面的窗口的第一操作。
258.显示单元2702,还用于响应于第一操作,缩小、放大或关闭窗口,或切换焦点窗口。
259.进一步的,输入单元2702,还用于接收用户对与第二终端对应的第一界面的第二操作。
260.该装置还可以包括:发送单元2708,用于将第二操作的数据发送给第二终端,用于第二终端根据第二操作显示第三界面。
261.进一步的,接收单元2701,还用于从第二终端接收更新的数据。
262.显示单元2702,还用于根据更新的数据,将第二终端对应的第一界面更新为第四界面,第四界面的内容是第三界面内容的镜像,或第四界面的内容与第三界面的部分内容相同。
263.进一步的,第一终端还与第三终端建立连接;发送单元2708,还用于将从多个第二终端接收的数据发送给第三终端,用于第三终端显示多个第一界面。
264.在另一种可能的实现方式中,接收单元2701,还用于接收来自第三终端的视频数据。
265.显示单元2702,还用于在第一终端显示多个第一界面的同时,根据第三终端的视频数据在第一终端上显示视频通话画面。
266.进一步的,该装置还可以包括:采集单元,用于采集视频数据。发送单元2708,还用于发送视频数据给第三终端,用于第三终端在第三终端上显示多个第一界面的同时,显示视频通话画面。
267.图28为本技术实施例提供的另一种投屏装置的组成示意图。该装置可以应用于第二终端,第二终端与第一终端连接。如图28所示,该装置可以包括:显示单元2801、输入单元2802和发送单元2803。
268.显示单元2801,用于显示第二界面。
269.输入单元2802,用于接收用户操作。
270.发送单元2803,用于响应于用户操作,向第一终端发送第二界面的数据,用于第一终端显示与第二终端对应的第一界面,第一终端上还显示有与其他第二终端对应的第一界面;其中,第一界面的内容是对应第二终端显示的第二界面内容的镜像,或第一界面的内容与对应第二终端显示的第二界面的部分内容相同。
271.进一步的,用户操作可以为开始投屏的操作。该装置还可以包括:获取单元2804,用于获取第二界面的数据。
272.其中,在第一界面的内容是第二界面内容的镜像的情况下,第二界面的数据为第二界面的录屏数据;在第一界面的内容与第二界面的部分内容相同的情况下,第二界面的数据为第二界面中预定元素所在图层的录屏数据。
273.进一步的,显示单元2801,还用于显示配置界面,配置界面包括图层过滤设置选项。
274.输入单元2802,还用于接收用户对图层过滤设置选项的选中操作。
275.进一步的,输入单元2802接收用户操作,可以包括:输入单元2802接收用户对第二界面或第二界面中元素的拖拽操作。
276.该装置还可以包括:确定单元2805,用于确定用户的拖拽意图是跨设备拖拽;获取单元2804,还用于获取第二界面的数据。
277.进一步的,在接收到用户对第二界面中元素的拖拽操作的情况下,该元素可以为视频组件,悬浮窗,画中画或自由小窗,第二界面的数据为元素所在图层的录屏数据;或,该元素可以为第二界面中的用户界面ui控件,第二界面的数据为第二界面的指令流和ui控件的标识,或第二界面的数据为ui控件的绘制指令和标识。
278.以上实施例对多个终端到一个终端的投屏过程进行了介绍。如上述实施例的描述,在用户使用终端,如手机的过程中,可能存在多任务并行的需求。本技术其他一些实施例提供的投屏方法,作为投屏源端的终端可通过创建多路媒体流,实现该终端的一个或多个应用的内容到作为投屏目的端的其他终端上的投射显示,以满足多任务并行的需求。以下结合附图进行详细描述。其中,在本实施例中,结合图1b,以第一终端101作为投屏源端,第二终端102作为投屏目的端为例。作为一种示例,在该实施例中,第一终端101可以是手机,平板等移动设备,第二终端102可以为pc,电视等大屏设备。
279.其中,结合上述系统架构,本技术实施例示例性说明另一种第一终端101和第二终端102的软件架构。请参考图29,为本技术实施例提供的另一种软件架构的组成示意图。
280.作为一种示例,第一终端101和第二终端102的软件架构均可以包括:应用层和框架层。
281.其中,在第一终端101作为投屏源端的情况下,如图29所示,第一终端101可以包括:服务调度与策略选择模块,视频采集模块,音频采集模块,隐私模式设置模块,音视频编码模块,多设备连接管理协议适配模块和媒体流传输模块。第一终端101包括的各模块可以包含于第一终端101的软件架构的任意一层。如第一终端101包括的上述模块均包含于第一终端101的框架层,本实施例在此不做具体限制。第一终端101还可以包括应用程序,可以包含于上述应用层。
282.在第二终端102作为投屏目的端的情况下,第二终端102可以包括:视频渲染模块,
音频渲染模块,视频裁剪模块,音视频解码模块,多设备连接管理协议适配模块和媒体流传输模块。第二终端102包括的各模块可以包含于第二终端102的软件架构的任意一层。如第二终端102包括的各模块均包含于第二终端102的框架层,本实施例在此不做具体限制。第二终端102还可以包括应用程序,可以包含于上述应用层。
283.如上述实施例的描述,第一终端101与第二终端102可通过无线或有线的方式建立连接。如,以采用无线方式建立连接为例,第一终端101和第二终端102可通过发现流程发现对方,通过连接流程建立连接,或者说组网。之后,第一终端101和第二终端102之间可提供传输通道,用于两者之间的数据传输,以实现第一终端101中一个或多个应用的内容到第二终端102的显示屏上的显示。
284.需要说明的是,本实施例示意的软件架构的组成并不构成对终端软件架构组成的具体限定。在另一些实施例中,终端(如上述第一终端101,上述第二终端102)可以包括比图示更多或更少的模块,或者组合某些模块,或者拆分某些模块,或者不同的模块布置。如,上述第一终端101可以不包括隐私模式设置模块。又如,上述第一终端101不包括音频采集模块,第二终端102不包括音频渲染模块。再如,上述第一终端101不包括视频采集模块,第二终端102不包括视频渲染模块和视频裁剪模块。再如,上述第二终端102不包括视频裁剪模块。
285.在本实施例中,结合图29所示的软件架构,作为投屏源端的第一终端101可通过创建多路媒体流,将其一个或多个应用的内容投射到作为投屏目的端的第二终端102的显示屏上显示。
286.例如,以作为投屏源端的第一终端101为手机,作为投屏目的端的第二终端102为电视为例。在手机将其一个应用的内容,如包括音频和界面内容投射到电视的场景下,基于图29所示的软件架构,手机的视频采集模块和音频采集模块,可根据服务调度与策略选择模块中定制的媒体策略,进行音频抽取和视频抽取,以获得音频数据和视频数据。手机的视频采集模块和音频采集模块可将采集到的音频数据和视频数据传输给手机的音视频编码模块。手机的音视频编码模块可分别对音频数据和视频数据进行编码、拆包后存储到缓存队列中。另外,手机的多设备连接管理协议适配模块可启动网络监听和连接管理。当监听到设备,如电视有连接请求时,手机可与电视建立连接,以建立手机与电视之间的连接通道。之后,手机的媒体流传输模块可从缓存队列中取出缓存的音频数据和视频数据,并通过手机与电视之间的连接通道传输给电视,如传输给电视的媒体流传输模块。电视的媒体流传输模块接收到数据后,交由电视的音视频解码模块进行组包、解码后,以获得音频数据和视频数据。之后,电视的音视频解码模块将音频数据传输给电视的音频渲染模块,由音频渲染模块输出对应的音频。电视的音视频解码模块将视频数据传输给电视的视频渲染模块,由视频渲染模块输出对应的视频,即显示对应的界面内容。其中,手机进行音视频抽取、编码、拆包及缓存的过程可以称为创建媒体流。这样,手机通过创建一路媒体流(如称为第一路媒体流),可完成手机上一个应用的内容到电视的投射。
287.类似的,手机还可创建另外一路或多路媒体流(如称为第二路媒体流,第三路媒体流等),实现手机上应用的内容到电视或其他投屏目的端的投射。创建的其他路媒体流,如上述第二路媒体流,第三路媒体流等,可以是针对该应用的内容创建的媒体流,也可以是针对其他应用的内容创建的媒体流。以手机创建了另外一路媒体流(如称为第二路媒体流)为
例,如该第二路媒体流和第一路媒体流是针对不同应用创建的媒体流,则手机通过创建两路媒体流,可实现不同应用的内容到投屏目的端的投射显示,这样可满足用户多任务并行的需求,提高终端的使用效率。
288.以下结合具体场景,对本实施例提供的投屏方法进行详细介绍。
289.场景1:手机a不支持多任务并行。用户在使用手机a时,想同时查看手机a的app1的内容和app2的内容。其中,app1可以为本技术实施例中的第一应用。app2可以为本技术实施例中的第二应用。如,app1是视频应用,app2是健身应用。在本实施例中,手机a(手机a可以为上述第一终端)可作为投屏源端,将这两个应用的内容投射到作为投屏目的端的一个或多个其他终端,以满足用户同时查看视频应用和健身应用内容的需求。以投屏目的端包括一个终端,如电视(电视可以为上述第二终端)为例。在跨设备拖拽场景中,用户可通过拖拽的方式触发手机a通过创建两路媒体流,以将手机a上视频应用的内容和健身应用的内容投射到电视上。
290.以下结合图12-图14,对场景1下的投屏过程过程进行介绍。
291.手机a与电视建立连接。手机a与电视建立连接的描述与上述图4所示实施例s401中对应内容的描述类似,此处不再详细赘述。
292.在手机a和电视连接的情况下,手机a可作为投屏源端将应用的内容投射到作为投屏目的端的电视上。
293.其中,手机a将应用的内容投射到电视上的具体描述与上述实施例中手机1或手机2投射内容到电视上的描述类似,此处不再一一赘述。例如,此实施例中,以用户通过拖拽的方式触发手机a开始投射应用的内容至电视为例进行说明。如,应用的内容可以包括手机a显示的该应用的界面内容。
294.例如,手机a当前显示视频应用的界面。用户可针对手机a显示的该视频应用的界面或界面中的元素执行拖拽操作。手机a可接收该拖拽操作。该拖拽操作可以为本技术实施例中的第一操作。可以理解的是,拖拽可以分为设备内拖拽和跨设备拖拽(或者说设备间拖拽)。设备内拖拽可以是指拖拽意图是将被拖拽的对象由该设备的一个位置拖动到该设备的另一个位置的拖拽。跨设备拖拽可以是指拖拽意图是将被拖拽的对象由该设备的一个位置拖动到另一个设备中的拖拽。在本实施例中,手机a可以在接收到用户的拖拽操作后,判断用户的拖拽意图是否是跨设备拖拽。如果确定用户的拖拽意图是跨设备拖拽,则开始视频应用的内容,如视频应用的界面内容到电视上的投射。作为一种示例,手机a可针对当前显示的视频应用的界面,进行视频抽取,以获得对应的视频数据,并将该视频数据发送给作为投屏目的端的电视。该视频数据可以用于视频应用的界面或界面中的元素在投屏目的端投射显示。该视频数据可以为本技术实施例中第一应用的界面的数据。
295.如上述描述,用户拖拽的对象可能是视频应用的界面,也可能是视频应用的界面中的元素,如视频元素、画中画或悬浮窗等。
296.在用户拖拽的对象是手机a显示的视频应用的界面时,结合图29,手机a进行视频抽取,获得对应视频数据的过程可以是:在确定用户的拖拽意图是跨设备拖拽后,手机a创建虚拟显示(virtualdisplay)。如手机a的视频采集模块向手机a的显示管理器发送创建virtualdisplay的请求,手机a的显示管理器完成virtualdisplay的创建后,可将创建的virtualdisplay返回给手机a的视频采集模块。之后,手机a可将视频应用启动到
virtualdisplay中,或者说,将视频应用的界面绘制移到该virtualdisplay中。另外,手机a还可将virtualdisplay绑定到手机a的视频采集模块以进行录屏,或者说进行视频抽取。这样,手机a的视频采集模块可获得对应视频数据。
297.在用户拖拽的对象是视频应用的界面中元素(该元素可以为本技术实施例中的第一元素)的场景下,手机a可仅将该元素投射到投屏目的端。此时,结合图29,手机a进行视频抽取,获得视频数据的过程可以是:在确定用户的拖拽意图是跨设备拖拽后,手机a创建virtualdisplay。之后,手机a可将视频应用的界面中用户拖拽的元素的绘制移到该virtualdisplay中。手机a还可将virtualdisplay绑定到手机a的视频采集模块以进行录屏,或者说进行视频抽取。这样,手机a的视频采集模块可获得对应视频数据。其中,手机a将应用的界面中用户拖拽的元素的绘制移到virtualdisplay的具体实现可以是:手机a在接收到用户对视频应用的界面中元素的拖拽操作后,可获取该元素在当前界面中的层名称(或者说图层名称,layer name)。手机a可将该视频应用的界面逐图层合成到virtualdisplay中。在逐图层合成的过程中,手机a可判断当前需合成的图层的层名称是否与被拖拽的元素所在图层的层名称相同。如果相同,则手机a将该图层合成到virtualdisplay中。如果不相同,则手机a不将该图层合成到virtualdisplay中。这样,可仅将用户拖拽的元素所在图层合成到virtualdisplay中,以便获得的视频数据可用于实现视频应用的界面中用户拖拽的元素在投屏目的端投射显示。
298.需要说明的是,在用户拖拽的对象是视频应用的界面的情况下,手机a也可以仅投射该界面中的特定元素,如视频元素到投屏目的端,以保护用户的隐私。如手机a可提供设置界面供用户开启或关闭该功能,如称为隐私模式。在用户选择开启隐私模式时,手机a仅将该界面中特定元素所在图层合成到virtualdisplay中,以获得视频数据。在用户选择关闭隐私模式时,手机a可将该界面所有的图层合成到virtualdisplay中,以获得视频数据。
299.在手机a获取到视频数据后,可将视频数据进行编码后发送给作为投屏目的端的电视。如手机a的视频采集模块获得视频数据后,可将采集到的视频数据传输给手机a的音视频编码模块。手机a的音视频编码模块可对该视频数据进行编码、拆包后存储到缓存队列中。之后,手机a可将缓存队列中的视频数据发送给电视。如,手机a的媒体流传输模块可从缓存队列中取出缓存的视频数据,并通过手机a与电视之间的连接通道传输给电视,如传输给电视的媒体流传输模块。
300.之后,电视接收到视频数据后,可根据该视频数据,在电视上显示视频应用对应的界面或界面中的元素。如,结合图29,电视的媒体流传输模块接收到数据后,将该数据交由电视的音视频解码模块进行组包、解码后,可以获得对应的视频数据。之后,电视的音视频解码模块将视频数据传输给电视的视频渲染模块,由视频渲染模块显示对应的界面内容。这样,可实现手机a中视频应用的界面或界面中的元素在电视上投射显示,或者说实现了视频应用从手机a到电视上的“转移”。用户可在电视上继续查看视频应用的内容。
301.例如,继续结合图12,以用户拖拽的对象是视频应用的界面中的元素,如视频元素为例。如图12中的(a)-图12中的(c)所示,用户对视频元素1201执行拖拽操作,如长按并向右移动手指的操作。随着用户手指的移动,手机可绘制并显示视频元素1201随用户手指移动的动画。在视频元素1201被拖拽的过程中,手机a在确定用户的拖拽意图是跨设备拖拽后,手机a创建虚拟显示,如称为虚拟显示1(该虚拟显示1可以为本技术实施例中的第一虚
拟显示),并将当前界面中该视频元素1201(该视频元素1201可以为本技术实施例中的第一元素)所在图层绘制到该虚拟显示1上,以便手机a进行视频抽取,以获得视频数据,如称为视频数据a(该视频数据a可以为本技术实施例中的第一应用的界面的数据)。手机a可将该视频数据a进行编码、拆包后存储到缓存队列中。之后,手机a可将缓存队列中的视频数据a发送给电视。电视接收到视频数据a后,对视频数据a进行组包、解码后,进行渲染,以在电视上显示视频元素1201中播放的视频x。实现了视频应用从手机a到电视上的“转移”,用户可在电视上继续观看视频x。
302.另外,如上述实施例的描述,在一些实施例中,电视可以在用户释放对手机a上对象的拖拽后,在电视上显示被拖拽的对象。如,上述手机a将缓存队列中的视频数据a发送给电视,具体的可以为:在手机a在接收到用户释放对上述视频元素501的拖拽后,向电视发送视频数据a,用于电视显示视频x。在其他一些实施例中,为了能够提高用户跨设备拖拽时的跟手体验,给用户该对象从手机a拖拽到电视的视觉效果,在对象被拖拽的过程中,如果该对象的部分区域溢出显示屏,则可在手机a和电视上同时显示该对象。
303.例如,继续结合图12,手机a在确定用户的拖拽意图是跨设备拖拽后,手机a可进行视频抽取以获得视频数据a,并将该视频数据a进行编码、拆包后发送给电视。手机a还可将视频元素1201的矩形信息,及在拖拽过程中该视频元素1201某个角(如左上角)的坐标信息发送给电视。电视根据接收到的视频元素1201的矩形信息,在拖拽过程中视频元素1201左上角的坐标信息和手机a的分辨率,可在确定视频元素1201存在区域溢出手机a的显示屏后,根据视频元素1201的矩形信息,拖拽过程中视频元素1201左上角的坐标信息及手机a的分辨率确定能够在电视的显示屏上对应显示的该视频元素1201的区域的信息。之后,电视对视频数据a进行组包、解码后,根据确定的区域的信息和解码组包后的视频数据a进行界面渲染,可实现视频元素1201中播放的视频x在电视上的绘制。如图13中的(a)所示,在电视的显示屏上显示界面1,该界面1中的内容与手机a的视频元素1201中所承载视频x溢出手机显示屏的内容相同。在用户拖拽视频元素1201的过程中,手机a可实时获取视频数据a和拖拽过程中视频元素1201左上角的坐标信息,并发送给电视。这样,电视可根据接收到的数据实时更新界面1。在用户释放拖拽后,电视可根据实时接收到的视频数据a,在电视的显示屏上全屏显示界面1。如图13中的(b)所示,此时,界面1中的内容与视频元素1201中所承载视频x的全部内容相同。其中,界面1可以为本技术实施例中的第一界面。
304.其中,在本实施例中,上述对应用的内容进行的抽取、编码、拆包及缓存的过程可以称为创建媒体流。即,结合上述示例,在视频应用的内容包括界面内容的情况下,手机a通过创建虚拟显示(如虚拟显示1),并利用该虚拟显示1可实现一路媒体流(如称为第一路媒体流)的创建。之后,手机a通过将创建的该第一路媒体流对应的数据,如上述视频数据a,或称为第一路视频数据发送给电视,可实现视频应用的界面内容到电视的投射。
305.类似的,手机a可通过创建另外一路或多路媒体流,实现手机a上其他应用的内容到电视的投射。如在上述场景1中,用户想同时使用上述视频应用和健身应用,手机a可针对健身应用创建另外一路媒体流,如称为第二路媒体流,以实现健身应用的内容,如界面内容到电视的投射。
306.针对健身应用创建媒体流以实现健身应用的内容到电视端投射的过程与上述针对视频应用创建媒体流实现视频应用的内容到电视端投射的过程类似,此处不再详细赘
述。此处结合示例进行简单说明。例如,在将手机a中视频应用的内容投射到电视上后,如图14所示,用户打开手机a的健身应用(该打开健身应用的操作可以为本技术实施例中的第二操作)查看健身视频。手机a接收到用户对承载该健身视频的视频元素(该视频元素可以为本技术实施例中的第二元素)的拖拽操作(该拖拽操作可以为本技术实施例中的第三操作)。手机a响应该拖拽操作,使该视频元素在手机a显示屏上跟随用户手指的移动而移动,给用户以视频元素被用户手指拖动的视觉效果。在视频元素被拖拽的过程中,手机a可判断用户的拖拽意图是否是跨设备拖拽。在手机a确定用户的拖拽意图是跨设备拖拽后,手机a可创建另一虚拟显示,如称为虚拟显示2(该虚拟显示2可以为本技术实施例中的第二虚拟显示),并将当前界面中该视频元素所在图层绘制到该虚拟显示2上,以便手机a进行视频抽取,以获得视频数据,如称为视频数据b(该视频数据b可以为本技术实施例中的第二应用的界面的数据)。手机a可将该视频数据b进行编码、拆包后存储到缓存队列中。之后,手机a可将缓存队列中的视频数据b发送给电视。另外,手机a还可将该视频元素的矩形信息,及在拖拽过程中该视频元素某个角(如左上角)的坐标信息发送给电视。电视可接收视频数据b,视频元素的矩形信息,及在拖拽过程中视频元素左上角的坐标信息。电视根据接收到的视频元素的矩形信息,在拖拽过程中视频元素左上角的坐标信息和手机a的分辨率,在确定视频元素存在区域溢出手机a的显示屏后,电视可根据该视频元素的矩形信息,拖拽过程中视频元素左上角的坐标信息及手机a的分辨率确定能够在电视的显示屏上对应显示的该视频元素的区域的信息。电视对视频数据b进行组包、解码后,根据确定的区域的信息和解码组包后的视频数据b进行界面渲染,可实现界面2的绘制,该界面2中的内容与手机a中健身应用的健身视频溢出手机显示屏的内容相同。这样,电视可同时将手机a的视频应用的内容和健身应用的内容显示在电视显示屏上。如电视当前全屏显示有视频应用的内容(如上述界面1)。
307.在一些实施例中,如上述实施例中的描述,如图13中的(c)所示,电视可在电视的显示屏上以小窗口(或者说画中画,悬浮窗)的形式显示上述界面2。在用户拖拽视频元素的过程中,手机a可实时获取视频数据b和拖拽过程中视频元素左上角的坐标信息,并发送给电视。这样,电视可根据接收到的数据实时更新界面2。在用户释放拖拽后,如图13中的(d)所示,电视可根据实时接收到的视频数据b,在电视的显示屏上继续以小窗口的形式显示界面2,此时,界面2中的内容与健身应用的健身视频的全部内容相同。由上述描述可以得到的是,手机a通过创建虚拟显示2,并利用该虚拟显示2实现另外一路媒体流,如称为第二路媒体流的创建。手机a通过将创建的第二路媒体流对应的数据,如上述视频数据b,或称为第二路视频数据发送给电视,实现了健身应用的内容到电视的投射。其中,界面2可以为本技术实施例中的第二界面。包括了界面2的内容和界面1的内容的界面可以为本技术实施例中的第三界面。
308.如此,手机a的视频应用和健身应用的内容,如界面内容均投射到了作为投屏目的端的电视上,满足了用户同时查看视频应用和健身应用内容的需求。
309.在其他一些实施例中,上述应用的内容还可以包括音频。如用户使用手机a的应用(如视频应用)观看视频,或使用手机a的音乐应用听音乐时,在用户触发手机a开始投射应用的内容到投屏目的端时,手机a不仅可以将当前显示的应用的界面内容投射到投屏目的端,还可将音频也投射到投屏目的端。在这样的情况下,手机a不仅需向电视发送上述视频
数据(如视频数据a或视频数据b),还需向电视发送音频数据。
310.其中,视频数据用于电视在电视的显示屏上显示对应界面,音频数据用于电视播放对应声音。如上述实施例的描述,音频数据可通过创建音频录音(audiorecord)对象来获得。也就是说,在用户触发手机a开始投射应用的内容时,在应用的内容包括界面内容和音频的情况下,手机a可通过创建虚拟显示和audiorecord对象,并利用虚拟显示和audiorecord对象实现一路媒体流的创建,之后,通过创建的该路媒体流将对应的视频数据和音频数据发送给电视,以实现应用的内容,包括界面内容和音频到电视的投射。其中,在本实施例中,手机a可预先创建多个audiorecord对象,用于后续进行不同路媒体流的音频抽取。如,可用于后续进行不同应用的音频抽取,即可基于创建的audiorecord对象将需要投射的应用的音频数据重定向到对应媒体流上,其他音频数据仍从投屏源端输出。
311.如,继续结合图12所示的示例,视频应用的内容包括界面内容和音频。手机a预先创建两个audiorecord对象,并创建缓存。用户在触发视频应用的内容开始投射后,手机a可通过创建第一路媒体流实现视频应用的内容到电视的投射。其中,视频应用的界面内容到电视的投射过程如上述实施例的描述,此处不再赘述。另外,手机a还可调用audiorecord对象进行音频抽取以获得音频数据,如称为音频数据a,用于实现视频应用的音频到电视的投射。作为一种示例,结合图29,具体获取音频数据a的过程可以包括:手机a,如手机a的音频采集模块可调用预先创建的两个audiorecord对象中的一个audiorecord对象,如称为audiorecord对象1(audiorecord对象1可以为本技术实施例中的第一audiorecord对象)。在audiorecord对象1被调用后,手机a的音频采集模块可对视频应用播放的视频中的音频进行录制,以获得音频数据,如称为音频数据a(该音频数据a可以为本技术实施例中第一应用的音频数据)。手机a的音频采集模块获得音频数据a后,可将采集到的音频数据a传输给手机a的音视频编码模块。手机a的音视频编码模块可对该音频数据a进行编码、拆包后存储到缓存中。
312.之后,手机a的媒体流传输模块可从buffer中获得音频数据a,通过手机a与电视之间的连接通道发送给电视。电视接收到音频数据a后,可根据该音频数据a,由电视输出对应的音频。如结合图29,电视的媒体流传输模块接收到数据后,将该数据交由电视的音视频解码模块进行组包、解码后,可以获得对应的音频数据a。之后,电视的音视频解码模块将音频数据a传输给电视的音频渲染模块,由音频渲染模块输出对应音频。这样,实现了手机a中视频应用的音频到电视上投射。至此,手机a的其他音频仍通过手机a输出。
313.类似的,在用户触发健身应用的内容开始投射后,如果健身应用的内容包括界面内容和音频,则手机a可通过创建第二路媒体流,实现健身应用的内容到电视的投射。其中,健身应用的界面内容到电视的投射过程如上述实施例的描述,此处不再赘述。另外,手机a还可调用手机a预先创建的另外一个audiorecord对象,如称为audiorecord对象2(audiorecord对象2可以为本技术实施例中的第二audiorecord对象),实现健身应用的音频到电视的投射,具体的实现过程与视频应用的音频到电视的投射类似,此处不再赘述。至此,手机a的视频应用和健身应用的音频通过电视输出,其他音频通过手机a输出。在一些实施例中,当存在两路音频需要通过电视输出时,电视可选择其中一路音频输出。如,以电视以大窗口(即全屏显示的窗口)和小窗口形式显示不同应用投射来的界面内容为例,电视可配置不输出小窗口的音频,输出大窗口的音频。如,结合图13中的(d)所示的示例,电视播放
视频x的声音,不播放健身视频的声音。
314.在一些实施例中,可以配置媒体策略,用于创建上述媒体流。其中,媒体策略可以是预先配置的,也可以提供配置界面(如,该配置界面可以为图8所示的界面)供用户设置。不同路媒体流对应的媒体策略可以相同,也可以不同。一路媒体流对应的媒体策略可以包括:是否分布音频(或说投射音频),是否分布视频(或者说投射界面内容),分布视频时对应虚拟显示的参数(如包括:名称,宽度,高度,码率,编码格式,每英寸点数(dots per inch,dpi)等),分布音频时采集的音频的规格等。这样,在需要进行应用内容的投射时,手机a可根据对应的媒体策略确定是否需要投射音频,是否需要投射视频,并根据对应的参数采集指定规格的视频数据,指定规格的音频数据。
315.另外,在电视显示投屏源端投射的多个界面的情况下,电视可默认设置其中一个界面的窗口为焦点窗口,如电视默认小窗口为焦点窗口。继续结合图13,如图13中的(d)所示,电视显示提示标识1301,用于向用户提示小窗口,即界面2的窗口为焦点窗口。用户可使用电视的遥控器选择切换焦点窗口,还可进行大小窗布局的切换,还可关闭大小窗口。其中用于全屏显示界面1的窗口可以称为大窗口。
316.如,电视接收到用户对遥控器的左按键或右按键的操作,则切换焦点窗口。当焦点窗口为小窗口时,如果电视接收到用户对遥控器的确认按键的操作,如图13中的(e)所示,电视可将小窗口,即界面2全屏显示,将大窗口,即界面1以小窗口的形式显示。如果电视接收到用户对遥控器的返回键的操作,则电视可停止显示小窗口,或者说关闭小窗口,电视还可通知手机a停止投射该小窗口对应的应用的内容。另外手机a可将该小窗口对应的应用切换到主屏继续运行。如果用户继续接收到用户对遥控器的返回键的操作,电视可以停止显示大窗口,电视还可通知手机a停止投射该大窗口对应的应用的内容。另外,手机a可停止小窗口对应的应用在主屏的运行,开始大窗口对应应用在主屏运行。
317.需要说明的是,以上实施例以采用大窗口和小窗口形式在投屏目的端显示不同媒体流对应的投射内容仅是一种举例。在其他一些实施例中,投屏目的端也可以采用其他排列布局,如垂直排列,水平排列的方式来显示不同媒体流对应的窗口,本技术实施例在此对投射目的端显示不同媒体流对应窗口的具体实现并不做具体限制。投屏目的端还可根据投射来的媒体流的路数,动态调整投屏目的端显示的与各路媒体流对应窗口的大小和排列布局。其中,投射来的媒体流的路数可以动态的增加或减少。当投射来的媒体流的路数增加或减少后,投屏目的端可根据当前投射来的媒体流的路数,调整各媒体流对应窗口的大小和排列布局。
318.上述场景1是以投屏源端将其多个应用的内容投射到同一个投屏目的端为例进行说明的。在其他一些实施例中,投屏源端也可以将其多个应用投射到不同的投屏目的端。如,以下结合场景2进行说明。
319.场景2:手机b不支持多任务并行。用户在使用手机b时,想同时查看手机b的app3的内容和app4的内容。如,app3是健身应用,app4是教育应用。其中,app3可以为本技术实施例中的第一应用,app4可以为本技术实施例中的第二应用。那么,手机b(手机b可以为上述第一终端)可作为投屏源端,将这两个应用的内容投射到作为投屏目的端的一个或多个其他终端,以满足用户同时查看健身应用和教育应用内容的需求。
320.以投屏目的端包括两个终端,如电视和平板(电视可以为本技术实施例中的第二
操作,平板可以为本技术实施例中的第三终端)为例。手机b可通过创建两路媒体流,以将健身应用的内容投射到电视上,教育应用的内容投射到平板上。其中,具体实现与上述场景1中对应描述类似,此处不再详细赘述,区别在于,手机b创建的两路媒体流,其中一路媒体流对应的数据传输给了电视,用于实现健身应用的内容在电视上的投射,另一路媒体流对应的数据传输给了平板,用于实现教育应用的内容在平板上的投射。
321.结合图30,继续以用户通过拖拽的方式触发手机b开始投射应用的内容为例进行说明。即在跨设备拖拽场景中,用户可通过拖拽的方式触发手机b通过创建两路媒体流,以将手机b上健身应用的内容投射到电视上,将教育应用的内容投射到平板上。如,健身应用的内容和教育应用的内容均包括界面内容和音频。
322.例如,手机b与平板和电视均建立了连接。手机b预先创建了两个audiorecord对象。用户打开手机b的健身应用查看健身视频。手机b接收到用户对承载该健身视频的视频元素(该视频元素可以为本技术实施例中的第一元素)的拖拽操作。在视频元素被拖拽的过程中,手机b可判断用户的拖拽意图是否是跨设备拖拽。在确定用户的拖拽意图是跨设备拖拽后,手机b可创建虚拟显示,如虚拟显示a(该虚拟显示a可以为本技术实施例中的第一虚拟显示),并调用预先创建的两个audiorecord对象中的一个,如audiorecord对象a(该audiorecord对象a可以为本技术实施例中的第一audiorecord对象)。利用虚拟显示a和audiorecord对象a手机b可实现一路媒体流的创建,以获得相应的视频数据和音频数据,如分别称为视频数据a'和音频数据a'。之后,手机b可将视频数据a'和音频数据a'发送给与手机b连接的平板或电视以实现健身应用内容到投屏目的端的投射。
323.作为一种示例,手机b可根据用户的选择操作,将平板和电视中的一个终端作为投屏目的端。如,在手机b确定用户的拖拽意图是跨设备拖拽后,手机b可显示设备列表,该设备列表中包括平板的设备标识和电视的设备标识。用户可在设备列表中选择设备标识,以便手机b确定此次投射的投屏目的端。如手机b接收到用户对电视的设备标识的选择操作,表明用户想将健身应用的内容投射到电视上,则根据用户的该选择操作,手机b可将上述视频数据a'和音频数据a'发送给电视。
324.作为又一种示例,手机b可根据用户执行的拖拽操作的拖拽方向和与手机b连接的终端相对于手机b的方向,确定此次投屏的投屏目的端。作为一种示例,在手机b确定用户的拖拽意图是跨设备拖拽后,手机b可获取与手机b连接的各终端相对于手机b的方向,并将拖拽方向上的终端确定为此次投屏的投屏目的端。如,平板位于指向手机上边缘的方向上,电视位于指向手机右边缘的方向上,用户执行拖拽操作的拖拽方向为向右拖拽。手机b在确定用户的拖拽意图是跨设备拖拽后,可获取与手机b连接的电视和平板相对于手机b的方向。根据与手机b连接的电视和平板相对于手机b的方向,以及拖拽方向,手机b可确定电视位于拖拽方向上,表明用户想将健身应用的内容投射到电视,则手机b可将上述视频数据a'和音频数据a'发送给电视。其中,其他终端相对手机b的方向,手机b可利用蓝牙、超宽带(ultra-wideband,uwb)、超声波等定位技术获得。
325.电视接收到来自手机b的视频数据a'和音频数据a'后,可进行组包、解码后,进行音视频渲染,以在电视上显示健身视频,如图30中的3001所示,并播放对应的音频,实现了手机b的健身应用的内容到电视的投射。
326.在将手机b中健身应用的内容投射到电视上后,用户打开了手机b的教育应用查看
教育视频。手机b接收到用户对承载该教育视频的视频元素的拖拽操作。在视频元素被拖拽的过程中,手机b可在确定用户的拖拽意图是跨设备拖拽后,创建虚拟显示,如虚拟显示b(该虚拟显示b可以为本技术实施例中的第二虚拟显示),并调用预先创建的两个audiorecord对象中的另一个,如audiorecord对象b(该audiorecord对象b可以为本技术实施例中的第二audiorecord对象)。利用虚拟显示b和audiorecord对象b手机b可实现另一路媒体流的创建,以获得相应的视频数据和音频数据,如分别称为视频数据b'和音频数据b'。之后,手机b可将视频数据b'和音频数据b'发送给与手机b连接的平板或电视以实现教育应用内容到投屏目的端的投射。
327.类似于投射健身应用内容的描述,手机b可根据用户的选择操作,或根据用户执行的拖拽操作的拖拽方向和与手机b连接的终端相对于手机b的方向,确定此次投屏的投屏目的端。如,手机b接收到用户选择平板的操作,或确定平板位于拖拽方向上,表明用户想将教育应用的内容投射到平板,则手机b可将上述视频数据b'和音频数据b'发送给电视。
328.平板接收到来自手机b的视频数据b'和音频数据b'后,可进行组包、解码后,进行音视频渲染,以在平板上显示教育视频,如图30中的3002所示,并播放对应的音频,实现了手机b的教育应用的内容到平板的投射。
329.如此,手机b的健身应用和教育应用的内容,如包括界面内容和音频分别投射到了作为投屏目的端的电视和平板上,满足了用户同时查看健身应用和教育应用内容的需求。
330.在本实施例中,可以将场景1中投屏源端创建多路媒体流发送到同一个投屏目的端实现应用内容的投射的模式称为汇聚模式,将场景2中投屏源端创建多路媒体流发送到多个不同投屏目的端实现应用内容的投射的模式称为分发模式。另外,在本实施例中,也支持投屏源端将其创建的一路媒体流投射到多个投屏目的端,可将这种模式称为广播模式。
331.在本实施例中,投屏源端可同时支持上述三种视频分配模式,即投屏源端具备实现上述三种视频分配模式的能力。在一些实施例中,投屏源端支持这三种视频分配模式的可配置,如可以提供设置界面供用户设置,也可以是系统默认的配置。配置的视频分配模式也可以理解为是上述媒体策略。也就是说,投屏源端可从媒体策略中获得视频分配模式的相关配置。
332.如,投屏源端具备实现上述三种视频分配模式的能力,用户设置投屏源端的视频分配模式为上述汇聚模式,则在投屏源端创建了多路媒体流后,根据设置,投屏源端可将这多路媒体流投射到同一投屏目的端,以满足用户的多任务需求。以投屏源端创建了两路媒体流为例。结合上述图29,如图31所示,投屏源端根据服务调度与策略选择模块中定制的媒体策略,可获得视频分配模式为汇聚模式。投屏源端根据用户的触发,可进行第一路音视频数据的采集,第二路音视频的采集。投屏源端分别对第一路音视频数据和第二路音视频数据进行音视频编码,以实现两路媒体流的创建。之后,投屏源端根据配置的视频分配模式,即汇聚模式,经多设备连接管理协议适配后可传输给同一个投屏目的端。其中,源端设备可为不同路音视频数据分配不同的标识(如该标识可以是对应虚拟显示的标识,如虚拟显示的名称,或者该标识可以是源端设备为不同路媒体流分配的索引),以便投屏目的端进行分区。投屏目的端接收到音视频数据后,可根据接收到音视频数据标识的不同,区分出第一路音视频数据和第二路音视频数据。之后,对第一路音视频数据和第二路音视频数据分别进行音频视频解码后,分别进行音视频渲染,以实现在投屏目的端这两路媒体流对应应用内
容的投射。
333.又如,投屏源端具备实现上述三种视频分配模式的能力,系统默认设置投屏源端的视频分配模式为上述分发模式,则在投屏源端创建了多路媒体流后,根据设置,投屏源端可将这多路媒体流投射到多个不同的投屏目的端,以满足用户的多任务需求。继续以投屏源端创建了两路媒体流为例。结合上述图29,如图32所示,投屏源端根据服务调度与策略选择模块中定制的媒体策略,可获得视频分配模式为分发模式。投屏源端根据用户的触发,可进行第一路音视频数据的采集,第二路音视频的采集。投屏源端分别对第一路音视频数据和第二路音视频数据进行音视频编码,以实现两路媒体流的创建。之后,投屏源端根据配置的视频分配模式,即分发模式,经多设备连接管理协议适配后可传输给不同的投屏目的端,如将第一路音视频数据传输给投屏目的端1,将第二路音视频数据传输给投屏目的端2。投屏目的端1和投屏目的端2接收到对应音视频数据后,分别对接收到的音视频数据进行音频视频解码后,进行音视频渲染,以实现在投屏目的端1和投屏目的端2上这两路媒体流对应应用内容的投射。
334.又如,投屏源端具备实现上述三种视频分配模式的能力,系统默认设置投屏源端的视频分配模式为上述广播模式,则投屏源端可创建一路媒体流,根据设置将这一路媒体流投射到多个不同的投屏目的端。结合上述图29,如图33所示,投屏源端根据服务调度与策略选择模块中定制的媒体策略,可获得视频分配模式为广播模式。投屏源端根据用户的触发,可进行单路音视频数据的采集。投屏源端对该路音视频数据进行音视频编码,以实现一路媒体流的创建。之后,投屏源端根据配置的视频分配模式,即广播模式,经多设备连接管理协议适配后可传输给不同的投屏目的端,如将该路音视频数据传输给投屏目的端1和投屏目的端2。投屏目的端1和投屏目的端2接收到该路音视频数据后,分别对接收到的音视频数据进行音频视频解码后,进行音视频渲染,以实现在投屏目的端1和投屏目的端2上这一路媒体流对应应用内容的投射。
335.在其他一些实施例中,投屏源端具备实现上述三种视频分配模式的能力的情况下,投屏源端也可以根据与其连接的设备的数量确定视频分配模式。如,与投屏源端连接的设备存在一个,则投屏源端可以确定视频分配模式为汇聚模式。对于创建的多路媒体流,投屏源端可将这多路媒体流投射到该设备,以实现投屏源端中不同应用内容在同一个投屏目的端的投射,如上述场景1。又如,与投屏源端连接的设备存在多个,则投屏源端可以确定视频分配模式为分发模式。对于创建的多路媒体流,投屏源端可将这多路媒体流投射到不同的设备,以实现投屏源端中不同应用内容在不同投屏目的端的投射,如上述场景2。在另外一些实施例中,在与投屏源端连接的设备存在多个的情况下,在跨设备拖拽场景下,投屏源端也可以根据用户针对不同应用执行拖拽操作时,拖拽方向的不同确定视频分配模式。如,用户针对不同应用执行拖拽操作时的拖拽方向不同,则投屏源端可确定视频分配模式为分发模式,因此,对于创建的多路媒体流,投屏源端可将这多路媒体流投射到不同的设备。又如,用户针对不同应用执行拖拽操作时的拖拽方向相同,则投屏源端可确定视频分配模式为汇聚模式,因此,对于创建的多路媒体流,投屏源端可将这多路媒体流投射到同一设备。
336.结合上述场景1和场景2的描述,可以看到的是,作为投屏源端的终端可通过创建多路媒体流,实现该终端的多个应用的内容到一个或多个投屏目的端的投射,满足了多任务并行的需求,这样可提高终端的使用效率,提升用户的使用体验。另外,本实施例提供的
方案,通过创建虚拟显示,并基于虚拟显示对投屏源端的内容进行屏幕录制、编码后存放到本地缓存中,以实现投屏源端内容在投屏目的端的显示,支持镜像投屏和异源投屏。三方应用可通过集成对应的投屏能力(如,提供dll库、提供aar包),调用多媒体分布协议(distributed multimedia protocol,dmp)的api接口便可实现投屏,这样可实现在线视频的投射。镜像投屏是指投屏目的端渲染的音视频跟投屏源端完全一样,投屏源端上打开图片、音频或视频,目的端也显示图片、播放音频或视频;异源投屏是指可将某个应用(如应用)或窗口(窗口)投射到投屏目的端,可达到既分享又保护隐私的目的。且采用本实施例的方法,通过将多路媒体流发送给同一投屏目的端设备,可在该设备上实现多个投送内容的显示。另外,在本实施例中,可采用用户数据报协议(user datagram protocol,udp)协议和前向纠错编码(forward error correction,fec)实现源端媒体流到投屏目的端的传输,可有效缓解丢包和避免拥塞。可使用废弃参考帧技术(invalidate reference frame,ifr),保障丢包后的快速恢复,避免花屏和长时间的卡顿的现象出现。
337.本技术实施例还提供一种投屏装置,该装置可以应用于电子设备,如上述实施例中的第一终端或者第二终端。该装置可以包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令时使得该投屏装置实现上述方法实施例中第一终端(如电视机)或第二终端(如手机)执行的各个功能或者步骤。
338.本技术实施例提供一种电子设备(如上述第一终端或第二终端),该电子设备包括显示屏,一个或多个处理器和存储器;显示屏,处理器和存储器耦合;存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当计算机指令被电子设备执行时,使得该电子设备实现上述方法实施例中第一终端(如电视机,手机a,手机b)或第二终端(如手机,电视,平板)执行的各个功能或者步骤。当然,该电子设备包括但不限于上述显示屏、存储器和一个或多个处理器。例如,该电子设备的结构可以参考图2所示的手机的结构。
339.本技术实施例还提供一种芯片系统,该芯片系统可以应用于前述实施例中的终端(如第一终端或第二终端)。如图34所示,该芯片系统包括至少一个处理器3401和至少一个接口电路3402。该处理器3401可以是上述终端中的处理器。处理器3401和接口电路3402可通过线路互联。该处理器3401可以通过接口电路3402从上述终端的存储器接收并执行计算机指令。当计算机指令被处理器3401执行时,可使得终端(如上述第一终端或第二终端)执行上述实施例中电视机或手机执行的各个步骤。当然,该芯片系统还可以包含其他分立器件,本技术实施例对此不作具体限定。
340.本技术实施例还提供一种计算机可读存储介质,用于存储上述终端(如第一终端或第二终端)运行的计算机指令。
341.本技术实施例还提供一种计算机程序产品,包括上述终端(如第一终端或第二终端)运行的计算机指令。
342.通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
343.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其
它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
344.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
345.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
346.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
347.以上内容,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献