CN117641064A - 图形同步显示方法及电子设备 - Google Patents
图形同步显示方法及电子设备 Download PDFInfo
- Publication number
- CN117641064A CN117641064A CN202211001587.9A CN202211001587A CN117641064A CN 117641064 A CN117641064 A CN 117641064A CN 202211001587 A CN202211001587 A CN 202211001587A CN 117641064 A CN117641064 A CN 117641064A
- Authority
- CN
- China
- Prior art keywords
- graphic
- target
- data
- graphic data
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 216
- 230000001360 synchronised effect Effects 0.000 title claims abstract description 27
- 230000008569 process Effects 0.000 claims abstract description 129
- 230000008859 change Effects 0.000 claims abstract description 80
- 238000004590 computer program Methods 0.000 claims description 10
- 238000011084 recovery Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 description 25
- 230000006870 function Effects 0.000 description 24
- 239000010410 layer Substances 0.000 description 18
- 238000012545 processing Methods 0.000 description 17
- 230000004044 response Effects 0.000 description 12
- 238000007726 management method Methods 0.000 description 11
- 238000010295 mobile communication Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000005070 sampling Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 230000000694 effects Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000005236 sound signal Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Abstract
一种图形同步显示方法及电子设备,涉及终端技术领域。在用户对目标图形对象进行绘制操作的过程中,第一设备可以将目标图形对象在绘制操作中发生变化时对应的不同图形数据发送给服务器,从而通过服务器将图形数据发送第二设备等。第二设备可以根据第一设备上目标图形对象在变化时对应的不同图形数据将图形对象的变化过程显示出来。从而使第二设备对应的用户可以同步地观看到第一设备上图形的绘制或者状态变化的动态过程。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种图形同步显示方法及电子设备。
背景技术
电子白板越来越多地应用在远程协作等互动场景中。例如,在线上教学的场景中,老师可以在其对应的电子设备的电子白板上进行板书和图形的绘制,在学生电子设备的电子白板上可以显示老师绘制的内容,这样可以模拟在线下课堂上学生观看老师在黑板上绘制板书和图形的过程。
电子白板在不同设备间同步显示绘制内容的方式一般是在一个电子设备的电子白板上完成绘制过程之后,将绘制的内容同步到其他电子设备的电子白板上进行显示。这样的显示方式并不能让用户直观地感受到绘制内容变化的过程,从而会影响用户的观看体验。
发明内容
本申请实施例提供一种图形同步显示方法及电子设备,在第一设备上的目标图形对象因为用户的绘制操作而发生变化的过程中,第一设备可以获取目标图形对象在变化过程中对应的图形数据,以及,第二设备可以根据接收到的图形数据显示对应的目标图形对象,从而动态显示第一设备上目标图形对象的变化过程,保证用户的观看体验。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供一种图形同步显示方法,应用于第一设备。该方法中,用户可以在第一设备上绘制目标图形对象。第一获取目标图形对象对应的第一图形数据,并发送第一图形数据同步指令给服务器,其中,第一图形数据同步指令用于指示服务器将第一图形数据发送给第二设备。而后,第一设备接收用户对于目标图形对象的绘制操作,目标图形对象响应于绘制操作可以发生变化,并且第一设备上可以对应显示变化后的目标图形对象。然后,第一设备再获取变化后的目标图形对象对应的第二图形数据,并发送第二图形数据同步指令给服务器,其中第二图形数据同步指令用于指示服务器将第二图形数据发送第二设备。最后,第一设备接收用户对于目标图形对象的绘制结束操作,并响应于绘制结束操作,获取目标图形对象对应的第三图形数据,以及发送第三图形数据同步指令给服务器,其中,第三图形数据同步指令用于指示服务器将第三图形数据发送第二设备。
上述方法中,第一设备上的目标图形对象可以根据用户的绘制操作发生变化,第一设备在用户绘制目标图形对象的过程中,可以将目标图形对象在变化过程中的图形数据发送给服务器,服务器再将图形对象发送给第二设备,第二设备可以根据图形数据同步显示目标图形对象的变化过程,这样,第二设备端的用户可以看到第一设备上目标图形对象的变化过程,从而提升用户的观看体验。
上述方法中,目标图形对象的变化可以包括以下至少一项发生变化:目标图形对象的位置、旋转角度、大小、形状、线条颜色和填充颜色。当第一设备上的目标图形对象发生变化时,第二设备端的用户可以更加直观地看到目标图形对象是如何变化的。
在第一方面的一种可实现方式中,第一设备获取的第二图形数据和第一图形数据是不同的,并且,获取的第二图形数据与第三图形数据也是不同的,不同的图形数据对应于目标图形对象变化后的状态,从而第二设备根据不同的图形数据显示时,可以显示出不同状态的目标图形对象,进而显示出目标图形对象的变化过程。
在第一方面的一种可实现方式中,第一设备在获取变化后的目标图形对象对应的第二图形数据之后,还可以继续在用户对目标图形对象进行绘制操作的过程中,根据预设时间间隔,获取目标图形对象对应的第四图形数据,以及将第四图形数据同步指令发送给服务器。其中,第四图形数据同步指令用于指示服务器将第四图形数据发送给第二设备。这种实现方式中,通过预设时间间隔来确定第一设备在用户绘制过程中获取目标图形对象的图形数据的时机,从而保证可以在用户绘制过程中,及时地向服务器发送图形数据。
在第一方面的一种可实现方式中,第一设备可以从服务器获取预设时间间隔,并且,预设时间间隔根据服务器与第一设备之间的网络质量确定。当网络质量较差时,可以增大预设时间间隔,从而降低第一设备向服务器发送图形数据的频率,避免网络拥塞的问题。当网络质量较好时,可以减小预设时间间隔,从而提高第一设备向服务器发送图形数据的频率,使得第二设备能更多显示出第一设备上图形变化的过程。
在第一方面的一种可实现方式中,第一图形数据、第二图形数据和第三图形数据中可以分别包括目标图形对象的目标标识。从而第二设备在获取到图形数据之后,可以根据图形数据中的标识确定出第二设备上的哪一个图形对象发生了变化。
在第一方面的一种可实现方式中,第一设备在用户对目标图形对象进行绘制操作的过程中,如果网络连接中断,则不向服务器发送图形数据同步指令;以及,第一设备在网络连接恢复时刻,可以继续获取目标图形对象在当前状态下的第五图形数据,以及将第五图形数据同步指令发送给服务器。其中,第五图形数据同步指令用于指示服务器将第五图形数据发送给第二设备。这种实现方式中,网络连接中断时,第一设备不会获取发生状态变化的目标图形对象的图形数据,也不会向服务器发送图形数据。而如果网络连接中断后又恢复,那么第一设备在网络连接恢复的时刻,可以获取目标图形对象在当前状态下的图形数据,以及将当前状态下的图形数据发送给服务器。服务器将当前状态下的图形数据发送给第二设备,从而第二设备直接显示网络连接恢复时刻的目标图形对象的状态,而不会显示目标图形对象的状态变化过程,节省显示目标图形对象中间变化过程而浪费的时间,保证用户的使用、观看等体验。另外,在网络连接恢复时第一设备将目标图形对象当前的图形数据发送给服务器,也可以减少目标图形对象的中间变化过程对应的冗余数据的发送,从而减少网络连接恢复时发送的数据量,加快网络连接恢复时第二设备显示目标图形对象的过程。
在第一方面的一种可实现方式中,绘制操作包括用户通过持续触碰目标图形对象进行绘制的操作,或者用户通过鼠标的光标持续选中目标图形对象进行绘制的操作;绘制结束操作包括用户结束触碰目标图形对象或者用户释放选中目标图形对象的光标的操作。
第二方面,提供一种图形同步显示方法,应用于第二设备。该方法中,第二设备在第一时刻获取第一设备上的目标图形对象对应的第一图形数据,并根据第一图形数据显示目标图形对象。之后,在第二时刻获取目标图形对象对应的第二图形数据,并根据第二图形数据显示目标图形对象,其中,第二图形数据表示第一设备上的目标图形对象响应于用户的绘制操作发生变化后对应的图形数据。最后,在第三时刻获取目标图形对象对应的第三图形数据,并根据第三图形数据显示处于第三状态的目标图形对象,其中,第三图形数据表示第一设备上的目标图形对象在用户结束绘制操作时对应的图形数据。
上述方法中,第二设备可以在用户绘制目标图形对象过程中的不同时刻分别获取到目标图形对象对应的图形数据并显示,从同步显示第一设备上目标图形对象的变化过程,用户也可以看到第一设备上目标图形对象的变化过程,从而提升用户的观看体验。
上述方法中,目标图形对象的变化可以包括以下至少一项发生变化:目标图形对象的位置、旋转角度、大小、形状、线条颜色和填充颜色。当第一设备上的目标图形对象发生变化时,第二设备端可以对应显示目标图形对象的变化,第二设备端的用户也可以更加直观地看到目标图形对象是如何变化的。
在第二方面的一种可实现方式中,第二设备获取的第二图形数据和第一图形数据是不同的,并且,获取的第二图形数据与第三图形数据也是不同的,不同的图形数据对应于目标图形对象变化后的状态,从而第二设备根据不同的图形数据显示时,可以显示出不同状态的目标图形对象,进而显示出目标图形对象的变化过程。
在第二方面的一种可实现方式中,第二设备还可以在第四时刻获取目标图形对象对应的第四图形数据,并根据第四图形数据在显示目标图形对象。其中,第四图形数据表示第一设备根据预设时间间隔获取的目标图形对象对应的图形数据。这种实现方式中,通过预设时间间隔来确定第一设备在用户绘制过程中获取目标图形对象的图形数据的时机,也确定了第二设备接收图形数据的时机,从而保证可以在用户绘制过程中,第二设备可以及时地接收到图形数据并显示给用户。
在第二方面的一种可实现方式中,第二设备在根据第二图形数据显示目标图形对象时,可以先获取第二图形数据中的目标标识;然后在第二设备上的图形对象对应的标识中存在目标标识的情况下,删除第二设备上目标标识对应的图形对象,并根据第二图形数据重新显示目标图形对象。而如果在第二设备上的图形对象对应的标识中不存在目标标识,则第二设备根据第二图形数据直接显示目标图形对象。这种实现方式中,第二设备在获取到图形数据之后,可以根据图形数据中的标识确定出第二设备上的哪一个图形对象发生了变化。
上述第二设备只针对发生状态变化的目标图形对象进行绘制,其中绘制过程可以包括绘制之前没有过的目标图形对象,或者将原来的目标图形对象删除后重新绘制新的目标图形对象(即实现针对于目标图形对象的局部刷新),从而提高第二设备的第二电子白板上图形对象的显示性能,避免整个第二电子白板页面在图形绘制或者刷新时出现画面闪烁的情况,保证显示画面和显示内容的稳定性,提高用户的使用、观看等体验效果。
在第二方面的一种可实现方式中,第二设备还可以在第五时刻获取目标图形对象对应的第五图形数据,并根据第五图形数据显示第一设备上在网络连接中断又恢复时的目标图形对象。其中,第五时刻表示第一设备网络连接中断后又恢复的时刻,第五图形数据包括第一设备发送的在网络连接中断又恢复时的目标图形对象对应的图形数据。第一设备在网络连接中断时,不会向服务器发送图形数据,从而第二设备也不会显示此过程中变化的目标图形对象,当第一设备的网络连接恢复时,第二设备直接显示网络连接恢复时刻第一设备上的目标图形对象的状态,这样可以节省显示目标图形对象中间变化过程而浪费的时间,保证用户的使用、观看等体验。另外,在网络连接恢复时第一设备将目标图形对象当前的图形数据发送给服务器,也可以减少目标图形对象的中间变化过程对应的冗余数据的发送,从而减少网络连接恢复时发送的数据量,加快网络连接恢复时第二设备显示目标图形对象的过程。
在第二方面的一种可实现方式中,第二设备还可以在第五时刻获取目标图形对象对应的第六图形数据,并根据第六图形数据显示目标图形对象。其中,第五时刻表示第一设备网络连接中断后又恢复的时刻,以及,第六图形数据包括目标图形对象在多个第一设备上响应于多个绘制操作变化后而对应的多个图形数据以及多个图形数据按照各自对应的全局时间顺序进行排序的结果。如果多个第一设备出现网络连接中断,那么多个第一设备都不会也不会向服务器发送图形数据,网络连接恢复时,多个第一设备都会向服务器发送对应的图形数据。服务器还可以将接收到的同一个目标图形对象对应的多个图形数据进行时间排序,即,将每个第一设备上针对同一目标图形对象的绘制操作按照操作的时间进行排序。再将排序结果和接收到的多个图形数据发送给第二设备,从而第二设备可以根据图形数据和排序结果将网络连接中断时目标图形对象的变化状态依次显示出来。这样,第二设备端的用户可以在网络连接恢复时,看到完整的目标图形对象的变化过程。
在第二方面的一种可实现方式中,第二设备还可以在第五时刻获取目标图形对象对应的第七图形数据,并根据第七图形数据显示目标图形对象。其中,第五时刻表示第一设备网络连接中断后又恢复的时刻,以及,第七图形数据包括目标图形对象在多个第一设备上响应于多个绘制操作中最后一个绘制操作变化后对应的图形数据。如果多个第一设备出现网络连接中断,那么多个第一设备都不会也不会向服务器发送图形数据,网络连接恢复时,多个第一设备都会向服务器发送对应的图形数据。服务器可以将目标图形对象对应的多个图形数据进行合并,获得目标图形对象在多个第一设备上响应于多个绘制操作中最后一个绘制操作变化后对应的图形数据。之后,服务器再将最终状态对应的图形数据发送给第二设备,从而使第二设备根据该图形数据直接显示网络连接恢复之后的最终状态的目标图形对象。第二设备不会显示在网络连接中断时目标第一设备上的目标图形对象变化的过程,可以减少网络连接恢复时,第二设备端的用户的等待时长,第二设备端的用户可以快速地观看到网络连接恢复后的目标图形对象的当前状态。
第三方面,提供一种图形同步显示方法,应用于图形同步显示系统,该图形同步显示系统中包括第一设备、第二设备和服务器。该方法中,第一设备获取目标图形对象对应的第一图形数据,发送第一图形数据同步指令给服务器;服务器响应于第一图形数据同步指令,将第一图形数据发送给第二设备;第二设备接收第一图形数据,并根据第一图形数据显示目标图形对象。然后,第一设备接收用户对于目标图形对象的绘制操作,其中,目标图形对象可以响应于绘制操作发生变化,并在第一设备上显示变化后的目标图形对象;第一设备再获取变化后的目标图形对象对应的第二图形数据,发送第二图形数据同步指令给服务器;服务器响应于第二图形数据同步指令,将第二图形数据发送第二设备;第二设备接收第二图形数据,并根据第二图形数据显示目标图形对象。最后,第一设备接收用户对于目标图形对象的绘制结束操作,并响应于绘制结束操作,获取目标图形对象对应的第三图形数据,发送第三图形数据同步指令给服务器;服务器响应于第三图形数据同步指令,将第三图形数据发送第二设备;第二设备接收第三图形数据,并根据第三图形数据显示目标图形对象。
上述方法中,第一设备上的目标图形对象可以根据用户的绘制操作发生变化,第一设备在用户绘制目标图形对象的过程中,可以将目标图形对象在变化过程中的图形数据发送给服务器,服务器再将图形对象发送给第二设备,第二设备可以根据图形数据同步显示目标图形对象的变化过程,这样,第二设备端的用户可以看到第一设备上目标图形对象的变化过程,从而提升用户的观看体验。
上述方法中,目标图形对象的变化可以包括以下至少一项发生变化:目标图形对象的位置、旋转角度、大小、形状、线条颜色和填充颜色。当第一设备上的目标图形对象发生变化时,第二设备根据服务器发送的第一设备上的目标图形对象的图形数据进行显示,从而第二设备端的用户可以更加直观地看到目标图形对象是如何变化的。
在第三方面的一种可实现方式中,上述第二图形数据和第一图形数据是不同的,并且,第二图形数据与第三图形数据也是不同的,不同的图形数据对应于目标图形对象变化后的状态,从而第二设备根据不同的图形数据显示时,可以显示出不同状态的目标图形对象,进而显示出目标图形对象的变化过程。
在第三方面的一种可实现方式中,第一设备在获取变化后的目标图形对象对应的第二图形数据之后,还可以继续在用户对目标图形对象进行绘制操作的过程中,根据预设时间间隔,获取目标图形对象对应的第四图形数据,以及将第四图形数据同步指令发送给服务器。服务器响应于第四图形数据同步指令将第四图形数据发送给第二设备。第二设备接收第四图形数据,并根据第四图形数据显示目标图形对象。这种实现方式中,通过预设时间间隔来确定第一设备在用户绘制过程中获取目标图形对象的图形数据的时机,从而保证可以在用户绘制过程中,及时地向服务器发送图形数据。同时,预设时间间隔也确定了第二设备接收图形数据的时机,从而保证可以在用户绘制过程中,第二设备可以及时地接收到图形数据并显示给用户。
在第三方面的一种可实现方式中,服务器可以向第一设备发送预设时间间隔,并且,服务器根据当前的网络质量调整预设时间间隔。当网络质量较差时,可以增大预设时间间隔,从而降低第一设备向服务器发送图形数据的频率,避免网络拥塞的问题。当网络质量较好时,可以减小预设时间间隔,从而提高第一设备向服务器发送图形数据的频率,使得第二设备能更多显示出第一设备上图形变化的过程。
在第三方面的一种可实现方式中,服务器根据当前的网络质量,调整预设时间间隔时,如果服务器连接多个第一设备,那么服务器可以分别获取服务器与每个第一设备之间的网络质量。在服务器与每个第一设备之间的网络质量都满足预设条件的情况下,减小预设时间间隔;以及在服务器与每个第一设备之间的网络质量中存在不满足预设条件的网络质量的情况下,增大预设时间间隔。在另一种实现方式中,网络质量可以表示网络速度、网络带宽或网络连接情况,预设条件可以包括网络速度条件、网络带宽条件或网络连接条件。网络质量不满足预设条件时,预设时间间隔变长,从而降低第一设备向服务器发送图形数据的频率,减少网络拥塞的情况。网络质量满足预设条件时,预设时间间隔变短,可以提高第一设备向服务器发送图形数据的频率,服务器将图形数据发送给第二设备后,可以使第二设备动态的显示图形对象的变化过程。根据网络质量调整预设时间间隔,也可以使第一设备向服务器发送图形数据的频率符合当前的网络质量的要求,减少网络质量较差时,发送图形数据的频率较快的情况,从而减少网络拥塞的问题,提高第二设备显示图形对象的稳定性。
在第三方面的一种可实现方式中,第二设备在根据第二图形数据显示目标图形对象时,可以先获取第二图形数据中的目标标识;然后在第二设备上的图形对象对应的标识中存在目标标识的情况下,删除第二设备上目标标识对应的图形对象,并根据第二图形数据重新显示目标图形对象。而如果在第二设备上的图形对象对应的标识中不存在目标标识,则第二设备根据第二图形数据直接显示目标图形对象。这种实现方式中,第二设备在获取到图形数据之后,可以根据图形数据中的标识确定出第二设备上的哪一个图形对象发生了变化。
在第三方面的一种可实现方式中,服务器可以为第一设备上的绘制操作配置全局时间戳。其中,全局时间戳用于对每次的绘制操作标记对应的全局时间。配置全局时间戳后,每个第一设备均采用统一的时间标准计时,每个绘制操作都对应一个全局时间,以及每个绘制操作对应的图形对象的图形数据也对应一个全局时间。这样,如果服务器接收到多个第一设备发送的多个图形数据,就可以根据图形数据对应的全局时间确定各个图形数据对应的时间顺序(也可以看作是各个图形数据对应的绘制操作的时间顺序),然后根据图形数据对应的时间顺序,将图形数据合并(也可以看作是将绘制操作合并),并将合并后具有最终状态的图形数据发送给第二设备;或者服务器也可以将各个图形数据和时间顺序一同发送给第二设备。从而第二设备上显示的图形对象与第一设备上当前显示的图形对象是相同的,绘制的过程也是相同的,保证了不同设备端电子白板内容显示的一致性。
在第三方面的一种可实现方式中,第一设备在网络连接中断时,不会向服务器发送图形数据同步指令;以及,第一设备在网络连接恢复时刻,可以继续获取目标图形对象在当前状态下的第五图形数据,以及将第五图形数据同步指令发送给服务器。然后,服务器响应于第五图形数据同步指令将第五图形数据发送给第二设备。其中,第五时刻表示第一设备网络连接中断后又恢复的时刻,第五图形数据包括第一设备发送的在网络连接中断又恢复时的目标图形对象对应的图形数据。第一设备在网络连接中断时,不会向服务器发送图形数据,从而第二设备也不会显示此过程中变化的目标图形对象,当第一设备的网络连接恢复时,第二设备直接显示网络连接恢复时刻第一设备上的目标图形对象的状态,这样可以节省显示目标图形对象中间变化过程而浪费的时间,保证用户的使用、观看等体验。另外,在网络连接恢复时第一设备将目标图形对象当前的图形数据发送给服务器,也可以减少目标图形对象的中间变化过程对应的冗余数据的发送,从而减少网络连接恢复时发送的数据量,加快网络连接恢复时第二设备显示目标图形对象的过程。
在第三方面的一种可实现方式中,在多个第一设备发生网络连接中断时,多个第一设备都不会向服务器发送图形数据同步指令,网络连接恢复时,多个第一设备都会向服务器发送对应的图形数据同步指令。从而,服务器可以接收到多个第一设备发送的第五图形数据。然后,服务器将接收到的同一个目标图形对象对应的多个图形数据按照各自对应的全局时间顺序进行排序,并将排序结果和多个图形数据作为第六图形数据发送给第二设备。服务器将接收到的同一个目标图形对象对应的多个图形数据进行时间排序,即,将每个第一设备上针对同一目标图形对象的绘制操作按照操作的时间进行排序。从而第二设备可以根据图形数据和排序结果将网络连接中断时目标图形对象的变化状态依次显示出来。这样,第二设备端的用户可以在网络连接恢复时,看到完整的目标图形对象的变化过程。
在第三方面的一种可实现方式中,服务器在接收到多个第一设备发送的第五图形数据之后,可以将同一个目标图形对象对应的多个图形数据进行合并,获得目标图形对象在多个第一设备上响应于多个绘制操作中最后一个绘制操作变化后对应的图形数据(例如第七图形数据)。之后,服务器再将最终状态对应的图形数据发送给第二设备,从而使第二设备根据该图形数据直接显示网络连接恢复之后的最终状态的目标图形对象。第二设备不会显示在网络连接中断时第一设备上的目标图形对象变化的过程,可以减少网络连接恢复时,第二设备端的用户的等待时长,第二设备端的用户可以快速地观看到网络连接恢复后的目标图形对象的当前状态。
第四方面,提供一种电子设备,电子设备包括存储器、一个或多个处理器;存储器与处理器耦合;其中,存储器中存储有计算机程序代码,计算机程序代码包括计算机指令,当计算机指令被处理器执行时,使得电子设备执行如第一方面任一实现方式中的图形同步显示方法,或者执行如第二方面任一实现方式中的图形同步显示方法。
第五方面,提供一种计算机可读存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如第一方面任一实现方式中的图形同步显示方法,或者执行如第二方面任一实现方式中的图形同步显示方法。
第六方面,提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面任一实现方式中的图形同步显示方法,或者执行如第二方面任一实现方式中的图形同步显示方法。
可以理解地,上述提供的第四方面所述的电子设备,第五方面所述的计算机可读存储介质,第六方面所述的计算机程序产品所能达到的有益效果,可参考第一方面、第二方面或者第三方面及其任一种可能的设计方式中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例示出的一种在线教学场景的示意图;
图2为本申请实施例示出的一种图形同步显示系统的示意图;
图3为本申请实施例示出的一种电子设备的硬件结构示意图;
图4为本申请实施例示出的一种电子设备的软件结构示意图;
图5为本申请实施例示出的一种图形同步显示方法的流程示意图;
图6为本申请实施例示出的一种用户在电子白板上绘制图形的示意图;
图7为本申请实施例示出的一种第二设备同步显示图形对象的示意图;
图8为本申请实施例示出的又一种第二设备同步显示图形对象的示意图;
图9为本申请实施例示出的又一种第二设备同步显示图形对象的示意图;
图10为本申请实施例示出的又一种第二设备同步显示图形对象的示意图;
图11为本申请实施例示出的又一种第二设备同步显示图形对象的示意图;
图12为本申请实施例示出的又一种图形同步显示方法的流程示意图;
图13为本申请实施例示出的又一种图形同步显示方法的流程示意图;
图14为本申请实施例示出的又一种图形同步显示方法的流程示意图;
图15为本申请实施例示出的又一种第二设备同步显示图形对象的示意图;
图16为本申请实施例示出的又一种第二设备同步显示图形对象的示意图;
图17为本申请实施例示出的又一种图形同步显示方法的流程示意图;
图18为本申请实施例示出的又一种图形同步显示方法的流程示意图;
图19为本申请实施例示出的又一种电子设备的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。同时,在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
此外,本申请实施例描述的业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
目前,随着线上会议和在线教学等远程协作方式的普及,电子白板也越来越多地应用在远程协作等互动场景中。例如,在线上教学的场景中,老师可以在其对应的电子设备的电子白板上进行板书和图形的绘制,在学生电子设备的电子白板上可以显示老师绘制的内容,这样可以模拟在线下课堂上学生观看老师在黑板上绘制板书和图形的过程。
电子白板之间可以同步传递写画笔迹和图形数据,从而使写画内容在各个电子白板上都可以同步显示。相比屏幕共享传递视频流画面的方式,电子白板之间通常通过传递信令的方式发送写画笔记和图形数据等,这样发送的数据量更小,且电子白板上的显示效果不受不同设备分辨率的影响,也可以对绘制的内容进行留存和再度编辑。
电子白板在不同设备间同步显示写画内容的方式一般是在一个电子设备的电子白板上完成写画过程之后将全部的写画内容同步到其他电子设备的电子白板上进行显示。
以在线教学为例,如图1所示,老师在电子设备1的电子白板上将矩形a从位置A先移动到位置B,再从位置B移动到位置C。而学生在电子设备2的电子白板上看到矩形a的移动过程只是从位置A到位置C,学生并不能看到从位置A移动到位置B的中间过程。即,学生只会看到最终的矩形变化结果,并且图形变化是从上一个状态到下一个状态的跳变过程,而无法看到图形绘制和变化过程中连续平滑变换的动态过程。在老师教学过程中,特别是数学几何类教学场景中,如果学生无法观察到图形的动态变化过程,可能会让学生对几何图形的理解和学习不够透彻,同时也会降低教学效果。
为了解决上述问题,有一些电子设备可以在写画的过程中,每隔一段时间向其他电子设备发送一次写画数据。该写画数据中包括电子白板上图形的部分数据,以及用这个图形的某一部分的坐标点集合数据来表示部分数据。从而其他电子设备每隔一段时间获取到写画数据,并在其他电子设备的电子白板上可以根据写画数据动态显示写画轨迹。
结合上述内容可知,当前常用的电子白板绘制内容的同步方法中,多是将写画的轨迹动态显示,电子设备之间发送的轨迹数据也都是线段或者轨迹的坐标点集合数据。这些同步方法并不能动态显示几何图形的绘制和变化过程,适用范围不够广泛,有一定的局限性。并且这些同步方法中动态显示的效果很容易受到网络质量的影响,显示内容的稳定性也比较差。
基于上述内容,本申请实施例提供了一种图形同步显示方法。其中,用户可以在第一设备上进行图形的绘制,并且图形会根据用户的绘制操作发生变化。在绘制的过程中,第一设备会获取图形在变化过程中的图形数据,并将其发送给服务器,从而通过服务器将该图形数据发送给第二设备。第二设备可以根据第一设备上图形在变化时对应的不同图形数据将图形对象的变化过程显示出来。从而使第二设备对应的用户可以同步地观看到第一电子白板上图形的绘制或者状态变化的动态过程。
其中,图形根据用户的操作发生的变化可以包括位置、旋转角度、大小、形状、线条颜色和填充颜色等状态发生的变化。
另外,第一设备在图形变化的过程,还可以根据预设时间间隔来获取图形对应的图形数据。服务器可以根据当前的网络质量等调整预设时间间隔,从而使第一设备向服务器发送图形数据的频率符合当前的网络质量的要求,避免网络质量较差时,发送图形数据的频率较快,而导致的网络拥塞的问题。第一设备可以通过向服务器发送发生变化的图形数据(例如特征数据)等,而无需向服务器发送图形的坐标集合数据。第二设备可以根据图形数据显示图形,根据图形数据可以具体显示出图形的大小、形状、颜色、位置、旋转角度等,从而用户在第二设备上可以更加清楚地了解到图形的绘制过程或者图形状态变化的情况。并且,第一设备只将发生变化的图形数据发送出去,第二设备也会针对于发生变化的图形利用对应图形数据进行图形更新或者刷新等,而针对于未发生变化的图形则不会进行图形更新或者刷新等,从而大大降低图形数据的传输量和处理量,加快第二设备上图形的显示速度,减少了第二设备上显示图形延迟的情况。
上述图形同步显示方法可以应用于图形同步显示系统中。参见图2,图形同步显示系统可以包括处于同一个互动场景或者处于同一个远程协作场景的至少一个第一设备101、服务器200和至少一个第二设备102。其中,第一设备101和第二设备102之间通过服务器200进行通信,并且多个第一设备101之间、多个第二设备102之间也可以通过服务器200进行通信。第一设备101和第二设备102都可以提供电子白板功能。处于同一个互动场景或者处于同一个远程协作场景中的第一设备101和第二设备102上均显示同一个电子白板的画面,示例性的,第一设备上显示电子白板1,对应的第二设备上也对应显示电子白板1。
以上述图形同步显示系统中有一个第一设备101、一个服务器200和多个第二设备102为例。当用户在第一设备101的第一电子白板上绘制图形时,第一设备会响应于用户的绘制操作,在第一电子白板上显示出对应的图形,以及显示出图形的变化过程,在图形变化的过程中,第一设备101会获取第一电子白板上当前的图形数据,并将其发送给服务器200。服务器200再将图形数据发送给多个第二设备102。每个第二设备102根据图形数据在各自对应的第二电子白板上显示具体的图形状态,图形状态对应有显示位置、旋转角度、尺寸大小、形状、填充颜色、线条颜色等属性信息。并且,第二电子白板上当前显示的图形的属性信息相比于前一次显示的图形的属性信息可能发生变化,例如,显示位置发生变化、旋转角度发生变化、尺寸大小发生变化、填充颜色发生变化、线条颜色发生变化等。从而每个第二设备102对应的用户都可以在第二电子白板上观看到第一设备101上第一电子白板上图形的变化过程。
第一设备101在图形变化的过程,可以根据预设时间间隔来获取对应的图形数据。服务器200可以在网络质量较差时,增大预设时间间隔;或者在网络质量较好时,减小预设时间间隔等。并将调整后的预设时间间隔发送给第一设备101,从而第一设备101根据调整后的预设时间间隔向服务器200发送图形数据的频率符合当前的网络质量的要求,减少因为发送图形数据的频率与当前网络质量不匹配而导致的网络拥塞的问题。
当第一设备101断网后又恢复网络连接时,第一设备101可以将网络恢复时第一电子白板上的图形数据发送给服务器200,而不会将网络中断期间的图形数据发送给服务器200。从而可以减少数据传输量,加快网络恢复时第二电子白板上图形的显示过程。
当多个用户分别在各自对应的第一设备101的第一电子白板上对同一个图形进行绘制或者改变状态时,服务器200可以根据用户在不同第一设备101上的操作时间,将针对于同一个图形的操作进行合并,并将合并后最终的图形数据发送给多个第二设备102。从而所有的第二设备102可以显示相同的图形内容和图形状态,保证多个第二设备102显示图形的一致性和同步性。
上述第一设备101和第二设备102均为包括电子白板的且具有数据处理功能的电子设备100,例如手机、平板电脑、笔记本电脑、个人电脑、投影仪等。在一些实施例中,上述第一设备101可以作为第二设备102使用,第二设备102也可以作为第一设备101使用。并且,在另一些实施例中,多个第一设备101中的某个第一电设备上第一电子白板的图形也可以同步显示在其他第一设备的第一电子白板上。以及,多个用户在各自对应的第一设备上都可以针对于同一个电子白板上的图形进行绘制。
上述电子白板可以是电子设备100向用户提供的功能,也可以是电子设备100在安装包括电子白板的应用软件后向用户提供的功能。其中,包括电子白板的应用软件可以是支持多人互动、远程协作等场景的会议应用、教学应用等。以及,上述图形是指平面的线条、三角形、矩形、多边形等几何图形。图形的绘制包括在电子白板上新增图形和针对于已经存在的图形,改变其状态等。
以上述电子设备100为手机为例,图3示出了一种电子设备100的硬件结构示意图。
电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriberidentification module,SIM)卡接口195等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。电源管理模块141用于连接电池142,充电管理模块140与处理器110。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。
无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,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),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
示例性的,当电子设备100是前述第一设备或者第二设备时,显示屏194上可以显示电子白板,并显示用户在电子白板上绘制的图形以及显示改变图形状态的过程等。另外,显示屏194上还可以显示鼠标的光标等,用户可以通过控制光标选中图形进行绘制,或者选中工具绘制图形等。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。摄像头193用于捕获静态图像或视频。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。
示例性的,当电子设备100是前述第一设备时,处理器110可以通过运行存储在内部存储器121的指令,响应于用户的绘制操作,在第一电子白板上显示对应的图形,并且获取图形对应的图形数据,以及将当前的图形数据发送给服务器。当电子设备100是前述第二设备时,处理器110可以通过运行存储在内部存储器121的指令,接收服务器发送的第一设备上第一电子白板的图形数据,根据该图形数据在第二设备上第二电子白板上绘制对应的图形,从而在第二电子白板上动态显示与第一电子白板上的图形以及图形的变化情况。
内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备100可以通过音频模块170,以及应用处理器等实现音频功能。例如音乐播放,录音等。音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口195用于连接SIM卡。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。
结合图3所示的电子设备100实现本申请上述实施例中的图形同步显示方法时,用户可以在第一设备的第一电子白板上绘制图形等。相应的,第一设备的处理器110可以通过运行存储在内部存储器121的指令,响应于用户的绘制操作显示对应的图形,针对用户绘制的图形等生成对应的图形数据,在用户绘制的过程中(即图形变化的过程中)获取图形数据,再将到图形数据发送给服务器。服务器将图形数据发送给多个第二设备。每个第二设备的处理器110,可以通过运行存储在内部存储器121的指令,处理接收到的图形数据,并在各自的第二电子白板上显示当前的图形等。这样,第二设备对应的用户就可以在第二设备的第二电子白板上看到其他用户在第一电子白板上绘制的图形以及图形变化的过程。
当第一设备断网时,第一设备的处理器110可以通过运行存储在内部存储器121的指令,在断网的这段时间内,响应于用户的绘制操作,在第一电子白板上显示绘制的图形。在网络恢复时,将恢复时刻的图形数据发送给服务器。服务器再将图形数据发送给第二设备。这样可以减少图形数据的传输量,加快网络恢复时第二电子白板上图形的显示过程。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
以上述电子设备100为手机为例,图4示出了一种电子设备100的软件结构示意图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android Runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图4所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
示例性的,当电子设备100是前述第一设备或者第二设备时,应用程序包还可以包括图形数据采样模块、图形数据发送模块、图形数据接收模块和图形数据绘制模块等。
其中,图形数据采样模块用于监听图形绘制和变化的过程,按一定时间间隔采样完整的图形数据快照(例如电子白板的画布上的图形数据),其中包括图形的边框颜色、线条粗细、填充颜色、形状、图形中某些定点坐标,长宽尺寸,旋转角度等数据。在采样后将这些数据发送给图形数据发送模块。
图形数据发送模块用于将采样的图形数据发送到服务器。
图形数据接收模块用于接收服务器发送的其他电子设备的图形数据采样模块采样的图形数据,并将该图形数据发送给图形数据绘制模块。
图形数据绘制模块用于根据其他电子设备发送的图形数据,完成对图形绘制,并且图形绘制过程中可以显示动态变化的效果。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图4所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android Runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
结合图4所示的电子设备100实现本申请上述实施例中的图形同步显示方法时,用户可以在第一设备的第一电子白板上绘制图形。相应的,第一设备的图形数据采样模块采样用户绘制的图形对应的图形数据,或者按照预设时间间隔进行采样。采样后,再将到图形数据发送给图形数据发送模块,以通过图形数据发送模式将图形数据发送给服务器。服务器将接收到第一设备上的图形数据发送给第二设备。第二设备上的图形数据接收模块接收图形数据,并将图形数据发送给图形数据绘制模块。图形数据绘制模块根据图形数据在第二设备的第二电子白板上绘制对应的图形,进而表示出与第一设备上的图形相对应的图形状态。这样,第二设备对应的用户就可以在第二设备的第二电子白板上看到其他用户在第一电子白板上绘制的图形以及图形变化的过程等。
当第一设备断网又恢复网络连接时,第一设备的图形数据发送模块仅将恢复时刻的图形数据发送给服务器。服务器再将图形数据发送给第二设备。第二设备上的图形数据绘制模块再根据图形数据在第二电子白板上绘制对应的图形。这样可以减少图形数据的传输量,加快网络恢复时第二电子白板上图形的显示过程。
以下以第一设备和第二设备均为手机为例,对本申请实施例中的图形同步显示方法进行说明。参见图5,该方法可以包括如下步骤S501-S504。
S501、用户在第一设备上绘制图形。
其中,用户可以在第一设备的第一电子白板上绘制图形。第一设备可以为用户提供电子白板功能并在显示页面上为用户显示第一电子白板;或者,第一设备也可以安装具有电子白板功能的会议应用、教学应用等应用软件,当这些应用软件在第一设备上运行或者启动时,第一设备可以在应用软件的显示页面上为用户显示第一电子白板;或者,第一设备上也可以安装提供电子白板的白板应用等,当白板应用在第一设备上运行或者启动时,第一设备可以为用户显示第一电子白板。
在一些实施例中,电子白板也可以称为电子画布、白板、白板屏幕等。本申请实施例中以电子白板为例对图形同步显示方法进行说明。第一设备提供的电子白板称为第一电子白板。第二设备提供的电子白板称为第二电子白板。
在一些实施例中,用户在第一电子白板上可以绘制多个图形,其中,图形也可以称为图形对象。为了便于区分每个图形对象,第一设备还可以针对于用户绘制的每个图形对象配置对应的唯一标识(identity,ID)。示例性的,参见图6,用户在第一设备的电子白板1上绘制了三角形,矩形、椭圆形和直线。第一设备可以分别为三角形配置唯一标识A1,为矩形配置唯一标识A2,为椭圆形配置唯一标识A3,为直线配置唯一的标识A4。
S502、第一设备响应于用户的绘制操作,在第一设备上显示用户绘制的图形对象,并且在绘制操作的过程中,获取第一设备上发生状态变化的图形对象对应的图形数据,以及将图形数据发送给服务器。
其中,第一设备可以在第一电子白板上显示用户绘制的图形对象。用户在第一电子白板上绘制的每个图形对象都有对应的图形数据,当图形状态发生变化时,对应的图形数据也会发生变化。例如,响应于用户的绘制操作,图形对象从第一状态变为第二状态,那么图形对应在第一状态下对应第一图形数据,而在第二状态下对应第二图形数据。
在一些实施例中,第一设备可以每隔预设时间间隔获取一次发生变化的图形对象对应的图形数据,以及将图形数据发送给服务器。
在一些实施例中,图形对象对应的图形数据可以与图形对象的唯一标识相关联。在另一些实施例中,图形对象对应的图形数据中还可以包括图形对象的唯一标识。
在一些实施例中,可以采用预设标准来表示图形对象的图形数据。其中,预设标准可以是可缩放矢量图形(scalable vector graphics,SVG)标准。其中,SVG标准是一种基于可扩展标记语言的用于描述二维矢量图形的一种表示方式。
示例性的,仍以上述图6为例,在图6所示的电子白板1中,以电子白板1左上角为原点坐标,坐标原点向右侧的水平方向为X轴正向,坐标原点向下的竖直方向为Y轴正向。
用户在电子白板上画出多边形时,多边形对应的图形数据通常以路径的方式表示。第一设备可以在画出多边形的过程中,每隔预设时间间隔获取一次多边形当前绘制状态下对应的图形数据,而后再将获取到的图形数据发送给服务器。
以图7中的标识为A1的三角形为例,用户在电子白板上可以改变三角形的形状。
改变形状的过程中,三角形在第一时刻处于第一状态,第一设备在第一时刻获取到的三角形在第一状态对应的第一图形数据可以表示为:
<path id="A1"
d="M 375,386;L 42,-105;L 42,105;L-84,0;z"
stroke="#000"
fill="#00ff00"/>。
其中,path表示路径;id表示标识A1,即表示电子白板1上的三角形;stroke表示边框颜色,stroke对应的值"#000"表示边框颜色为黑色;fill表示填充颜色,fill对应的值"#00ff00"表示填充颜色为绿色。
d表示绘制三角形的具体路径,d中的M表示移动的动作,d中的L表示画线的动作;“M 375,386”表示绘制开始时先将光标或者画笔等移动到坐标为(375,386)的点(即图7中三角线左下角的顶点);“L 42,-105”表示从坐标点(375,386)开始画线,画线的终点相对于坐标点(375,386)而言,向X轴正向移动42个增量,向Y轴负向移动105个增量,即画线的终点坐标为(417,281);“L42,105”表示从坐标点(417,281)开始画线,画线的终点相对于坐标点(417,281)而言,向X轴正向移动42个增量,向Y轴正向移动105个增量,即画线的终点坐标为(459,386);“L-84,0”表示从坐标点(459,386)开始画线,画线的终点相对于坐标点(459,386)而言,向X轴负向移动84个增量,并且纵坐标不变,画线的终点坐标为(375,386),即又画回到图6中三角形左下角的定点,从而完成一个闭合三角形的绘制。z表示绘制结束,或者绘制过程关闭等。
在经过预设时间间隔后,三角形在第二时刻处于第二状态,此时第一设备在第二时刻获取到的三角形在第二状态对应的第二图形数据可以表示为:
<path id="A1"
d="M 375,386;L 42,-105;L 126,210;L-168,-105;z"
stroke="#000"
fill="#00ff00"/>。
“M 375,386”表示绘制开始时先将光标或者画笔等移动到坐标为(375,386)的点(即图6中三角线左下角的顶点);“L 42,-105”表示从坐标点(375,386)开始画线,画线的终点坐标为(417,281);“L 126,210”表示从坐标点(417,281)开始画线,画线的终点坐标为画线的终点相对于坐标点(417,281)而言,向X轴正向移动126个增量,向Y轴正向移动210个增量,即画线的终点坐标为(543,491);“L-168,-105”表示从坐标点(543,491)开始画线,画线的终点相对于坐标点(543,491)而言,向X轴负向移动168个增量,向Y轴负向移动105个增量,即画线的终点坐标为(375,386),从而完成一个闭合三角形的绘制。
此时,第二图形数据表示第二状态的三角形相比于第一状态的三角形发生形变,以及,第一状态的三角形的坐标点(459,386)变为第二状态的三角形的坐标点(543,491)。
再次经过预设时间间隔后,三角形在第三时刻处于第三状态,此时第一设备在第三时刻还可以获取到的三角形在第三状态对应的第三图形数据。
或者,第三时刻也可能是绘制操作结束时刻,三角形在绘制操作结束时处于第三状态,此时第一设备也可以获取三角形对应的第三图形数据。例如,第三数据可以表示第三状态的三角形相比于第二状态的三角形再次发生形变,以及,第二状态的三角形的坐标点(543,491)变为第三状态的三角形的坐标点(600,500)。
在电子白板上改变图形状态时,图形对应的图形数据中通常包括表示旋转角度的数据。第一设备可以在图形状态变化的过程中,每隔预设时间间隔获取一次图形当前绘制状态下对应的图形数据,而后再将获取到的图形数据发送给服务器。
以图8中的标识为A2的矩形为例,用户在电子白板上可以将矩形进行旋转。
在旋转的过程中,矩形在第一时刻处于第一状态,第一设备在第一时刻获取到的矩形在第一状态对应的第一图形数据可以表示为:
<rect id="A2"
transform="rotate(37 224 168)"
fill="#bf0000"stroke="#000"
x="167"y="131"width="115"height="74"/>。
其中,rect表示矩形;id表示标识A2,即表示电子白板1上的矩形;stroke表示边框颜色,stroke对应的值"#000"表示边框颜色为黑色;fill表示填充颜色,fill对应的值"#bf0000"表示填充颜色为红色。
transform表示对于矩形的变形或者改变的过程,transform中的rotate表示将矩形旋转,"rotate(37 224 168)"表示将矩形围绕坐标点(224,168)旋转37°。
x="167",y="131"表示矩形的左上角坐标为(167,131)。
width表示宽度,width对应的值"115"表示矩形宽度为115;height表示高度,height对应的值"74"表示矩形的高度为74。
在经过预设时间间隔后,矩形在第二时刻处于第二状态,此时第一设备在第二时刻获取到的矩形在第二状态对应的第二图形数据可以表示为:
<rect id="A2"
transform="rotate(60 224 168)"
fill="#bf0000"stroke="#000"
x="167"y="131"width="115"height="74"/>。
其中,"rotate(60 224 168)"表示将矩形围绕坐标点(224,168)旋转60°。
第二状态的矩形的旋转角度相比于第一状态的矩形的旋转角度发生变化。
再次经过预设时间间隔后,矩形在第三时刻处于第三状态,此时第一设备在第三时刻还可以获取到的矩形在第三状态对应的第三图形数据。或者,第三时刻也可能是绘制操作结束时刻,矩形在绘制操作结束时处于第三状态,此时第一设备也可以获取矩形对应的第三图形数据。
其中,第三图形数据可以表示为:
<rect id="A2"
transform="rotate(90 224 168)"
fill="#bf0000"stroke="#000"
x="167"y="131"width="115"height="74"/>。
其中,"rotate(90 224 168)"表示将矩形围绕坐标点(224,168)旋转90°。
第三状态的矩形的旋转角度相比于第一状态和第二状态的矩形而言,旋转角度发生变化。
在电子白板上改变图形状态时,图形对应的图形数据中通常包括表示图形尺寸的数据。第一设备可以在图形状态变化的过程中,每隔预设时间间隔获取一次图形当前绘制状态下对应的图形数据,而后再将获取到的图形数据发送给服务器。
以图9中的标识为A3的椭圆形为例,用户在电子白板上可以将椭圆形进行缩放。
在缩放的过程中,椭圆形在第一时刻处于第一状态,第一设备在第一时刻获取到的椭圆形在第一状态对应的第一图形数据可以表示为:
<ellipse id="A3"
ry="31"rx="97"cy="178"cx="520"stroke="#000"fill="#007fff"/>。
其中,ellipse表示椭圆形;id表示标识A3,即表示电子白板1上的椭圆形;stroke表示边框颜色,stroke对应的值"#000"表示边框颜色为黑色;fill表示填充颜色,fill对应的值"#007fff"表示填充颜色为蓝色。
cx="520",cy="178"表示椭圆形的圆心坐标为(520,178);ry="31"和rx="97"分别表示椭圆形的短半径为31,长半径为97。
在经过预设时间间隔后,椭圆形在第二时刻处于第二状态,此时第一设备在第二时刻获取到的椭圆形在第二状态对应的第二图形数据可以表示为:
<ellipse id="A3"
ry="40"rx="120"cy="178"cx="520"stroke="#000"fill="#007fff"/>。
其中,ry="40"rx="120"分别表示椭圆形的短半径为40,长半径为120。
第二状态的椭圆形的尺寸相比于第一状态的椭圆形的尺寸发生变化,第二状态的椭圆形变大。
再次经过预设时间间隔后,椭圆形在第三时刻处于第三状态,此时第一设备在第三时刻还可以获取到的椭圆形在第三状态对应的第三图形数据。
或者,第三时刻也可能是绘制操作结束时刻,椭圆形在绘制操作结束时处于第三状态,此时第一设备也可以获取椭圆形对应的第三图形数据。例如,第三数据可以表示第三状态的椭圆形相比于第二状态的椭圆形再次发生尺寸变化,长、短半径都变得更长。
在电子白板上改变图形状态时,图形对应的图形数据中通常包括表示图形位置的数据。第一设备可以在图形状态变化的过程中,每隔预设时间间隔获取一次图形当前绘制状态下对应的图形数据,而后再将获取到的图形数据发送给服务器。
以图10的标识为A4的直线为例,用户在电子白板上可以将直线进行移动。
在移动的过程中,直线在第一时刻处于第一状态,第一设备在第一时刻获取到的直线在第一状态对应的第一图形数据可以表示为:
<line id="A4"
y2="259"x2="344"y1="309"x1="143"stroke="#000"fill="none"/>。
其中,line表示直线;id表示标识A4,即表示电子白板1上的直线;stroke表示线条颜色,stroke对应的值"#000"表示线条颜色为黑色;fill表示填充颜色,fill对应的值"none"表示无填充颜色。
x2="344",y2="259"表示直线一端的端点坐标(344,259);x1="143",y1="309"表示直线另一端的端点坐标(143,309)。通过两点即可以确定一条直线。
在经过预设时间间隔后,直线在第二时刻处于第二状态,此时第一设备在第二时刻获取到的直线在第二状态对应的第二图形数据可以表示为:
<line id="A4"
y2="239"x2="344"y1="289"x1="143"stroke="#000"fill="none"/>。
其中,x2="344",y2="239"表示直线一端的端点坐标(344,239);x1="143",y1="289"表示直线另一端的端点坐标(143,289)。通过两点即可以确定一条直线。
第二状态的直线的位置相比于第一状态的直线的位置发生变化,第二状态的直线处于电子白板上更加靠近上端的位置。
再次经过预设时间间隔后,直线在第三时刻处于第三状态,此时第一设备在第三时刻还可以获取到的直线在第三状态对应的第三图形数据。或者,第三时刻也可能是绘制操作结束时刻,直线在绘制操作结束时处于第三状态,此时第一设备也可以获取直线对应的第三图形数据。
其中,第三图形数据可以表示为:
<line id="A4"
y2="219"x2="344"y1="269"x1="143"stroke="#000"fill="none"/>。
其中,x2="344",y2="219"表示直线一端的端点坐标(344,219);x1="143",y1="269"表示直线另一端的端点坐标(143,269)。通过两点即可以确定一条直线。
第三状态的直线的位置相比于第二状态的直线而言更加靠近电子白板的上端。
以图11的标识为a1的直线为例,用户在电子白板上可以对直线进行擦除。
直线在第一时刻处于第一状态,第一设备在第一时刻获取到的直线a1在第一状态对应的第一图形数据可以表示为:
<line id="a1"
y2="200"x2="900"y1="200"x1="100"stroke="#000"fill="none"/>。
上述数据表示a1为一条从坐标点(100,200)到坐标点(900,200)的黑色直线。
用户擦除直线a1的部分线条,在经过预设时间间隔后,直线a1在第二时刻处于第二状态,此时第一设备在第二时刻获取到的直线a1在第二状态对应的第二图形数据可以表示为:
<line id="a1"
y6="200"x6="900"y5="200"x5="800";y4="200"x4="700"y1="200"x1="100"stroke="#000"fill="none"/>。
上述数据表示a1包括一条从坐标点(100,200)到坐标点(700,200)的黑色直线和一条从坐标点(800,200)到坐标点(900,200)的黑色直线。
用户继续擦除直线a1的部分线条,再次经过预设时间间隔后,直线a1在第三时刻处于第三状态,此时第一设备在第三时刻还可以获取到的直线a1在第三状态对应的第三图形数据。或者,第三时刻也可能是绘制操作结束时刻,直线a1在绘制操作结束时处于第三状态,此时第一设备也可以获取直线a1对应的第三图形数据。
其中,第三图形数据可以表示为:
<line id="a1"
y6="200"x6="900"y5="200"x5="800";y4="200"x4="700"y3="200"x3="600";y2="200"x2="500"y1="200"x1="100"stroke="#000"fill="none"/>。
上述数据表示a1包括一条从坐标点(100,200)到坐标点(500,200)的黑色直线、一条从坐标点(600,200)到坐标点(700,200)的黑色直线和一条从坐标点(800,200)到坐标点(900,200)的黑色直线。
由于第一设备是每隔预设时间间隔就会获取一次图形对象的图形数据,因此如果用户对于某个图形对象的绘制操作时间较长,那么第一设备会在绘制过程中获取到多个图形数据,并不限于上述的第一图形数据、第二图形数据和第三图形数据,还可以包括在第四时刻获取的第四图形数据或者在其他时刻获取的更多的图形数据等,本申请实施例中仅以第一图形数据、第二图形数据和第三图形数据进行示例性说明。
上述实施例中,三角形的绘画、矩形的旋转、椭圆形的缩放、直线的移动等,都是不同图形状态变化的一些示例。在其他一些实施例中,三角形也可以包括旋转、缩放、移动等变化,矩形也可以包括绘画、缩放、移动等变化,椭圆形也可以包括绘画、旋转、移动等变化,直线也可以包括绘画、旋转、缩放等变化。本申请实施例中不做具体限定。
以及,图形状态的变化也可以包括线条颜色的变化、填充颜色的变化等。上述三角形、矩形、椭圆形、直线等图形对象都可以在绘制过程中被改变线条颜色,或者被改变填充颜色等。例如处于第一状态时,图形对象对应的线条颜色为黑色,到达预设时间间隔时,用户将图形对象的线条颜色变为红色,使图形对象处于第二状态,这种情况下,第一设备向服务器发送的第一图形数据和第二图形数据中表示线条颜色的数据并不相同;再或者,处于第一状态时,图形对象对应的填充颜色为红色,到达预设时间间隔时,用户将图形对象的填充颜色变为蓝色,使图形对象处于第二状态,这种情况下,第一设备向服务器发送的第一图形数据和第二图形数据中表示填充颜色的数据并不相同。
上述实施例中,可以将图形数据使用SVG标准进行表示,这样的表示方式可以适用于多种图形对象,从而本申请实施例中的图形同步显示方法不仅仅局限于轨迹、线条等图形对象的显示。并且,采用这样的表示方式,图形对象对应的图形数据中可以包括多种信息来表示图形对象的状态,而不仅仅包括坐标信息,从而使本申请实施例中的图形同步显示方法也可以适用于图形对象的不同状态的显示。
在其他一些实施例中,预设标准也可以是其他的标准或者方式,比如,自定义格式的JSON对象数据等。本申请实施例对此不做具体限制。
第一设备可以按照设备原始的采样率获取到第一电子白板上图形对象的图形数据,并且设备原始的采样率通常都很高,例如1000DPI(dots per inch,每英寸点数)等。但是,在图形对象的绘制过程中,对于人眼的感知能力而言,大量的中间数据都是冗余的,因此即便中间某些图形数据不发送也不影响第二设备上图形对象的显示。如果把图形对象的状态按照原始设备的采样率原封不动地通过服务器发送给所有电子设备,可能会造成网络拥塞的情况,反而影响用户的使用、观看等体验。
基于此,在一些实施例中,第一设备可以根据预先设置的预设时间间隔对状态发生变化的图形对象对应的图形数据进行采样获取。
示例性的,第一设备在时刻t1获取电子白板1上标识分别为A1、A2、A3、A4的图形对象的图形数据,如果预设时间间隔为Δt,在t1+Δt的这段时间内只有标识为A2的矩形的旋转角度发生了变化,例如从t1时刻围绕坐标点(224,168)旋转37°变化为t1+Δt时刻围绕坐标点(224,168)旋转60°,那么第一设备在t1+Δt时刻可以只获取电子白板1上标识为A2的矩形对应的图形数据,此时标识A2可看作是目标标识,矩形可以看作是目标图形对象。
本申请实施例中,图形对象发生的变化可以表示图形对象的图形状态发生变化,例如图形对象的位置、旋转角度、填充颜色、线条颜色、大小、形状等发生变化。并且,第一设备可以响应于用户在第一电子白板上的绘制操作,对相应的图形对象进行绘制或者进行图形状态的更改、修改等。
依据人眼的视觉暂留现象,在一些实施例中,预设时间间隔可以设置为50ms(毫秒)、100ms等,即第一设备可以每隔50ms或者100ms获取一次第一电子白板上状态发生变化的图形对象对应的图形数据。或者,也可以将预设时间间隔设置为其他的数值,本申请实施例中对此不做具体限制。
在一些实施例中,第一设备在获取上述图形数据之前,还可以监听第一电子白板上各个图形对象的变化事件。如果监听到目标图形对象的变化事件,则第一设备在预设时间间隔达到时,获取到目标图形对象对应的图形数据。
示例性的,在t1时刻,第一设备已经将前一个预设时间间隔内的图形数据发送给服务器。在t1时刻之后,如果第一设备监听到三角形相对于t1时刻的状态发生了变化,那么在t1+Δt时刻,第一设备会获取三角形当前对应的图形数据。
或者,在t1时刻之后,如果第一设备监听到矩形和椭圆形相对于t1时刻的状态均发生了变化,那么在t1+Δt时刻,第一设备会获取矩形和椭圆形当前分别对应的图形数据。
第一设备在达到预设时间间隔时获得到第一电子白板上状态发生变化的图形对象对应的图形数据之后,可以将图形数据发送给服务器,也可以理解为,第一设备将状态发生变化的图形对象在预设时间间隔对应的时间点处的图形状态发送给服务器。以及,第一设备向服务器发送的图形数据中可以包括图形对象对应的标识,或者第一设备将图形数据与图形对象对应的标识相关联后,再将图形数据发送给服务器。
S503、服务器接收第一设备发送的图形数据,以及将图形数据发送给第二设备。
第一设备将第一电子白板上状态发生变化的图形对象对应的图形数据发送给服务器,同样的,服务器也会将第一电子白板上状态发生变化的图形对象对应的图形数据转发给第二设备,以便第二设备同步显示第一电子白板上的图形对象。
示例性的,第一电子白板上状态发生变化的目标图形对象从第一状态变化为第二状态。在目标图形对象处于第一状态时,第一设备会将图形对象在第一状态下的第一图形数据发送给服务器;在目标图形对象处于第二状态时,第一设备会将图形对象在第二状态下的第二图形数据发送给服务器。并且,服务器也会将第一图形数据和第二图形数据发送给第二设备,以便第二设备先根据第一图形数据显示第一状态的目标图形对象,再根据第二图形数据显示第二状态的目标图形对象,从而同步显示第一电子白板上的目标图形对象的状态变化过程。
在一些实施例中,在同一个互动场景中显示第一电子白板内容的第二设备可以有多个,即服务器在接收到第一设备发送的图形数据之后,可以向多个第二设备发送。以及,服务器也可以通过广播的方式向第二设备发送图形数据。
在一些实施例中,第一设备获取到图形对象对应的图形数据后,可以向服务器发送图形数据同步指令,从而使服务器将第一设备获取到的图形数据发送给第二设备。其中,图形数据同步指令与图形数据一一对应,例如,第一图形数据对应第一图形数据同步指令、第二图形数据对应第二图形数据同步指令、第三图形数据对应第三图形数据同步指令等。
S504、第二设备接收服务器发送的图形数据,以及根据图形数据显示对应的图形。
其中,第二设备可以在第二电子白板上显示图形数据对应的图形。
示例性的,图形数据可以包括第一电子白板上状态发生变化的目标图形对象处于第一状态时的第一图形数据,和目标图形对象响应于用户的绘制操作变化为第二状态时的第二图形数据。第二设备根据第一图形数据可以在第二电子白板上显示处于第一状态的目标图形对象,第二设备根据第二图形数据可以在第二电子白板上显示处于第二状态的目标图形对象。
以上述实施例中的获取到的标识为A1的三角形为例,参见图7,用户在设备1的电子白板上改变三角形形状的过程中,设备1先将三角形处于第一状态时对应的第一图形数据发送给服务器,由服务器再将第一图形数据发给设备2,从而设备2根据第一图形数据在电子白板上显示第一状态的三角形。其中,设备1可以在t1时刻发送第一图形数据,设备2可以在t1+Δs时刻显示第一状态的三角形,其中Δs表示数据传输和处理的时延等。并且,t1时刻可以表示上述第一时刻。
用户在设备1的电子白板上继续改变三角形的形状,经过预设时间间隔Δt之后,三角形处于第二状态,设备1再将三角形处于第二状态时对应的第二图形数据发送给服务器,由服务器再将第二图形数据发给设备2,从而设备2根据第二图形数据在电子白板上显示第二状态的三角形。其中,设备1可以在t1+Δt时刻发送第二图形数据,设备2可以在t1+Δt+Δs时刻显示第二状态的三角形。并且,t1+Δt时刻可以表示上述第二时刻。
用户在设备1的电子白板上结束改变三角形形状的操作时,三角形处于第三状态,设备1再将三角形处于第三状态时对应的第三图形数据发送给服务器,由服务器再将第三图形数据发给设备2,从而设备2根据第三图形数据在电子白板上显示第三状态的三角形。其中,设备1可以在t2时刻发送第三图形数据,设备2可以在t2+Δs时刻显示第三状态的三角形。这样,用户在设备1的电子白板上改变三角形形状的过程,可以同步显示在设备2的电子白板上。并且,t2时刻可以表示上述第三时刻。
以上述实施例中的获取到的标识为A2的矩形为例,参见图8,用户在设备1的电子白板上旋转矩形的过程中,设备1先将矩形处于第一状态时对应的第一图形数据发送给服务器,由服务器再将第一图形数据发给设备2,从而设备2根据第一图形数据在电子白板上显示第一状态的矩形。用户在设备1的电子白板上继续旋转矩形,经过预设时间间隔Δt之后,矩形处于第二状态,设备1再将矩形处于第二状态时对应的第二图形数据发送给服务器,由服务器再将第二图形数据发给设备2,从而设备2根据第二图形数据在电子白板上显示第二状态的矩形。用户在设备1的电子白板上结束旋转矩形的操作时,矩形处于第三状态,设备1再将矩形处于第三状态时对应的第三图形数据发送给服务器,由服务器再将第三图形数据发给设备2,从而设备2根据第三图形数据在电子白板上显示第三状态的矩形。这样,用户在设备1的电子白板上旋转矩形的过程,可以同步显示在设备2的电子白板上。
以上述实施例中的获取到的标识为A3的椭圆形为例,参见图9,用户在设备1的电子白板上缩放椭圆形的过程中,设备1先将椭圆形处于第一状态时对应的第一图形数据发送给服务器,由服务器再将第一图形数据发给设备2,从而设备2根据第一图形数据在电子白板上显示第一状态的椭圆形。用户在设备1的电子白板上继续缩放椭圆形,经过预设时间间隔Δt之后,椭圆形处于第二状态,设备1再将椭圆形处于第二状态时对应的第二图形数据发送给服务器,由服务器再将第二图形数据发给设备2,从而设备2根据第二图形数据在电子白板上显示第二状态的椭圆形。用户在设备1的电子白板上结束缩放椭圆形的操作时,椭圆形处于第三状态,设备1再将椭圆形处于第三状态时对应的第三图形数据发送给服务器,由服务器再将第三图形数据发给设备2,从而设备2根据第三图形数据在电子白板上显示第三状态的椭圆形。这样,用户在设备1的电子白板上缩放椭圆形的过程,可以同步显示在设备2的电子白板上。
以上述实施例中的获取到的标识为A4的直线为例,参见图10,用户在设备1的电子白板上移动直线的过程中,设备1先将直线处于第一状态时对应的第一图形数据发送给服务器,由服务器再将第一图形数据发给设备2,从而设备2根据第一图形数据在电子白板上显示第一状态的直线。用户在设备1的电子白板上继续移动直线,经过预设时间间隔Δt之后,直线处于第二状态,设备1再将直线处于第二状态时对应的第二图形数据发送给服务器,由服务器再将第二图形数据发给设备2,从而设备2根据第二图形数据在电子白板上显示第二状态的直线。用户在设备1的电子白板上结束移动直线的操作时,直线处于第三状态,设备1再将直线处于第三状态时对应的第三图形数据发送给服务器,由服务器再将第三图形数据发给设备2,从而设备2根据第三图形数据在电子白板上显示第三状态的直线。这样,用户在设备1的电子白板上移动直线的过程,可以同步显示在设备2的电子白板上。
以上述实施例中的获取到的标识为a1的直线为例,参见图11,用户在设备1的电子白板上擦除直线a1的过程中,设备1先将直线a1处于第一状态时对应的第一图形数据发送给服务器,由服务器再将第一图形数据发给设备2,从而设备2根据第一图形数据在电子白板上显示第一状态的直线a1。用户在设备1的电子白板上继续擦除直线a1,经过预设时间间隔Δt之后,直线a1处于第二状态,设备1再将直线a1处于第二状态时对应的第二图形数据发送给服务器,由服务器再将第二图形数据发给设备2,从而设备2根据第二图形数据在电子白板上显示第二状态的直线a1。用户在设备1的电子白板上结束擦除直线a1的操作时,直线a1处于第三状态,设备1再将直线a1处于第三状态时对应的第三图形数据发送给服务器,由服务器再将第三图形数据发给设备2,从而设备2根据第三图形数据在电子白板上显示第三状态的直线a1。这样,用户在设备1的电子白板上擦除直线a1的过程,可以同步显示在设备2的电子白板上。
如前所述,图形数据中包括图形对象对应的标识,或者图形数据有关联的标识等。因此,在一些实施例中,如图12所示,在显示图形时,第二设备可以执行S1201-S1104。在S1201中,第二设备可以根据接收到的图形数据,获取对应的目标标识。在S1202中,第二设备在第二电子白板上确定是否存在与这个目标标识相对应的图形对象。如果存在,在S1203中,第二设备会将第二电子白板上目标标识对应的图形对象删除,而后根据本次接收到的目标标识对应的图形数据,重新绘制图形对象。而如果第二电子白板上不存在这个目标标识对应的图形对象,则说明这个目标标识对应的图形对象是新增的或者是首次绘制的,因此在S1204中,第二设备在第二电子白板上根据本次接收到的目标标识对应的图形数据直接绘制图形对象。
示例性的,以图6所示的图形对象为例,在第一设备的第一电子白板上状态发生变化的目标图形对象为矩形,第二设备在接收到图形数据时,可以根据图形数据对应的目标标识A2确定第二电子白板上是否存在标识为A2的矩形。如果存在,则将该矩形删除,根据当前接收到的图形数据重新绘制矩形。如果不存在,则在第二电子白板上根据接收到的图形数据直接绘制矩形。
上述过程中,重新绘制图形对象的过程中也可以看作是刷新电子白板或者更新电子白板的过程。并且,第二设备仅对目标标识对应的图形对象进行绘制,即仅对第一电子白板上状态发生变化的目标图形对象进行绘制,可以实现在第二电子白板上局部刷新图形对象的目的。从而提高第二设备的第二电子白板上图形对象的显示性能,避免整个第二电子白板页面在图形绘制或者刷新时出现画面闪烁的情况,保证显示画面和显示内容的稳定性,提高用户的使用、观看等体验效果。
在一些实施例中,当用户在第一电子白板上针对于目标图形对象的绘制操作结束时,无论是否达到上述预设时间间隔,第一设备都可以向服务器发送绘制操作结束时目标图形对象当前的状态(例如第三状态)下的图形数据(例如第三图形数据),从而服务器将该图形数据发送给第二设备后,第二设备可以同步显示绘制操作结束时目标图形对象的状态。
在另一些实施例中,当用户在第一电子白板上针对于目标图形对象的绘制操作结束时,第一设备仍可以根据上述预设时间间隔来获取目标图形对象当前的状态下的图形数据,从而服务器将该图形数据发送给第二设备后,第二设备可以同步显示绘制操作结束后目标图形对象的状态。
上述实施例中,用户在第一设备上对于目标图形对象的绘制操作过程可以包括用户通过持续触碰目标图形对象进行绘制操作的过程,例如用户在屏幕上按住矩形进行移动、旋转等,用户在屏幕上通过点击矩形进行颜色填充、缩放、擦除等;或者,还可以包括用户通过鼠标的光标持续选中目标图形对象进行绘制操作的过程,例如用户在屏幕上通过光标选中矩形进行移动、旋转等,用户在屏幕上通过光标选中矩形进行颜色填充、缩放、擦除等。用户持续地触摸目标图形对象或者光标持续地选中图形对象都可以看作是同一次的绘制操作。
以及,绘制操作结束可以表示为用户结束触碰目标图形对象或者用户释放选中目标图形对象的光标等。
在一些实施例中,上述预设时间间隔还可以根据第一设备、服务器、第二设备之间通信的当前网络质量对应进行调整。当网络质量满足预设条件时,说明网络质量较好,则服务器可以适当减小预设时间间隔,提高第一设备向服务器发送图形数据的频率,从而更好地在第二设备上显示图形对象的变化过程。而当网络质量不满足预设条件时,说明网络质量较差,则服务器可以适当增大预设时间间隔,降低第一设备向服务器发送图形数据的频率,从而在网络质量较差时,减少网络拥塞的问题。
其中,网络质量可以表示网络速度、网络带宽、网络连接情况等。预设条件可以表示为:网络速度条件、网络带宽条件、网络连接条件等。网络质量满足预设条件可以表示为:网络速度大于或者等于预设速度、网络带宽大于或者等于预设带宽和/或网络连接正常等。网络质量不满足预设条件可以表示为:网络速度小于预设速度、网络带宽小于预设带宽和/或网络连接中断等。
示例性的,参见图13,服务器在接收第一设备发送的图形数据,以及向第二设备发送图形数据的过程中,还可以执行S1301-S1304。在S1301中,服务器检测服务器与第一设备之间当前的网络质量。在S1302中,服务器确定当前的网络质量是否较好。
当网络质量较好时,在S1303中,服务器可以减小预设时间间隔,最小可以减小到预设时间间隔的初始值。例如,预设时间间隔为100ms,如果当前网络质量较好,那么可以将预设时间间隔调整为初始的50ms等。在一些实施例中,服务器可以按照二分法的方式减小预设时间间隔。
当网络质量较差时,在S1304中,服务器可以增大预设时间间隔,最大可以增大到预设时间间隔对应的时间点为图形对象变化结束时的时间点或者网络质量变好时的时间点。例如,预设时间间隔初始值为50ms,如果当前网络质量较差,那么可以将预设时间间隔调整为100ms、200ms等,从而延长图形数据的获取间隔。当预设时间间隔对应的时间点为图形对象变化结束的时间点或者网络质量变好的时间点时,以该预设时间间隔获取的图形数据在第二电子白板上显示时,用户可以直接看到图形变化后最终的状态,而无法观看到图形变化的过程。在一些实施例中,服务器可以以倍率的方式增大预设时间间隔。
预设时间间隔调整好之后,服务器再将调整后的预设时间间隔发送给第一设备,从而第一设备根据调整后的预设时间间隔进行图形数据的采样。
在一些实施例中,在服务器连接多个第一设备的情况下,服务器还可以分别获取服务器与每个第一设备之间的网络质量。在服务器与每个第一设备之间的网络质量都满足预设条件的情况下,可以以上述二分法的方式减小预设时间间隔。而在服务器与每个第一设备之间的网络质量中存在不满足预设条件的网络质量的情况下,可以以上述倍率的方式增大预设时间间隔。
上述实施例中,服务器可以根据网络质量调整获取图形数据的预设时间间隔。网络质量较差时,预设时间间隔变大,从而降低第一设备向服务器发送图形数据的频率,减少网络拥塞的情况,例如,预设时间间隔由50ms变为100ms,那么第一设备向服务器发送图形数据的频率从20次/s(秒)变为10次/s。并且,网络质量较好时,预设时间间隔变小,可以提高第一设备向服务器发送图形数据的频率,服务器将图形数据发送给第二设备后,可以使第二设备动态的显示图形对象的变化过程。根据网络质量调整预设时间间隔,也可以使第一设备向服务器发送图形数据的频率符合当前的网络质量的要求,减少网络质量较差时,发送图形数据的频率较快的情况,从而减少网络拥塞的问题,提高第二电子白板显示图形对象的稳定性。
第一设备向服务器发送图形数据依赖于第一设备与服务器之间的网络连接。在一些实施例中,参见图14,如果网络连接中断,在网络连接中断的过程中,用户仍然可以在第一电子白板上继续绘制图形对象,但是第一设备不会对第一电子白板上的图形数据进行采样,也不会向服务器发送图形数据。这样,第二设备也无法继续接收到第一电子白板上的图形对象的图形数据,此时,第二设备仍会显示上一次接收到图形数据时显示的图形对象。
如果在第五时刻,第一设备的网络连接恢复,那么第一设备会将第五时刻第一电子白板上状态发生变化的目标图形对象的图形数据(例如第五图形数据)发送给服务器。从而第二设备可以接收到网络连接恢复时刻的图形数据并显示,并不会显示网络连接中断过程中第一电子白板上图形变化的具体过程。由于用户在网络连接中断时,已经等待了一段时间,因此在网络连接恢复时直接在第二设备上显示第一电子白板上图形对象的当前状态,可以节省显示目标图形对象中间变化过程而浪费的时间,保证用户的使用、观看等体验。
示例性的,参见图15,用户在设备1的电子白板上移动标识为A2的矩形时,设备1在t1时刻将位于位置1处的矩形的图形发送给服务器,并由服务器将图形数据又发送给设备2。设备2在其电子白板上对应显示处于位置1的矩形。
如果设备1在t2时刻网络连接中断,在t4时刻网络连接恢复。在网络连接中断的时间内,用户将设备1的电子白板上的矩形从t2时刻所处的位置2,依次移动到t3时刻所处的位置3和t4时刻所处的位置4。并且,在网络连接中断时,设备1不会将矩形位置变化时的图形数据发送给服务器。在此期间,设备2的电子白板上仍显示处于位置1的矩形。
当网络连接恢复时,设备1会将t4时刻对应电子白板上的矩形对应的图形数据发送给服务器,服务器再将该图形数据发送给设备2,设备2根据t4时刻矩形的图形数据在其电子白板上显示处于位置4的矩形。从而用户在设备2的电子白板上可以直接观看到网络连接恢复时,矩形处于位置4。其中,t4时刻可以表示上述第五时刻。
另外,在网络连接恢复时第一设备将目标图形对象当前的图形数据发送给服务器,也可以减少目标图形对象的中间变化过程对应的冗余数据的发送,从而减少网络连接恢复时发送的数据量,加快网络连接恢复时第二设备显示目标图形对象的过程。
如前所述,与服务器通信的第一设备可以有多个,那么可以对第一电子白板上的图形对象进行操作的用户也可以有多个。即,多个用户可以在其对应的第一设备上对同一个电子白板上的图形对象进行绘制等操作。这种情况下,服务器可以接收到多个第一设备分别发送的图形数据。之后,服务器可以按照接收到的图形数据的时间顺序(即多个用户在各自对应的第一设备上对目标图像对象进行绘制操作的操作顺序),在接收到每个图形数据后向第二设备发送。而第二设备可以在接收到每个图形数据之后,在第二设备的第二电子白板上显示出对应的图形对象,从而可以显示第一设备的第一电子白板上的图形对象的变化过程。
示例性的,参见图16,t1时刻,设备1、设备2、设备3和设备4的电子白板上均显示处于位置1的标识为A2的矩形。t2时刻,用户1在设备1的电子白板上将矩形从位置1移动到位置2,此时设备1会将处于位置2的矩形的图形数据发送给设备2、设备3和设备4,从而设备2、设备3和设备4都会在各自的电子白板上显示处于位置2的矩形。t3时刻,用户2在设备2的电子白板上将矩形从位置2移动到位置3,此时设备2会将处于位置3的矩形的图形数据发送给设备1、设备3和设备4,从而设备1、设备3和设备4都会在各自的电子白板上显示处于位置3的矩形。t4时刻,用户3在设备3的电子白板上将矩形从位置3移动到位置4,此时设备3会将处于位置4的矩形的图形数据发送给设备1、设备2和设备4,从而设备1、设备2和设备4都会在各自的电子白板上显示处于位置4的矩形。其中,设备1、设备2、设备3和设备4上都可以显示出矩形从位置1到位置4的移动过程。
在一些实施例中,服务器可以为各个第一设备的第一电子白板上的绘制操作配置全局时间戳。配置全局时间戳后,每个第一设备均采用统一的时间标准计时,每个绘制操作都对应一个全局时间,以及每个绘制操作对应的图形对象的图形数据也对应一个全局时间。这样,如果服务器接收到多个第一设备发送的多个图形数据,就可以根据图形数据对应的全局时间确定各个图形数据对应的时间顺序(也可以看作是各个图形数据对应的绘制操作的时间顺序),然后根据图形数据对应的时间顺序,将图形数据合并(也可以看作是将绘制操作合并),并将合并后具有最终状态的图形数据发送给第二设备;或者服务器也可以将各个图形数据和时间顺序一同发送给第二设备。从而第二设备上显示的图形对象与第一设备上当前显示的图形对象是相同的,绘制的过程也是相同的,保证了不同设备端电子白板内容显示的一致性。
示例性的,参见图17,服务器可以执行S1701-S1703的步骤。在S1701中,服务器可以为各个第一设备的第一电子白板上的绘制操作配置全局时间戳。在S1702中,服务器可以根据接收到的多个图形数据对应的全局时间确定各个图形数据对应的时间顺序(也可以看作是各个图形数据对应的绘制操作的时间顺序)。在S1703中,服务器根据图形数据对应的时间顺序,将图形数据合并(也可以看作是将绘制操作合并),再将合并后具有最终状态的图形数据发送给第二设备。从而,第二设备可以显示出上述目标第一设备的网络连接恢复后目标图形对象的状态,而不会显示在目标第一设备的网络连接中断时的目标图形对象的变化过程。
示例性的,参见图18,服务器还可以执行S1801-S1803的步骤。在S1801中,服务器可以为各个第一设备的第一电子白板上的绘制操作配置全局时间戳。在S1802中,服务器可以根据接收到的多个图形数据对应的全局时间确定各个图形数据对应的时间顺序(也可以看作是各个图形数据对应的绘制操作的时间顺序)。在S1803中,服务器将图形数据对应的时间顺序和接收到的多个图形数据一起发送给第二设备。从而,第二设备可以按照全局时间顺序,依次显示出第一设备上目标图形对象的变化过程。
由前述内容可知,多个用户可以在其对应的第一设备上对同一个电子白板上的图形对象进行绘制等操作。在网络连接正常时,每个第一设备都可以实时地向服务器发送图形数据,并且服务器可以将图形数据发送给第二设备进行显示。而在网络连接中断时,发生网络连接中断的目标第一设备无法对图形数据进行采样,也无法实时地向服务器发送图形数据,从而服务器也无法向第二设备发送图形数据。在目标第一设备发生网络连接中断的过程中,第二设备会同步显示其他第一设备上的目标图形对象的变化过程,而不会显示发生网络连接中断的目标第一设备上的目标图形对象的变化过程。
示例性的,例如上述图16中的设备2网络连接中断处于离线状态,那么用户2在设备2上对于矩形的移动操作时,设备2并不会将矩形对应的图形数据发送给服务器,从而设备4接收不到设备2发送的图形数据,也就不会显示设备2上的矩形和矩形的状态。
在网络连接中断时,目标第一设备可以将在此过程用户针对目标图形对象的最后一个绘制操作的时间保存。如果在第五时刻,网络连接恢复,那么第一设备可以在第五时刻向服务器发送网络连接中断时经过最后一个绘制操作的目标图像对象的图形数据(例如第五图形数据),并且图形数据中包括最后一个绘制操作的时间。其中,绘制操作对应的时间都可以看作是全局时间。
如果有多个目标第一设备的网络连接中断又恢复,例如,在第五时刻网络连接恢复,那么多个目标第一设备都会在第五时刻向服务器发送图形数据。这种情况下,在一些实施例中,服务器可以将针对同一个目标图形对象的绘制操作进行合并,即,将目标图形对象对应的多个图形数据进行合并,获得最终状态的目标图形对象对应的图形数据,或者获得目标图形对象在多个所述第一设备上响应于多个绘制操作中最后一个绘制操作变化后对应的图形数据(例如第七图形数据),其中,每个第一设备上可以进行一个绘制操作。之后,服务器再将最终状态对应的图形数据发送给第二设备,从而使第二设备根据该图形数据直接显示网络连接恢复之后的最终状态的目标图形对象。第二设备不会显示在网络连接中断时目标第一设备上的目标图形对象变化的过程,可以减少网络连接恢复时,第二设备端的用户的等待时长,第二设备端的用户可以快速地观看到网络连接恢复后的目标图形对象的当前状态。其中,服务器对绘制操作或者图形数据进行合并时,可以按照绘制操作的操作时间等确定绘制操作的顺序,再根据操作进行合并。
在另一些实施例中,针对于上述情况,如果第五时刻网络连接恢复,那么服务器还可以将接收到的同一个目标图形对象对应的多个图形数据进行时间排序,即,将每个第一设备上针对同一目标图形对象的绘制操作按照操作的时间进行排序。再将排序结果和接收到的多个图形数据(例如第六图形数据)发送给第二设备,从而第二设备可以根据图形数据和排序结果将网络连接中断时目标图形对象的变化状态依次显示出来。这样,第二设备端的用户可以在网络连接恢复时,看到完整的目标图形对象的变化过程。
上述这种方式中,多个第一设备上的绘制操作都被配置全局时间戳。通过全局时间戳,服务器可以区分每个第一设备上针对于同一个目标图形对象的操作顺序,从而确定出目标图形对象的最终状态。并且,服务器也可以通过全局时间戳维持同一个电子白板上的操作时序一致性,在网络连接中断又恢复时,保证第二设备可以准确地显示出经过多个用户绘制操作后的最终状态的目标图形对象,或者保证第二设备可以显示出网络连接中断时第一设备上的图形对象的变化过程。在网络连接恢复时,服务器只将最终状态对应的图形数据发送给第二设备,也可以减少多个用户的中间绘制操作对应的冗余数据的发送,从而减少网络连接恢复时发送的数据量,加快网络连接恢复时第二设备显示图形对象的过程。
在一些实施例中,上述服务器配置全局时间戳的方式,可以通过各个第一设备分别与服务器进行对时而实现。与服务器对时后,将服务器时间作为一个参考系或者参考时间,每个第一设备与服务器之间都有一个固定的时间差。每当第一设备的第一电子白板受到用户的绘制操作而发生图形对象的变化时,第一设备可以记录用户绘制操作的时间,并将绘制操作时间加上第一设备对应的时间差作为当前图形数据对应的全局时间。服务器再根据接收到的多个图形数据对应的全局时间,来确定一个第一设备上绘制操作的先后顺序,或者确定在多个第一设备上不同用户的绘制操作的先后顺序。这样,服务器可以向第二设备发送更加准确的最终状态的图形数据,或者更加准确的图形数据的顺序,从而第二设备可以准确地显示第一设备上目标图形对象的状态或者变化状态。
示例性的,设备1经过与服务器对时后,确定与服务器之间的时间差为ΔT1;设备2与服务器对时后,确定与服务器之间的时间差为ΔT2;设备3与服务器对时后,确定与服务器之间的时间差为ΔT3。用户1在设备1上对电子白板1的图形对象进行绘制操作的时间为t1,那么该绘制操作的全局时间即为t1+ΔT1。用户2在设备2上对电子白板1的图形对象进行绘制操作的时间为t2,那么该绘制操作的全局时间戳即为t2+ΔT2。用户3在设备3上对电子白板1的图形对象进行绘制操作的时间为t3,那么该绘制操作的全局时间戳即为t3+ΔT3。
本申请上述实施例中,仅以多个用户可以在各自对应的第一设备上同一个电子白板上的同一个目标图形对象进行绘制操作为例,对图形同步显示方法进行说明。在其他一些实施例中,多个用户也可以在各自对应的第一设备上对同一个电子白板上的不同图形对象进行绘制操作。这种情况下,本申请实施例上的图形同步显示方法,也可以适用。具体方式可以参照前述实施例的内容,此处不再赘述。
本申请实施例中,以第一设备在第一时刻、第二时刻、第三时刻等向服务器发送图形数据,第二设备在第一时刻、第二时刻、第三时刻等从服务器获取图形数据为例,对上述内容进行说明。可以理解的是,第二设备上的第一时刻、第二时刻、第三时刻等相对于第一设备上的第一时刻、第二时刻、第三时刻等存在一定的延时,这个延时由图形数据传输、图形数据排序、图形数据合并等操作而造成。
可以理解的是,为了实现上述功能,电子设备包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本实施例可以根据上述方法示例对电子设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块可以采用硬件的形式实现。需要说明的是,本实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
本申请实施例还提供一种电子设备,如图19所示,该电子设备可以包括一个或者多个处理器1001、存储器1002和通信接口1003。
其中,存储器1002、通信接口1003与处理器1001耦合。例如,存储器1002、通信接口1003与处理器1001可以通过总线1004耦合在一起。
其中,通信接口1003用于与其他设备进行数据传输。存储器1002中存储有计算机程序代码。计算机程序代码包括计算机指令,当计算机指令被处理器1001执行时,使得电子设备执行本申请实施例中的图形同步显示方法。
其中,处理器1001可以是处理器或控制器,例如可以是中央处理器(CentralProcessing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
其中,总线1004可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。上述总线1004可以分为地址总线、数据总线、控制总线等。为便于表示,图19中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例还提供一种计算机可读存储介质,该计算机存储介质中存储有计算机程序代码,当上述处理器执行该计算机程序代码时,电子设备执行上述方法实施例中的相关方法步骤。
本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述方法实施例中的相关方法步骤。
其中,本申请提供的电子设备、计算机存储介质或者计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (19)
1.一种图形同步显示方法,应用于第一设备,其特征在于,所述方法包括:
获取目标图形对象对应的第一图形数据,发送第一图形数据同步指令给服务器,所述第一图形数据同步指令用于指示所述服务器将所述第一图形数据发送给第二设备;
接收用户对于所述目标图形对象的绘制操作;
响应于所述绘制操作,所述目标图形对象发生变化,并在所述第一设备上显示变化后的所述目标图形对象;
获取变化后的所述目标图形对象对应的第二图形数据,发送第二图形数据同步指令给所述服务器;所述第二图形数据同步指令用于指示所述服务器将所述第二图形数据发送所述第二设备;
接收所述用户对于所述目标图形对象的绘制结束操作;
响应于所述绘制结束操作,获取所述目标图形对象对应的第三图形数据,发送第三图形数据同步指令给所述服务器;所述第三图形数据同步指令用于指示所述服务器将所述第三图形数据发送所述第二设备。
2.根据权利要求1所述的方法,其特征在于,所述目标图形对象的变化包括以下至少一项发生变化:目标图形对象的位置、旋转角度、大小、形状、线条颜色和填充颜色。
3.根据权利要求1-2任一项所述的方法,其特征在于,所述第二图形数据和所述第一图形数据不同,以及,所述第二图形数据与所述第三图形数据不同。
4.根据权利要求1-3任一项所述的方法,其特征在于,在所述获取变化后的所述目标图形对象对应的第二图形数据之后,所述方法还包括:
在所述用户对所述目标图形对象进行所述绘制操作的过程中,根据预设时间间隔,获取所述目标图形对象对应的第四图形数据,以及将第四图形数据同步指令发送给所述服务器;所述第四图形数据同步指令用于指示所述服务器将所述第四图形数据发送给所述第二设备。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
从所述服务器获取所述预设时间间隔,所述预设时间间隔根据所述服务器与所述第一设备之间的网络质量确定。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述第一图形数据、所述第二图形数据和所述第三图形数据中分别包括所述目标图形对象的目标标识。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
在所述用户对所述目标图形对象进行所述绘制操作的过程中,如果网络连接中断,则不向所述服务器发送图形数据同步指令;以及,在所述网络连接恢复时刻,继续获取所述目标图形对象在当前状态下的第五图形数据,以及将第五图形数据同步指令发送给所述服务器;所述第五图形数据同步指令用于指示所述服务器将所述第五图形数据发送给所述第二设备。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述绘制操作包括所述用户通过持续触碰所述目标图形对象进行绘制的操作,或者所述用户通过鼠标的光标持续选中所述目标图形对象进行绘制的操作;所述绘制结束操作包括所述用户结束触碰所述目标图形对象或者所述用户释放选中所述目标图形对象的光标的操作。
9.一种图形同步显示方法,应用于第二设备,其特征在于,所述方法包括:
在第一时刻获取第一设备上的目标图形对象对应的第一图形数据,并根据所述第一图形数据显示所述目标图形对象;
在第二时刻获取所述目标图形对象对应的第二图形数据,并根据所述第二图形数据显示所述目标图形对象;所述第二图形数据表示所述第一设备上的所述目标图形对象响应于用户的绘制操作发生变化后对应的图形数据;
在第三时刻获取所述目标图形对象对应的第三图形数据,并根据所述第三图形数据显示处于第三状态的所述目标图形对象;所述第三图形数据表示所述第一设备上的所述目标图形对象在所述用户结束绘制操作时对应的图形数据。
10.根据权利要求9所述的方法,其特征在于,所述目标图形对象的变化包括以下至少一项发生变化:目标图形对象的位置、旋转角度、大小、形状、线条颜色和填充颜色。
11.根据权利要求9-10任一项所述的方法,其特征在于,所述第二图形数据和所述第一图形数据不同,以及,所述第二图形数据与所述第三图形数据不同。
12.根据权利要求9-11任一项所述的方法,其特征在于,所述方法还包括:
在第四时刻获取所述目标图形对象对应的第四图形数据,并根据所述第四图形数据在显示所述目标图形对象;所述第四图形数据表示所述第一设备根据预设时间间隔获取的所述目标图形对象对应的图形数据。
13.根据权利要求9-12任一项所述的方法,其特征在于,所述根据所述第二图形数据显示所述目标图形对象,包括:
获取所述第二图形数据中的目标标识;
在所述第二设备的图形对象对应的标识中存在所述目标标识的情况下,删除所述第二设备上所述目标标识对应的图形对象,并根据所述第二图形数据重新显示所述目标图形对象;
在所述第二设备的图形对象对应的标识中不存在所述目标标识的情况下,根据所述第二图形数据显示所述目标图形对象。
14.根据权利要求9-13任一项所述的方法,其特征在于,所述方法还包括:
在第五时刻获取所述目标图形对象对应的第五图形数据,并根据所述第五图形数据显示所述第一设备上在网络连接中断又恢复时的所述目标图形对象;所述第五时刻表示所述第一设备网络连接中断后又恢复的时刻,所述第五图形数据包括所述第一设备发送的在网络连接中断又恢复时的所述目标图形对象对应的图形数据。
15.根据权利要求9-13任一项所述的方法,其特征在于,所述方法还包括:
在第五时刻获取所述目标图形对象对应的第六图形数据,并根据所述第六图形数据显示所述目标图形对象;所述第五时刻表示所述第一设备网络连接中断后又恢复的时刻,所述第六图形数据包括所述目标图形对象在多个所述第一设备上响应于多个绘制操作变化后而对应的多个图形数据以及所述多个图形数据按照各自对应的全局时间顺序进行排序的结果。
16.根据权利要求9-13任一项所述的方法,其特征在于,所述方法还包括:
在第五时刻获取所述目标图形对象对应的第七图形数据,并根据所述第七图形数据显示所述目标图形对象;所述第五时刻表示所述第一设备网络连接中断后又恢复的时刻,所述第七图形数据包括所述目标图形对象在多个所述第一设备上响应于多个绘制操作中最后一个绘制操作变化后对应的图形数据。
17.一种图形同步显示方法,应用于图形同步显示系统,所述图形同步显示系统包括第一设备、第二设备和服务器,其特征在于,所述方法包括:
所述第一设备获取目标图形对象对应的第一图形数据,发送第一图形数据同步指令给服务器;
所述服务器响应于所述第一图形数据同步指令,将所述第一图形数据发送给所述第二设备;
所述第二设备接收所述第一图形数据,并根据所述第一图形数据显示所述目标图形对象;
所述第一设备接收用户对于所述目标图形对象的绘制操作;响应于所述绘制操作,所述目标图形对象发生变化,并在所述第一设备上显示变化后的所述目标图形对象;
所述第一设备获取变化后的所述目标图形对象对应的第二图形数据,发送第二图形数据同步指令给所述服务器;
所述服务器响应于所述第二图形数据同步指令,将所述第二图形数据发送所述第二设备;
所述第二设备接收所述第二图形数据,并根据所述第二图形数据显示所述目标图形对象;
所述第一设备接收所述用户对于所述目标图形对象的绘制结束操作;以及,响应于所述绘制结束操作,获取所述目标图形对象对应的第三图形数据,发送第三图形数据同步指令给所述服务器;
所述服务器响应于所述第三图形数据同步指令,将所述第三图形数据发送所述第二设备;
所述第二设备接收所述第三图形数据,并根据所述第三图形数据显示所述目标图形对象。
18.一种电子设备,其特征在于,所述电子设备包括存储器、一个或多个处理器;所述存储器与所述处理器耦合;其中,所述存储器中存储有计算机程序代码,所述计算机程序代码包括计算机指令,当所述计算机指令被所述处理器执行时,使得所述电子设备执行如权利要求1-8任一项所述的图形同步显示方法,或者执行如权利要求9-16任一项所述的图形同步显示方法。
19.一种计算机可读存储介质,其特征在于,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如权利要求1-8任一项所述的图形同步显示方法,或者执行如权利要求9-16任一项所述的图形同步显示方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211001587.9A CN117641064A (zh) | 2022-08-19 | 2022-08-19 | 图形同步显示方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211001587.9A CN117641064A (zh) | 2022-08-19 | 2022-08-19 | 图形同步显示方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117641064A true CN117641064A (zh) | 2024-03-01 |
Family
ID=90022278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211001587.9A Pending CN117641064A (zh) | 2022-08-19 | 2022-08-19 | 图形同步显示方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117641064A (zh) |
-
2022
- 2022-08-19 CN CN202211001587.9A patent/CN117641064A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113553014B (zh) | 多窗口投屏场景下的应用界面显示方法及电子设备 | |
CN112558825A (zh) | 一种信息处理方法及电子设备 | |
CN113556598A (zh) | 多窗口投屏方法及电子设备 | |
CN115793916A (zh) | 显示多窗口的方法、电子设备和系统 | |
CN112527174B (zh) | 一种信息处理方法及电子设备 | |
CN116095881A (zh) | 一种多设备协同方法、电子设备及相关产品 | |
CN112114733B (zh) | 一种截屏、录屏方法、移动终端及计算机存储介质 | |
CN111225108A (zh) | 一种通信终端及负屏界面的卡片显示方法 | |
CN112527222A (zh) | 一种信息处理方法及电子设备 | |
WO2023030099A1 (zh) | 跨设备交互的方法、装置、投屏系统及终端 | |
CN114201130A (zh) | 一种投屏的方法、装置及存储介质 | |
WO2023005751A1 (zh) | 渲染方法及电子设备 | |
CN114449171B (zh) | 控制摄像头的方法、终端设备、存储介质及程序产品 | |
CN116095413B (zh) | 视频处理方法及电子设备 | |
CN112799557B (zh) | 一种水墨屏显示控制方法、终端及计算机可读存储介质 | |
CN113157092B (zh) | 可视化方法、终端设备和存储介质 | |
CN117641064A (zh) | 图形同步显示方法及电子设备 | |
CN111324255B (zh) | 一种基于双屏终端的应用处理方法及通信终端 | |
CN114639358A (zh) | 墨水屏的刷新方法、终端设备、存储介质和程序产品 | |
CN115700461A (zh) | 投屏场景下的跨设备手写输入方法、系统和电子设备 | |
CN113253905B (zh) | 基于多指操作的触控方法及智能终端 | |
CN116204093B (zh) | 一种页面显示方法及电子设备 | |
CN113641533B (zh) | 终端及短信息处理方法 | |
CN111381801B (zh) | 一种基于双屏终端的音频播放方法及通信终端 | |
EP4296840A1 (en) | Method and apparatus for scrolling to capture screenshot |
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 |