CN109766163B - 同步显示方法及装置、存储介质和电子装置 - Google Patents

同步显示方法及装置、存储介质和电子装置 Download PDF

Info

Publication number
CN109766163B
CN109766163B CN201910045548.0A CN201910045548A CN109766163B CN 109766163 B CN109766163 B CN 109766163B CN 201910045548 A CN201910045548 A CN 201910045548A CN 109766163 B CN109766163 B CN 109766163B
Authority
CN
China
Prior art keywords
terminal
bitmap
screen
byte stream
rotation state
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.)
Active
Application number
CN201910045548.0A
Other languages
English (en)
Other versions
CN109766163A (zh
Inventor
黄欣宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201910045548.0A priority Critical patent/CN109766163B/zh
Publication of CN109766163A publication Critical patent/CN109766163A/zh
Priority to US17/042,938 priority patent/US11340859B2/en
Priority to PCT/CN2019/089770 priority patent/WO2020147246A1/zh
Application granted granted Critical
Publication of CN109766163B publication Critical patent/CN109766163B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • G06F3/1462Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay with means for detecting differences between the image stored in the host and the images displayed on the remote displays
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/60Rotation of a whole image or part thereof
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/38Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory with means for controlling the display position
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0492Change of orientation of the displayed image, e.g. upside-down, mirrored

Abstract

本发明提供了一种同步显示方法及装置、存储介质和电子装置,其中该方法包括:获取第一终端的屏幕截图信息,并将屏幕截图信息转化为对应的位图;获取第一终端的屏幕的旋转状态;在根据旋转状态确定屏幕发生旋转的情况下,对位图执行与旋转状态对应的转置操作,将转置操作后的位图转化为图片字节流,并将图片字节流传输到第二终端以同步显示与位图对应的屏幕截图信息。通过本发明,解决了相关技术在移动终端应用开发调试过程中,需要在PC端访问和操作远程终端屏幕,但是终端屏幕发生旋转,则同步显示的屏幕截图不完整的问题。

Description

同步显示方法及装置、存储介质和电子装置
技术领域
本发明涉及计算机领域,具体而言,涉及一种同步显示方法及装置、存储介质和电子装置。
背景技术
本发明用于解决在Android手机应用开发调试过程中,经常需要PC 连接手机,来回手机和PC屏幕切换导致的效率低下。
如果能在PC端访问和操作远程手机屏幕,问题就可以迎刃而解。在上述情况下,可以通过一定技术手段将调试的手机屏幕在PC屏幕上实时显示。
在Android手机应用开发调试过程中,相关技术中常采用的是基于 Github的手机测试项目STF的子项目minicap,利用minicap可以实现手机的实时展示。
minicap的基本原理为:在手机端通过minicap可执行文件,启动一个 socketserver(套接字服务器),接受来自PC(PersonalComputer,个人电脑)客户端的连接,minicap通过ndk接口不停的截屏,屏幕帧不断的发送到PC端的socket client(套接字客户端)上。PC端通过adb forward命令实现socket(套接字)连接转发。PC的socket client通过adb forward转发连接至minicap开启的socket server,读取手机端不断发送的帧流,这样PC端便可以得到序列的图片流,然后在PC端处理之后即可通过GUI (Graphical UserInterface,图形用户界面)程序或者Web页面展示。
但是,在使用过程中minicap存在以下问题:在截图过程中,如果屏幕发生旋转,收到的截图有黑色区域,图片显示不完整。minicap经过测试,目前只支持mtl中70%左右的机型,兼容性不够理想。并且由于获取不到截图,经常会引起系统崩溃。
针对相关技术中的上述问题,目前尚未存在有效的解决方案。
发明内容
本发明实施例提供了一种同步显示方法及装置、存储介质和电子装置,以至少解决相关技术在移动终端应用开发调试过程中,需要在PC端访问和操作远程终端屏幕,但是终端屏幕发生旋转,则同步显示的屏幕截图不完整的问题。
根据本发明的一个实施例,提供了一种同步显示方法,包括:获取第一终端的屏幕截图信息,并将所述屏幕截图信息转化为对应的位图;获取所述第一终端的屏幕的旋转状态;在根据所述旋转状态确定所述屏幕发生旋转的情况下,对所述位图执行与所述旋转状态对应的转置操作,将转置操作后的位图转化为图片字节流,并将所述图片字节流传输到第二终端以同步显示与所述位图对应的屏幕截图信息;以及在根据所述旋转状态确定所述屏幕未发生旋转的情况下,将所述位图转化为图片字节流,并将所述图片字节流传输到所述第二终端以同步显示与所述位图对应的屏幕截图信息。
根据本发明的另一个方面,提供了一种同步显示装置,包括:第一获取模块,用于获取第一终端的屏幕截图信息,并将所述屏幕截图信息转化为对应的位图;第二获取模块,用于获取所述第一终端的屏幕的旋转状态;显示模块,用于在根据所述旋转状态确定所述屏幕发生旋转的情况下,对所述位图执行与所述旋转状态对应的转置操作,将转置操作后的位图转化为图片字节流,并将所述图片字节流传输到第二终端以同步显示与所述位图对应的屏幕截图信息;以及在根据所述旋转状态确定所述屏幕未发生旋转的情况下,将所述位图转化为图片字节流,并将所述图片字节流传输到所述第二终端以同步显示与所述位图对应的屏幕截图信息。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,在根据旋转状态确定屏幕发生旋转的情况下,对由屏幕截图信息转化的位图执行与旋转状态对应的转置操作,将转置操作后的位图转化为图片字节流,并将图片字节流传输到第二终端以同步显示与位图对应的屏幕截图信息,从而解决了相关技术在移动终端应用开发调试过程中,需要在PC端访问和操作远程终端屏幕,但是终端屏幕发生旋转,则同步显示的屏幕截图不完整的问题,达到了提高远程真机的同步显示效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种同步显示方法的移动终端的硬件结构框图;
图2是根据本发明实施例的同步显示方法的流程图;
图3是根据本发明实施例的移动设备实时同屏方案的系统结构图;
图4是根据本发明实施例的执行移动设备同屏方案的方法流程图;
图5是根据本发明实施例的同步显示装置的结构示意图;
图6是根据本发明实施例的同步显示装置的可选结构示意图一;
图7是根据本发明实施例的同步显示装置的可选结构示意图二。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请其中之一实施例所提供的方法实施例可以在计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的同步显示方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的同步显示方法对应的计算机程序,处理器102 通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为 NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述计算机终端的同步显示方法,图 2是根据本发明实施例的同步显示方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,获取第一终端的屏幕截图信息,并将屏幕截图信息转化为对应的位图;
步骤S204,获取第一终端的屏幕的旋转状态;
步骤S206,在根据旋转状态确定屏幕发生旋转的情况下,对位图执行与旋转状态对应的转置操作,将转置操作后的位图转化为图片字节流,并将图片字节流传输到第二终端以同步显示与位图对应的屏幕截图信息;以及在根据旋转状态确定屏幕未发生旋转的情况下,将位图转化为图片字节流,并将图片字节流传输到第二终端以同步显示与位图对应的屏幕截图信息。
通过上述步骤S202至步骤S206,在根据旋转状态确定屏幕发生旋转的情况下,对由屏幕截图信息转化的位图执行与旋转状态对应的转置操作,将转置操作后的位图转化为图片字节流,并将图片字节流传输到第二终端以同步显示与位图对应的屏幕截图信息,从而解决了相关技术在移动终端应用开发调试过程中,需要在PC端访问和操作远程终端屏幕,但是终端屏幕发生旋转,则同步显示的屏幕截图不完整的问题,达到了提高远程真机的同步显示效果。
需要说明的是,上述步骤S202至步骤S206的执行主体可以是终端,或其他设备。此外,第一终端可选为移动终端,例如:手机、平板电脑等等。第二终端可选为计算机终端或其他服务器设备。
在本实施例的可选实施方式中,对于步骤S206中涉及到的在确定屏幕发生旋转的情况下,对位图进行与旋转状态对应的转置操作的方式,可以通过如下方式来实现:
步骤S206-11,获取视窗管理对象的预设旋转函数的返回值,其中,返回值用于指示屏幕是否旋转以及旋转角度;
步骤S206-12,按照返回值对位图执行与旋转状态对应的转置操作。
对于上述步骤S206-11和步骤S206-12,在具体应用场景中该返回值在等于1的情况下则指示发生90度旋转,在等于2的情况下则指示发生 180度旋转,在等于3的情况下则指示发生270度旋转,在等于0的情况下则指示没有发生旋转。因此,如果返回值等于1,则旋转角度为90度,因此则需要对该位图进行90度旋转的转置操作。当然,上述返回值的具体取值以及对应的角度仅仅是举例说明,并不构成本申请的限定。在其他实施方式中也可以设置返回值与对应旋转角度的值,例如返回值等于1,旋转角度为270。
在本实施例的另一个可选实施方式中,在步骤S202获取第一终端的屏幕截图信息之前,本实施例的方法还可以包括:
步骤S102,触发第二终端启动第一线程;
步骤S104,基于第一线程建立第一终端与第二终端的之间套接字连接。
基于上述步骤S102和步骤S104可知,第一线程与第一终端与第二终端建立套接字连接之后,该第一终端就变成了socket server套接字服务器。
基于上述套接字连接,对于本实施例中步骤S206中涉及到的将进行转置操作后的位图传输到第二终端以同步显示与位图对应的屏幕截图信息的方式,可以进一步包括:
步骤S206-13,将进行转置操作后的位图转化成图片格式的字节流,并对字节流进行封装;
步骤S206-14,通过套接字连接将封装后的字节流传输到第二终端以同步显示与字节流对应的屏幕截图信息。
通过上述步骤S206-13和步骤S206-14可知,通过套接字连接可以将转化成土坯格式的字节流传输到第二终端,进而同步显示对应的屏幕截图信息。
在本实施例的再一个可选实施方式中,本实施例的方法还可以包括:
步骤S106,在获取第一终端的屏幕截图信息之前,触发第二终端启动第二线程,其中,第二线程用于在获取屏幕截图信息失败的情况下,重启获取屏幕截图信息的操作。
可见,通过该第二线程能够保证获取屏幕截图信息的操作能够顺利完成,不会因为该操作失败后导致同步显示操作终止。
下面结合本实施例的具体实施方式来对本申请进行举例说明;
本具体实施例以Android手机为例,提供了一种通过调用Android底层原生javaAPI接口的方式以提升截图兼容性和稳定性,并通过逻辑控制解决了屏幕旋转黑屏问题,可以有效地用于优化远程真机的同屏显示体验。
首先,对本具体实施方式核心思想进行以下几点说明:
(1)在本具体实施方式中,借助Java底层反射原理,调用Android 底层的screenshot()方法,通过adb shell的app_process可以解决SurfaceControl.screenshot()/Surface.screenshot方法的调用权限问题。该方法调用返回结果是个Bitmap,然后通过相应的字节流转化,就能够顺利获取手机屏幕截图。
(2)调用IWindowManager的getRotation方法获取当前屏幕是否翻转。根据返回结果调用Matrix类的postRotate方法可以对Bitmap做相应的翻转,从而实现图片旋转的截屏。
(3)实现一个Android应用程序,安装在远程手机中。在应用程序中实现调用SurfaceControl.screenshot()/Surface.screenshot的方法。将手机通过连接线连接PC,在PC端通过app_process指令启动应用程序,这样手机就变成了一台socket server。
(4)PC端通过adb forward命令实现socket连接转发。PC的socket client通过adbforward转发连接至app_process开启的手机端socket server,这样就可以实时读取传输的Android屏幕。PC端经过处理之后即可通过 GUI程序或者Web页面实时同屏显示。
基于上述(1)~(4),本具体实施方式提供了一种移动设备实时同屏方案的系统,图3是根据本发明实施例的移动设备实时同屏方案的系统结构图。如图3所示,该系统包括:前端网页,服务器Yosemite进程以及客户端Agent。
其中,前端网页用于与服务器的截图接口建立websocket连接,从而不断的获取远程真机的截屏图片,在前端网页中显示。
服务端Yosemite进程包括:javacap线程(相当于上述的第一线程) 和监控线程(相当于上述的第二线程)两部分。其中,监控线程用于启动手机App中的Agent模块,并对Agent的状态进行监控,当Agent在手机端挂掉时,会进行重启操作,保证截图稳定进行。
在Agent启动之后,Yosemite进程会启动javacap线程,javacap线程同Agent建立socket连接,通过建立socket连接,可以获取Agent实时截图的二进制流,可供前端页面进行获取。
需要说明的是,Agent运行在远程真机上,通过服务器Yosemite的 monitor线程进行启动和监控。Agent通过Socket同Yosemite的javacap线程进行连接,通过protobuf协议进行通讯。在同javacap建立socket连接后,Agent就会不断调用底层screenshot接口,获取截图的bitmap,并将 bitmap转化成jpg图片二进制流,再封装成protobuf协议规定的格式发送给javacap线程进行处理。
图4是根据本发明实施例的执行移动设备同屏方案的方法流程图,如图4所示,该方法的步骤包括:
步骤S401,通过adb的app_process命令启动远程手机上的Agent进程。
步骤S402,Agent进程在手机端启动后,就会开启Socket线程,从而手机变成了一台socket server。
步骤S403,Socket线程不断等待来自服务器端Yosemite的连接
步骤S404,服务器端会启动javacap线程,用于建立同远程设备的 socket连接,以及循环接收Agent发送的远程设备截图字节流。
步骤S405,通过adb的forward指令可以将服务器端的端口重定向到手机端的socket server端口上,并建立Socket连接。
步骤S406,Socket连接建立之后,就会启动一个用于获取屏幕截图的线程。
步骤S407,屏幕截图线程会建立一个循环;
其中,在Android 4.2及以下版本线程会调用Surface.screenshot()方法,在Android 4.2以上版本则调用SurfaceControl.screenshot()方法。
步骤S408,调用screenshot()方法,就会生成一个图片对应的Bitmap 对象。
步骤S409,通过IWindowManager的getRotation方法可以判断屏幕是否发生旋转。返回值等于1则发生90度旋转,等于2则发生180度旋转,等于3则发生270度旋转,等于0则没有发生旋转。
步骤S410,如果发生旋转,则对bitmap做相应旋转度的转置操作。
步骤S411,调用Bitmap类的compress方法,可以将bitmap转化成相应图片格式的字节流,可以通过compress方法压缩成不同的格式和清晰度的图片字节流。
步骤S412,转化成字节流后,Agent将截取图片的字节流通过TCP 传输回给javacap线程。
通过本具体实施方式的上述方法步骤,能够带来以下有益效果:
由于Android系统底层都支持隐藏接口 SurfaceControl.screenshot()/Surface.screenshot(),并可以使用root获取接口的调用权限,因此,本具体实施方式的方案可以支持大多数Android系统的智能手机,通过接口调用启动服务的形式,从而可以提高截图设备的兼容性。此外,相关技术中安卓系统截图方案,如果屏幕旋转,则截图经常出现黑屏和黑边。通过本具体实施方式在调用screenshot接口获取bitmap 后立即判断屏幕当前旋转状态,若出现旋转,则立即对bitmap做出相应的转置处理,从而保证Bitmap转化成图片时,图片能够正常显示。最后,本具体实施方式中的PC端会监控客户端服务进程的运行状态,如果获取截图过程中出现异常退出,能够重启客户端进程,保证后续数据操作顺利进行。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如 ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种同步显示装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本发明实施例的同步显示装置的结构示意图,如图5所示,该装置包括:第一获取模块502,用于获取第一终端的屏幕截图信息,并将屏幕截图信息转化为对应的位图;第二获取模块504,与第一获取模块 502耦合连接,用于获取第一终端的屏幕的旋转状态;显示模块506,与第二获取模块504耦合连接,用于在根据旋转状态确定屏幕发生旋转的情况下,对位图执行与旋转状态对应的转置操作,将转置操作后的位图转化为图片字节流,并将图片字节流传输到第二终端以同步显示与位图对应的屏幕截图信息;以及在根据旋转状态确定屏幕未发生旋转的情况下,将位图转化为图片字节流,并将图片字节流传输到第二终端以同步显示与位图对应的屏幕截图信息。
可选地,本实施例中涉及到的显示模块506还可以包括:获取单元,用于获取视窗管理对象的预设旋转函数的返回值,其中,返回值用于指示屏幕是否旋转以及旋转角度;转置单元,用于按照返回值对位图执行与旋转状态对应的转置操作。
图6是根据本发明实施例的同步显示装置的可选结构示意图一,如图 6所示,该装置还可以包括:第一触发模块602,与建立模块604耦合连接,用于在获取第一终端的屏幕截图信息之前,触发第二终端启动第一线程;建立模块604,与第一获取模块502耦合连接,用于基于第一线程建立第一终端与第二终端的之间套接字连接。
基于图6中该装置的模块,本实施例中涉及到的显示模块506还可以包括:处理单元,用于将进行转置操作后的位图转化成图片格式的字节流,并对字节流进行封装;显示单元,用于通过套接字连接将封装后的字节流传输到第二终端以同步显示与字节流对应的屏幕截图信息。
图7是根据本发明实施例的同步显示装置的可选结构示意图二,如图 7所示,该装置还包括:第二触发模块702,与第一获取模块502耦合连接,用于在获取第一终端的屏幕截图信息之前,触发第二终端启动第二线程,其中,第二线程用于在获取屏幕截图信息失败的情况下,重启获取屏幕截图信息的操作。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取第一终端的屏幕截图信息,并将所述屏幕截图信息转化为对应的位图;
S2,获取所述第一终端的屏幕的旋转状态;
S3,在根据所述旋转状态确定所述屏幕发生旋转的情况下,对所述位图执行与所述旋转状态对应的转置操作,将转置操作后的位图转化为图片字节流,并将所述图片字节流传输到第二终端以同步显示与所述位图对应的屏幕截图信息;以及在根据所述旋转状态确定所述屏幕未发生旋转的情况下,将所述位图转化为图片字节流,并将所述图片字节流传输到所述第二终端以同步显示与所述位图对应的屏幕截图信息。
可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:
S1,获取视窗管理对象的预设旋转函数的返回值,其中,所述返回值用于指示所述屏幕是否旋转以及旋转角度;
S2,按照所述返回值对所述位图执行与所述旋转状态对应的转置操作。
可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:
S1,在获取第一终端的屏幕截图信息之前,触发所述第二终端启动第一线程;
S2,基于所述第一线程建立所述第一终端与所述第二终端的之间套接字连接。
可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:
S1,在获取第一终端的屏幕截图信息之前,触发所述第二终端启动第二线程,其中,所述第二线程用于在获取所述屏幕截图信息失败的情况下,重启获取所述屏幕截图信息的操作。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取第一终端的屏幕截图信息,并将所述屏幕截图信息转化为对应的位图;
S2,获取所述第一终端的屏幕的旋转状态;
S3,在根据所述旋转状态确定所述屏幕发生旋转的情况下,对所述位图执行与所述旋转状态对应的转置操作,将转置操作后的位图转化为图片字节流,并将所述图片字节流传输到第二终端以同步显示与所述位图对应的屏幕截图信息;以及在根据所述旋转状态确定所述屏幕未发生旋转的情况下,将所述位图转化为图片字节流,并将所述图片字节流传输到所述第二终端以同步显示与所述位图对应的屏幕截图信息。
可选地,处理器还被设置为存储用于执行以下步骤的计算机程序:
S1,获取视窗管理对象的预设旋转函数的返回值,其中,所述返回值用于指示所述屏幕是否旋转以及旋转角度;
S2,按照所述返回值对所述位图执行与所述旋转状态对应的转置操作。
可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:
S1,在获取第一终端的屏幕截图信息之前,触发所述第二终端启动第一线程;
S2,基于所述第一线程建立所述第一终端与所述第二终端的之间套接字连接。
可选地,处理器还被设置为存储用于执行以下步骤的计算机程序:
S1,在获取第一终端的屏幕截图信息之前,触发所述第二终端启动第二线程,其中,所述第二线程用于在获取所述屏幕截图信息失败的情况下,重启获取所述屏幕截图信息的操作。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种同步显示方法,其特征在于,包括:
获取第一终端的屏幕截图信息,并将所述屏幕截图信息转化为对应的位图;
获取所述第一终端的屏幕的旋转状态;
在根据所述旋转状态确定所述屏幕发生旋转的情况下,对所述位图执行与所述旋转状态对应的转置操作,将转置操作后的位图转化为图片字节流,并将所述图片字节流传输到第二终端以同步显示与所述位图对应的屏幕截图信息;以及
在根据所述旋转状态确定所述屏幕未发生旋转的情况下,将所述位图转化为图片字节流,并将所述图片字节流传输到所述第二终端以同步显示与所述位图对应的屏幕截图信息;
其中,在确定所述屏幕发生旋转的情况下,对所述位图进行与所述旋转状态对应的转置操作包括:获取视窗管理对象的预设旋转函数的返回值,其中,所述返回值用于指示所述屏幕是否旋转以及旋转角度;按照所述返回值对所述位图执行与所述旋转状态对应的转置操作。
2.根据权利要求1所述的方法,其特征在于,在获取第一终端的屏幕截图信息之前,所述方法还包括:
触发所述第二终端启动第一线程;
基于所述第一线程建立所述第一终端与所述第二终端的之间套接字连接。
3.根据权利要求2所述的方法,其特征在于,将进行转置操作后的位图传输到第二终端以同步显示与所述位图对应的屏幕截图信息包括:
将进行转置操作后的位图转化成图片格式的字节流,并对所述字节流进行封装;
通过所述套接字连接将封装后的字节流传输到所述第二终端以同步显示与所述字节流对应的屏幕截图信息。
4.根据权利要求1所述的方法,其特征在于,在获取第一终端的屏幕截图信息之前,所述方法还包括:
触发所述第二终端启动第二线程,其中,所述第二线程用于在获取所述屏幕截图信息失败的情况下,重启获取所述屏幕截图信息的操作。
5.一种同步显示装置,其特征在于,包括:
第一获取模块,用于获取第一终端的屏幕截图信息,并将所述屏幕截图信息转化为对应的位图;
第二获取模块,用于获取所述第一终端的屏幕的旋转状态;
显示模块,用于在根据所述旋转状态确定所述屏幕发生旋转的情况下,对所述位图执行与所述旋转状态对应的转置操作,将转置操作后的位图转化为图片字节流,并将所述图片字节流传输到第二终端以同步显示与所述位图对应的屏幕截图信息;以及在根据所述旋转状态确定所述屏幕未发生旋转的情况下,将所述位图转化为图片字节流,并将所述图片字节流传输到所述第二终端以同步显示与所述位图对应的屏幕截图信息;
其中,所述显示模块包括:获取单元,用于获取视窗管理对象的预设旋转函数的返回值,其中,所述返回值用于指示所述屏幕是否旋转以及旋转角度;转置单元,用于按照所述返回值对所述位图执行与所述旋转状态对应的转置操作。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
第一触发模块,用于在获取第一终端的屏幕截图信息之前,触发所述第二终端启动第一线程;
建立模块,用于基于所述第一线程建立所述第一终端与所述第二终端的之间套接字连接。
7.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至4任一项中所述的方法。
8.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至4任一项中所述的方法。
CN201910045548.0A 2019-01-17 2019-01-17 同步显示方法及装置、存储介质和电子装置 Active CN109766163B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201910045548.0A CN109766163B (zh) 2019-01-17 2019-01-17 同步显示方法及装置、存储介质和电子装置
US17/042,938 US11340859B2 (en) 2019-01-17 2019-06-03 Synchronous display method, storage medium and electronic device
PCT/CN2019/089770 WO2020147246A1 (zh) 2019-01-17 2019-06-03 同步显示方法及装置、存储介质和电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910045548.0A CN109766163B (zh) 2019-01-17 2019-01-17 同步显示方法及装置、存储介质和电子装置

Publications (2)

Publication Number Publication Date
CN109766163A CN109766163A (zh) 2019-05-17
CN109766163B true CN109766163B (zh) 2020-02-07

Family

ID=66452508

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910045548.0A Active CN109766163B (zh) 2019-01-17 2019-01-17 同步显示方法及装置、存储介质和电子装置

Country Status (3)

Country Link
US (1) US11340859B2 (zh)
CN (1) CN109766163B (zh)
WO (1) WO2020147246A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109766163B (zh) 2019-01-17 2020-02-07 网易(杭州)网络有限公司 同步显示方法及装置、存储介质和电子装置
CN112364616B (zh) * 2019-07-26 2024-04-30 珠海金山办公软件有限公司 一种电子表格的处理方法、装置、电子设备及存储介质
CN110716778B (zh) * 2019-09-10 2023-09-26 创新先进技术有限公司 应用兼容性测试方法、装置及系统
CN110806846A (zh) * 2019-10-11 2020-02-18 北京字节跳动网络技术有限公司 屏幕共享方法、屏幕共享装置、移动终端、存储介质
CN111427524A (zh) * 2020-02-27 2020-07-17 深圳壹账通智能科技有限公司 远程控制的方法、装置、计算机设备及存储介质
CN113360335A (zh) * 2020-03-06 2021-09-07 北京沃东天骏信息技术有限公司 监控终端的方法、装置、设备和计算机可读介质
CN112468871B (zh) * 2020-11-24 2022-10-14 青岛创新奇智科技集团股份有限公司 监控视频播放方法、装置及电子设备
CN113014996B (zh) * 2021-02-18 2022-07-22 上海哔哩哔哩科技有限公司 视频生成方法及装置
CN113189920A (zh) * 2021-05-28 2021-07-30 重庆长安汽车股份有限公司 一种基于Android的车载娱乐信息系统远程控制方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001067245A2 (en) * 2000-03-08 2001-09-13 Marbles, Inc. Remote operation of real-time graphical applications
WO2009029910A2 (en) * 2007-08-31 2009-03-05 Proxpro, Inc. Situation-aware personal information management for a mobile device
US8589423B2 (en) * 2011-01-18 2013-11-19 Red 5 Studios, Inc. Systems and methods for generating enhanced screenshots
US10445051B1 (en) * 2014-03-27 2019-10-15 Amazon Technologies, Inc. Recording and replay of support sessions for computing devices
CN104615300B (zh) * 2014-12-29 2018-12-11 合肥杰发科技有限公司 图像接收装置及其对电子装置的屏幕放置状态的判断方法
JP6122477B2 (ja) * 2015-10-15 2017-04-26 株式会社オプティム 画面共有システム及び画面共有方法
CN105988688A (zh) * 2016-01-22 2016-10-05 腾讯科技(深圳)有限公司 一种截图的方法及装置
CN108347452A (zh) * 2017-01-23 2018-07-31 腾讯科技(深圳)有限公司 远程获取屏幕截图的方法及装置
CN109766163B (zh) * 2019-01-17 2020-02-07 网易(杭州)网络有限公司 同步显示方法及装置、存储介质和电子装置
KR20200136753A (ko) * 2019-05-28 2020-12-08 삼성전자주식회사 외부 전자 장치를 통해 화면 공유 서비스를 제공하기 위한 전자 장치, 방법, 및 컴퓨터 판독가능 매체
US20200380935A1 (en) * 2019-05-31 2020-12-03 Apple Inc. Automatic Display Orientation Configuration

Also Published As

Publication number Publication date
US11340859B2 (en) 2022-05-24
CN109766163A (zh) 2019-05-17
WO2020147246A1 (zh) 2020-07-23
US20210334061A1 (en) 2021-10-28

Similar Documents

Publication Publication Date Title
CN109766163B (zh) 同步显示方法及装置、存储介质和电子装置
US10991151B2 (en) Game rendering method, terminal, and non-transitory computer-readable storage medium
CN111327758B (zh) 摄像头共享方法及装置
CN106878361B (zh) 一种终端应用页面的调试方法、装置及客户端
CN110119350A (zh) 软件开发工具包测试方法、装置和设备及计算机存储介质
CN113312083B (zh) 应用生成方法、装置及设备
CN112468575A (zh) 工业物联网平台的控制方法、装置、电子装置和介质
CN109729346B (zh) 电视的远程调试方法、调试终端、电视终端及系统
CN112882849A (zh) 云应用中的信息推荐方法、装置、系统、设备及存储介质
CN110336712B (zh) 移动终端抓取空中包的方法、装置、存储介质与移动终端
CN107809417A (zh) 基于无线局域网的移动应用开发调试方法
CN111901395A (zh) 多集群切换方法及装置
CN112416617A (zh) 蓝牙设备的控制方法及装置、存储介质、电子装置
CN110753363A (zh) 一种智能设备无线调试系统和方法
CN108289165B (zh) 一种基于手机控制相机的实现方法、装置及终端设备
CN113391931B (zh) 基于蓝牙的远程控制方法、装置、计算机设备和存储介质
CN112367362B (zh) 一种数据处理方法、装置、设备及计算机存储介质
CN104391576A (zh) 一种基于无线以太网的远程输入的方法和装置
CN110943895A (zh) 一种网关机、基于Linux系统的网络数据处理方法及装置
CN112423068A (zh) 智能电视调试方法、装置、移动终端和可读存储介质
CN112671814A (zh) 一种跨平台的设备开发方法、装置及系统
CN115568035A (zh) 一种手机数据的无线提取方法、终端及存储介质
CN113938475B (zh) 一种数据传输方法
CN111767271B (zh) 数据处理方法及装置
CN115883907A (zh) 虚拟直播方法、装置及系统

Legal Events

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