本技术涉及电子,尤其涉及投屏方法及相关装置。
背景技术:
1、利用投屏技术可以一个智能终端的显示内容或媒体文件(图库、音乐和视频)投射到一或多个其他设备上。投屏技术覆盖了移动办公场景、智能汽车、家庭智慧屏等场景。多个智能终端形成多屏联动和协同互补,是全场景生态建立的重要环节。
2、目前,由于无线投屏的双侧设备需要对投屏内容进行编码和解码等一系列处理,投屏时延较大;网络较差或网络波动较大时,也容易出现投屏卡顿,用户的使用体验差。
技术实现思路
1、本技术提供了投屏方法及相关装置,能够有效降低投屏时延,提高投屏流畅度,提升用户的使用体验。
2、第一方面,本技术提供了一种投屏方法,应用于投屏系统,投屏系统包括第一电子设备和第二电子设备,上述方法包括:第一电子设备接收第一输入操作,第一输入操作用于触发第一电子设备向第二电子设备投屏;基于第一输入操作,第一电子设备的远程直接内存访问(remotedirect memory access,rdma)网卡向第二电子设备的rdma网卡发送第一请求,第一请求包括第一投屏信息和第二电子设备的第二内存空间的地址,第一请求用于指示将第一投屏信息写入第二内存空间;基于第一请求,第二电子设备的rdma网卡将第一投屏信息写入第二内存空间;第二电子设备基于第二内存空间存储的数据输出第一投屏信息。
3、实施本技术实施例,利用rdma网卡,可以直接在用户态执行数据传输;不需要将数据复制到网络软件栈,也不需要多次在内核态与用户态之间做上下文切换,第一电子设备可以直接将本设备存储的投屏信息直接写入第二电子设备的第二内存空间中;rdma网卡可以提供微秒级的访问延迟和高吞吐量。这样,第一电子设备生成投屏信息后,第二电子设备可以在极短时间内获取并输出投屏信息,有效降低了投屏时延,提高了投屏流畅度。此外,利用rdma网卡,第二电子设备访问第一电子设备的特定内存的投屏信息,不需要第一电子设备的中央处理器(central processing unit,cpu)干预,有效降低了投屏的cpu负载。
4、在一种实现方式中,第一投屏信息包括第一投屏画面的图像数据;第二电子设备基于第二内存空间存储的数据输出第一投屏信息,包括:第二电子设备的显示屏基于第二内存空间存储的数据显示第一投屏画面。实施本技术实施例,第一电子设备生成投屏画面后,第二电子设备可以在极短时间内获取并显示投屏画面,有效降低了投屏时延,提高了投屏流畅度。
5、在一种实现方式中,第一投屏信息包括第一投屏音频的音频数据;第二电子设备基于第二内存空间存储的数据输出第一投屏信息,包括:第二电子设备的音频输出装置基于第二内存空间存储的数据输出第一投屏音频。实施本技术实施例,第一电子设备生成投屏音频后,第二电子设备可以在极短时间内获取并显示投屏音频,有效降低了投屏时延,提高了投屏流畅度。
6、在一种实现方式中,第一电子设备的rdma网卡向第二电子设备的rdma网卡发送第一请求之前,还包括:第一电子设备检测到第一电子设备合成第一投屏信息并存储到第一内存空间后,第一电子设备的rdma网卡基于第一内存空间中的第一投屏信息生成第一请求。实施本技术实施例,结合了现有的投屏信息的缓存机制,例如合成后的投屏画面会被缓存到显示缓冲区;在检测到投屏信息被缓存至显示缓冲区,就触发第二电子设备向第一电子设备及时写入投屏信息,有效降低了投屏时延。
7、在一种实现方式中,第一投屏信息包括第一投屏画面的图像数据;第一电子设备和第二电子设备时钟同步,上述方法还包括:在第一刷新周期,将第一投屏画面写入第一电子设备的第一内存空间;在第一刷新周期的下一刷新周期,第一电子设备的显示屏基于第一内存空间存储的数据显示第一投屏画面;第二电子设备的rdma网卡将第一投屏信息写入第二内存空间,包括:在第一刷新周期内,第二电子设备的rdma网卡将第一投屏信息写入第二内存空间;第二电子设备基于第二内存空间存储的数据输出第一投屏信息,包括:在第一刷新周期的下一刷新周期,第二电子设备的显示屏基于第二内存空间存储的数据显示第一投屏画面。实施本技术实施例,第一电子设备和第二电子设备时钟同步的情况下,第一电子设备生成投屏信息后,第二电子设备可以在下一个刷新周期到来前在极短时间内获取投屏画面,并缓存到显示缓冲区;从而可以保障两个电子设备在下一刷新周期可以同时根据显示缓冲区中的数据显示投屏画面,有效提高了用户的使用体验。
8、在一种实现方式中,第一电子设备接收第一输入操作之后,第一电子设备的rdma网卡向第二电子设备的rdma网卡发送第一请求之前,上述方法还包括:第二电子设备向第一电子设备发送第一rdma报文,第一rdma报文包括第二电子设备的第二内存空间的地址,第二内存空间用于存储来自第一电子设备的投屏信息。实施本技术实施例,第二电子设备提前告知第一电子设备用于存储投屏信息的第二内存空间的地址,以便于后续第一电子设备利用rdma网卡及时将投屏信息写入第二电子设备的第二内存空间。
9、在一种实现方式中,第二电子设备向第一电子设备发送第一rdma报文之前,还包括:第二电子设备将第二内存空间注册到第二电子设备的rdma网卡,获取第二内存空间的地址对应的第一密钥;第一rdma报文还包括第一密钥,第一请求还包括第一密钥;基于第一请求,第二电子设备的rdma网卡将第一投屏信息写入第二内存空间,包括:第二电子设备的rdma网卡确定第一请求包括的第一密钥为第二内存空间的地址对应的密钥后,将第一投屏信息写入第二内存空间。实施本技术实施例,第二电子设备提前向rdma网卡注册用于存储投屏信息的第二内存空间,以获取第二内存空间对应的密钥;通过该密钥可以保障后续第一电子设备和第二电子设备的数据传输的安全性。
10、在一种实现方式中,第二电子设备的rdma网卡向第一电子设备的rdma网卡发送第一rdma报文之前,还包括:基于第一输入操作,第一电子设备的rdma网卡和第二电子设备的rdma网卡建立rdma连接,第一rdma报文和第一请求是通过rdma连接发送的。
11、在一种实现方式中,第一电子设备的rdma网卡和第二电子设备的rdma网卡建立rdma连接之前,还包括:响应于第一输入操作,第一电子设备通过第一通信模块向第二电子设备发送投屏请求;第一电子设备通过第一通信模块接收第二电子设备发送的投屏响应;第一电子设备的rdma网卡和第二电子设备的rdma网卡建立rdma连接,包括:基于投屏响应确定投屏时,第二电子设备的rdma网卡和第一电子设备的rdma网卡建立rdma连接。
12、在一种实现方式中,第二电子设备基于第二内存空间存储的数据输出第一投屏信息之后,方法包括:第二电子设备接收第二输入操作;第二电子设备在第三内存空间存储第二输入操作对应的第一投屏反控事件;第二电子设备的rdma网卡向第一电子设备的rdma网卡发送第二请求,第二请求包括第一投屏反控事件的数据和第一电子设备的第四内存空间的地址,第二请求用于指示将第一投屏反控事件的数据写入第四内存空间;基于第二请求,第一电子设备的rdma网卡将第一投屏反控事件的数据写入第四内存空间;基于第四内存空间存储的第一投屏反控事件,第一电子设备执行第一响应事件。实施本技术实施例,利用rdma网卡,可以直接在用户态执行数据传输;不需要将数据复制到网络软件栈,也不需要多次在内核态与用户态之间做上下文切换,第二电子设备可以直接将第二电子设备存储的投屏反控事件直接写入第一电子设备的第四内存空间中。这样,第二电子设备生成投屏反控事件后,第一电子设备可以在极短时间内获取投屏反控事件,进而按照现有机制确定并执行第四内存空间中的事件对应的响应事件,有效降低了投屏反控时延,提高了投屏流畅度。此外,利用rdma网卡,第一电子设备访问第二电子设备的特定内存的投屏反控事件,也不需要第二电子设备的中央处理器(central processing unit,cpu)干预,有效降低了投屏反控的cpu负载。
13、在一种实现方式中,第二电子设备的rdma网卡向第一电子设备的rdma网卡发送第二请求之前,还包括:第二电子设备检测到第一投屏反控事件存储到第三内存空间后,第二电子设备的rdma网卡基于第三内存空间中第一投屏反控事件的数据生成第二请求。实施本技术实施例,结合了现有的输入事件的缓存机制,例如投屏反控事件会被缓存到事件缓冲区;在检测到上述事件被缓存至事件缓冲区,就触发第一电子设备向第二电子设备及时写入投屏反控事件,有效降低了投屏反控时延。
14、在一种实现方式中,第二电子设备的rdma网卡向第一电子设备的rdma网卡发送第二请求之前,上述方法还包括:第一电子设备向第二电子设备发送第二rdma报文,第二rdma报文包括第一电子设备的第四内存空间的地址,第四内存空间用于存储第一电子设备的输入事件。实施本技术实施例,第一电子设备提前告知第二电子设备用于存储输入事件的第四内存空间的地址,以便于后续第二电子设备利用rdma网卡及时将投屏反控事件写入第一电子设备的第四内存空间。
15、第二方面,本技术提供一种投屏方法,应用于第一电子设备,包括:第一电子设备接收第一输入操作,第一输入操作用于触发第一电子设备向第二电子设备投屏;基于第一输入操作,第一电子设备的rdma网卡向第二电子设备的rdma网卡发送第一请求,第一请求包括第一投屏信息和第二电子设备的第二内存空间的地址,第一请求用于指示将第一投屏信息写入第二内存空间。
16、实施本技术实施例,利用rdma网卡,可以直接在用户态执行数据传输;不需要将数据复制到网络软件栈,也不需要多次在内核态与用户态之间做上下文切换,第一电子设备可以直接将本设备存储的投屏信息直接写入第二电子设备的第二内存空间中;rdma网卡可以提供微秒级的访问延迟和高吞吐量。这样,第一电子设备生成投屏信息后,第二电子设备可以在极短时间内获取并输出投屏信息,有效降低了投屏时延,提高了投屏流畅度。此外,利用rdma网卡,第二电子设备访问第一电子设备的特定内存的投屏信息,不需要第一电子设备的中央处理器(central processing unit,cpu)干预,有效降低了投屏的cpu负载。
17、在一种实现方式中,第一投屏信息包括第一投屏画面的图像数据;第二内存空间存储的第一投屏信息用于第二电子设备的显示屏显示第一投屏画面。
18、在一种实现方式中,第一投屏信息包括第一投屏音频的音频数据;第二内存空间存储的第一投屏信息用于第二电子设备的音频输出装置输出第一投屏音频。
19、在一种实现方式中,第一电子设备的rdma网卡向第二电子设备的rdma网卡发送第一请求之前,还包括:第一电子设备检测到第一电子设备合成第一投屏信息并存储到第一内存空间后,第一电子设备的rdma网卡基于第一内存空间中的第一投屏信息生成第一请求。
20、在一种实现方式中,第一电子设备接收第一输入操作之后,第一电子设备的rdma网卡向第二电子设备的rdma网卡发送第一请求之前,上述方法还包括:第一电子设备接收第二电子设备发送的第一rdma报文,第一rdma报文包括第二电子设备的第二内存空间的地址,第二内存空间用于存储来自第一电子设备的投屏信息。
21、在一种实现方式中,第二电子设备的rdma网卡向第一电子设备的rdma网卡发送第一rdma报文之前,还包括:基于第一输入操作,第一电子设备的rdma网卡和第二电子设备的rdma网卡建立rdma连接,第一rdma报文和第一请求是通过rdma连接发送的。
22、在一种实现方式中,第一电子设备的rdma网卡和第二电子设备的rdma网卡建立rdma连接之前,还包括:响应于第一输入操作,第一电子设备通过第一通信模块向第二电子设备发送投屏请求;第一电子设备通过第一通信模块接收第二电子设备发送的投屏响应;第一电子设备的rdma网卡和第二电子设备的rdma网卡建立rdma连接,包括:基于投屏响应确定投屏时,第一电子设备的rdma网卡和第二电子设备的rdma网卡建立rdma连接。
23、在一种实现方式中,第一电子设备的rdma网卡向第二电子设备的rdma网卡发送第一请求之后,方法包括:第一电子设备的rdma网卡接收第二电子设备的rdma网卡发送的第二请求,第二请求包括第一投屏反控事件的数据和第一电子设备的第四内存空间的地址,第二请求用于指示将第一投屏反控事件的数据写入第四内存空间;基于第二请求,第一电子设备的rdma网卡将第一投屏反控事件的数据写入第四内存空间;基于第四内存空间存储的第一投屏反控事件,第一电子设备执行第一响应事件。
24、在一种实现方式中,第一电子设备的rdma网卡接收第二电子设备的rdma网卡发送的第二请求之前,上述方法还包括:第一电子设备向第二电子设备发送第二rdma报文,第二rdma报文包括第一电子设备的第四内存空间的地址,第四内存空间用于存储输入事件。
25、第三方面,本技术提供了一种投屏方法,其特征在于,应用于第二电子设备,包括:第二电子设备的rdma网卡接收第一电子设备的rdma网卡发送的第一请求,第一请求包括第一投屏信息和第二电子设备的第二内存空间的地址,第一请求用于指示将第一投屏信息写入第二内存空间;基于第一请求,第二电子设备的rdma网卡将第一投屏信息写入第二内存空间;第二电子设备基于第二内存空间存储的数据输出第一投屏信息。
26、实施本技术实施例,利用rdma网卡,可以直接在用户态执行数据传输;不需要将数据复制到网络软件栈,也不需要多次在内核态与用户态之间做上下文切换,第一电子设备可以直接将本设备存储的投屏信息直接写入第二电子设备的第二内存空间中;rdma网卡可以提供微秒级的访问延迟和高吞吐量。这样,第一电子设备生成投屏信息后,第二电子设备可以在极短时间内获取并输出投屏信息,有效降低了投屏时延,提高了投屏流畅度。此外,利用rdma网卡,第二电子设备访问第一电子设备的特定内存的投屏信息,不需要第一电子设备的中央处理器(central processing unit,cpu)干预,有效降低了投屏的cpu负载。
27、在一种实现方式中,第一投屏信息包括第一投屏画面的图像数据;第二电子设备基于第二内存空间存储的数据输出第一投屏信息,包括:第二电子设备的显示屏基于第二内存空间存储的数据显示第一投屏画面。
28、在一种实现方式中,第一投屏信息包括第一投屏音频的音频数据;第二电子设备基于第二内存空间存储的数据输出第一投屏信息,包括:第二电子设备的音频输出装置基于第二内存空间存储的数据输出第一投屏音频。
29、在一种实现方式中,第二电子设备的rdma网卡接收第一电子设备的rdma网卡发送的第一请求之前,上述方法还包括:第二电子设备向第一电子设备发送第一rdma报文,第一rdma报文包括第二电子设备的第二内存空间的地址,第二内存空间用于存储来自第一电子设备的投屏信息。
30、在一种实现方式中,第二电子设备向第一电子设备发送第一rdma报文之前,还包括:第二电子设备将第二内存空间注册到第二电子设备的rdma网卡,获取第二内存空间的地址对应的第一密钥;第一rdma报文还包括第一密钥,第一请求还包括第一密钥;基于第一请求,第二电子设备的rdma网卡将第一投屏信息写入第二内存空间,包括:第二电子设备的rdma网卡确定第一请求包括的第一密钥为第二内存空间的地址对应的密钥后,将第一投屏信息写入第二内存空间。
31、在一种实现方式中,第二电子设备的rdma网卡向第一电子设备的rdma网卡发送第一rdma报文之前,还包括:第二电子设备的rdma网卡和第一电子设备的rdma网卡建立rdma连接,第一rdma报文和第一请求是通过rdma连接发送的。
32、在一种实现方式中,第二电子设备基于第二内存空间存储的数据输出第一投屏信息之后,方法包括:第二电子设备接收第二输入操作;第二电子设备在第三内存空间存储第二输入操作对应的第一投屏反控事件;第二电子设备的rdma网卡向第一电子设备的rdma网卡发送第二请求,第二请求包括第一投屏反控事件的数据和第一电子设备的第四内存空间的地址,第二请求用于指示将第一投屏反控事件的数据写入第四内存空间,第四内存空间用于存储第一电子设备的输入事件。
33、在一种实现方式中,第二电子设备的rdma网卡向第一电子设备的rdma网卡发送第二请求之前,还包括:第二电子设备检测到第一投屏反控事件存储到第三内存空间后,第二电子设备的rdma网卡基于第三内存空间中第一投屏反控事件的数据生成第二请求。
34、在一种实现方式中,第二电子设备的rdma网卡向第一电子设备的rdma网卡发送第二请求之前,上述方法还包括:第二电子设备接收第一电子设备发送的第二rdma报文,第二rdma报文包括第一电子设备的第四内存空间的地址。
35、第四方面,本技术提供了一种电子设备,包括一个或多个处理器和一个或多个存储器。该一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得通信装置执行上述第二方面任一项可能的实现方式中的投屏方法。
36、第五方面,本技术提供了另一种电子设备,包括一个或多个处理器和一个或多个存储器。该一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得通信装置执行上述第三方面任一项可能的实现方式中的投屏方法。
37、第六方面,本技术实施例提供了一种计算机存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得通信装置执行上述任一方面任一项可能的实现方式中的投屏方法。
38、第七方面,本技术实施例提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述任一方面任一项可能的实现方式中的投屏方法。
1.一种投屏方法,其特征在于,应用于投屏系统,所述投屏系统包括第一电子设备和第二电子设备,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述第一投屏信息包括第一投屏画面的图像数据;所述第二电子设备基于所述第二内存空间存储的数据输出第一投屏信息,包括:
3.根据权利要求1所述的方法,其特征在于,所述第一投屏信息包括第一投屏音频的音频数据;所述第二电子设备基于所述第二内存空间存储的数据输出第一投屏信息,包括:
4.根据权利要求1所述的方法,其特征在于,所述第一电子设备的rdma网卡向所述第二电子设备的rdma网卡发送第一请求之前,还包括:
5.根据权利要求4所述的方法,其特征在于,所述第一投屏信息包括第一投屏画面的图像数据;所述第一电子设备和所述第二电子设备时钟同步,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述第一电子设备接收第一输入操作之后,所述第一电子设备的rdma网卡向所述第二电子设备的rdma网卡发送第一请求之前,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,所述第二电子设备向所述第一电子设备发送第一rdma报文之前,还包括:
8.根据权利要求6所述的方法,其特征在于,第二电子设备的rdma网卡向第一电子设备的rdma网卡发送第一rdma报文之前,还包括:
9.根据权利要求8所述的方法,其特征在于,所述第一电子设备的rdma网卡和所述第二电子设备的rdma网卡建立rdma连接之前,还包括:
10.根据权利要求1所述的方法,其特征在于,所述第二电子设备基于所述第二内存空间存储的数据输出第一投屏信息之后,所述方法包括:
11.根据权利要求10所述的方法,其特征在于,所述第二电子设备的rdma网卡向所述第一电子设备的rdma网卡发送第二请求之前,还包括:
12.根据权利要求10所述的方法,其特征在于,所述第二电子设备的rdma网卡向所述第一电子设备的rdma网卡发送第二请求之前,所述方法还包括:
13.一种投屏方法,其特征在于,应用于第一电子设备,包括:
14.根据权利要求13所述的方法,其特征在于,所述第一投屏信息包括第一投屏画面的图像数据;所述第二内存空间存储的所述第一投屏信息用于所述第二电子设备的显示屏显示所述第一投屏画面。
15.根据权利要求13所述的方法,其特征在于,所述第一投屏信息包括第一投屏音频的音频数据;所述第二内存空间存储的所述第一投屏信息用于所述第二电子设备的音频输出装置输出所述第一投屏音频。
16.根据权利要求13所述的方法,其特征在于,所述第一电子设备的rdma网卡向所述第二电子设备的rdma网卡发送第一请求之前,还包括:
17.根据权利要求13所述的方法,其特征在于,所述第一电子设备接收第一输入操作之后,所述第一电子设备的rdma网卡向所述第二电子设备的rdma网卡发送第一请求之前,所述方法还包括:
18.根据权利要求17所述的方法,其特征在于,第二电子设备的rdma网卡向第一电子设备的rdma网卡发送第一rdma报文之前,还包括:
19.根据权利要求18所述的方法,其特征在于,所述第一电子设备的rdma网卡和所述第二电子设备的rdma网卡建立rdma连接之前,还包括:
20.根据权利要求13所述的方法,其特征在于,所述第一电子设备的rdma网卡向所述第二电子设备的rdma网卡发送第一请求之后,所述方法包括:
21.根据权利要求20所述的方法,其特征在于,所述第一电子设备的rdma网卡接收所述第二电子设备的rdma网卡发送的第二请求之前,所述方法还包括:
22.一种投屏方法,其特征在于,应用于第二电子设备,包括:
23.根据权利要求22所述的方法,其特征在于,所述第一投屏信息包括第一投屏画面的图像数据;所述第二电子设备基于所述第二内存空间存储的数据输出第一投屏信息,包括:
24.根据权利要求22所述的方法,其特征在于,所述第一投屏信息包括第一投屏音频的音频数据;所述第二电子设备基于所述第二内存空间存储的数据输出第一投屏信息,包括:
25.根据权利要求22所述的方法,其特征在于,所述第二电子设备的rdma网卡接收第一电子设备的rdma网卡发送的第一请求之前,所述方法还包括:
26.根据权利要求25所述的方法,其特征在于,所述第二电子设备向所述第一电子设备发送第一rdma报文之前,还包括:
27.根据权利要求25所述的方法,其特征在于,第二电子设备的rdma网卡向第一电子设备的rdma网卡发送第一rdma报文之前,还包括:
28.根据权利要求22所述的方法,其特征在于,所述第二电子设备基于所述第二内存空间存储的数据输出第一投屏信息之后,所述方法包括:
29.根据权利要求28所述的方法,其特征在于,所述第二电子设备的rdma网卡向所述第一电子设备的rdma网卡发送第二请求之前,还包括:
30.根据权利要求28所述的方法,其特征在于,所述第二电子设备的rdma网卡向所述第一电子设备的rdma网卡发送第二请求之前,所述方法还包括:
31.一种电子设备,包括存储器,一个或多个处理器,以及一个或多个计算机程序;其中,所述一个或多个计算机程序被存储在所述存储器中;其特征在于,所述一个或多个处理器在执行所述一个或多个计算机程序时,使得所述电子设备实现如权利要求13至21或权利要求22至30任一项所述的方法。
32.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备实现如权利要求13至30任一项所述的方法。