CN112269886B - 共享图像采集方法、窗口共享方法和共享图像采集装置 - Google Patents

共享图像采集方法、窗口共享方法和共享图像采集装置 Download PDF

Info

Publication number
CN112269886B
CN112269886B CN202011255626.9A CN202011255626A CN112269886B CN 112269886 B CN112269886 B CN 112269886B CN 202011255626 A CN202011255626 A CN 202011255626A CN 112269886 B CN112269886 B CN 112269886B
Authority
CN
China
Prior art keywords
window
full
mode
screen
demonstration
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
CN202011255626.9A
Other languages
English (en)
Other versions
CN112269886A (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.)
Youmi Technology Shenzhen Co ltd
Original Assignee
Youmi Technology Shenzhen 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 Youmi Technology Shenzhen Co ltd filed Critical Youmi Technology Shenzhen Co ltd
Priority to CN202011255626.9A priority Critical patent/CN112269886B/zh
Publication of CN112269886A publication Critical patent/CN112269886A/zh
Application granted granted Critical
Publication of CN112269886B publication Critical patent/CN112269886B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/43Querying
    • G06F16/438Presentation of query results
    • G06F16/4387Presentation of query results by the use of playlists
    • G06F16/4393Multimedia presentations, e.g. slide shows, multimedia albums
    • 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/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请实施例公开了一种共享图像采集方法,涉及图像处理技术领域,所述方法包括:当通过指定软件进行共享演示时,获取所述指定软件的演示模式;当所述演示模式为窗口演示模式时,采集与所述窗口演示模式对应的图像作为所述共享图像;当所述演示模式为全屏演示模式时,采集与所述全屏演示模式对应的图像作为所述共享图像。该方法可以识别第三方软件的当前窗口处于窗口演示模式还是全屏演示模式,并可以采集不同模式下的窗口的图像。该方法可以在共享本地的第三方软件的窗口的过程中,当窗口从窗口演示模式与全屏演示模式进行相互切换时,即使窗口演示模式与全屏演示模式属于不同的进程,对应不同的窗口句柄,该方法都可以自动捕获当前窗口的图像。

Description

共享图像采集方法、窗口共享方法和共享图像采集装置
技术领域
本申请涉及图像处理技术领域,具体地,涉及一种共享图像采集方法、窗口共享方法和共享图像采集装置。
背景技术
随着互联网的发展,线上授课,视频会议等业务越来越普及。而在这些业务中往往会需要共享一些内容,比如演示文稿、演示视频等内容,而这些内容可以通过屏幕共享的方式进行共享。
屏幕共享的实现可以通过采集共享端的屏幕图像,并将采集到的屏幕图像进行压缩,然后将压缩的数据传输到接收端,接收端再对压缩数据进行解压以得到共享端的屏幕图像,从而可以实现屏幕共享。
然而,当共享端共享本地的第三方窗口时,第三方窗口可能会被切换成不同的显示模式,由于切换后的显示模式与原先的显示模式处于不同进程,必须用户手动进行相应切换操作才能继续采集第三方窗口的屏幕图像,因此目前的屏幕图像采集方法存在采集不便的问题,降低了用户在共享屏幕时的体验。
发明内容
本申请提供了一种共享图像采集方法、窗口共享方法和共享图像采集装置,以解决上述问题。
第一方面,本申请实施例提供了一种共享图像采集方法,该方法包括:当通过指定软件进行共享演示时,获取指定软件的演示模式;当演示模式为窗口演示模式时,采集与窗口演示模式对应的图像作为共享图像;当演示模式为全屏演示模式时,采集与全屏演示模式对应的图像作为共享图像。
第二方面,本申请实施例提供了一种窗口共享方法,该方法应用于共享端,共享端与接收端连接,该方法包括:通过指定软件进行共享演示时,获取指定软件的演示模式;当演示模式为窗口演示模式时,采集与窗口演示模式对应的图像作为共享图像;当演示模式为全屏演示模式时,采集与全屏演示模式对应的图像作为共享图像;将共享图像发送至接收端,以指示接收端显示共享图像。
第三方面,本申请实施例提供了一种共享图像采集装置,该装置包括:模式获取模块,用于当通过指定软件进行共享演示时,获取指定软件的演示模式;窗口演示模式图像采集模块,用于当演示模式为窗口演示模式时,采集与窗口演示模式对应的图像作为共享图像;全屏演示模式图像采集模块,用于当演示模式为全屏演示模式时,采集与全屏演示模式对应的图像作为共享图像。
第四方面,本申请实施例提供了一种窗口共享装置,该装置包括:获取模块,用于当通过指定软件进行共享演示时,获取指定软件的演示模式;第一采集模块,用于当演示模式为窗口演示模式时,采集与窗口演示模式对应的图像作为共享图像;第二采集模块,用于当演示模式为全屏演示模式时,采集与全屏演示模式对应的图像作为共享图像;发送模块,用于将共享图像发送至接收端,以指示接收端显示共享图像。
第五方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个处理器;存储器;一个或多个应用程序,其中一个或多个应用程序被存储在存储器中被配置为由一个或多个处理器执行,一个或多个应用程序配置用于执行本申请所提供的灰度发布方法。
第六方面,本申请实施例提供了一种计算机可读取存储介质,该计算机可读取存储介质中存储有程序代码,程序代码可被处理器调用执行本申请所提供的灰度发布方法。
本申请实施例提供的共享图像采集方法,通过当通过指定软件进行共享演示时,获取指定软件的演示模式;当演示模式为窗口演示模式时,采集与窗口演示模式对应的图像作为共享图像;当演示模式为全屏演示模式时,采集与全屏演示模式对应的图像作为共享图像。从而可以识别第三方软件处于窗口演示模式还是全屏演示模式,并可以采集不同模式下的窗口的图像。进而可以在共享本地的第三方软件的窗口的过程中,当窗口从窗口演示模式与全屏演示模式进行相互切换时,即使两种模式处于不同的进程和窗口句柄,该方法都可以自动捕获当前焦点窗口的图像,从而简化了屏幕共享时的共享图像的采集,提升了用户体验。
本实施例提供的窗口共享方法,通过当通过指定软件进行共享演示时,获取指定软件的演示模式;当演示模式为窗口演示模式时,采集与窗口演示模式对应的图像作为共享图像;当演示模式为全屏演示模式时,采集与全屏演示模式对应的图像作为共享图像;将共享图像发送至接收端,以指示接收端显示共享图像。从而可以识别第三方软件处于窗口演示模式还是全屏演示模式,并可以采集不同模式下的窗口的共享图像,以简化了屏幕共享时的共享图像的采集然后将其采集的共享图像传输至接收端,以指示接收端显示该共享图像,以实现窗口共享,进而使接收端可以只显示窗口的内容,不会显示整个屏幕的内容,可以有效保护共享人的隐私。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。需要说明的是,以下描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例提供的共享图像采集方法以及窗口共享方法的应用环境示意图;
图2示出了本申请一实施例提供的共享图像采集方法的流程示意图;
图3示出了本申请一实施例提供的共享图像采集方法中的指定软件幻灯片编辑界面的界面示意图;
图4示出了本申请一实施例提供的共享图像采集方法中的指定软件播放幻灯片时的全屏演示界面的界面示意图;
图5示出了本申请另一实施例提供的共享图像采集方法的流程示意图;
图6示出了本申请又一实施例提供的共享图像采集方法的流程示意图;
图7示出了本申请再一实施例提供的共享图像采集方法的流程示意图;
图8示出了本申请一实施例提供的共享图像采集方法中步骤S410的流程示意图;
图9示出了本申请一实施例提供的共享图像采集方法中的指定软件处于全屏窗口模式时的界面示意图;
图10示出了本申请实施例提供的窗口共享方法中判断窗口全屏的方法的流程示意图;
图11示出了本申请一实施例提供的共享图像采集方法中步骤S410的流程示意图;
图12示出了本申请一示例性实施例提供的在窗口演示模式与幻灯片演示模式下的采集图像切换流程的示意图;
图13示出了本申请实施例提供的窗口共享方法的流程示意图;
图14示出了本申请实施例提供的共享图像采集装置的结构框图;
图15示出了本申请实施例提供的窗口共享装置的结构框图;
图16示出了本申请实施例提供的电子设备的结构框图;
图17示出了本申请实施例提供的一种计算机可读取存储介质的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序和先后次序。
目前在视音频通话业务中,实现内容共享一般都是采用的屏幕共享的方式,但是屏幕共享会共享屏幕的所有内容,在实际应用场景中,共享人并不想将其他内容共享给观众,这些其他内容可能涉及共享人的隐私,也可能干扰观众的视线。
那么,这时可以采用窗口共享的方式,即可以只共享指定的一个窗口,除了这个窗口之外,其他任何窗口都不会被展示,即使这个窗口被遮挡了,还是只共享这个窗口,这种窗口共享的方式可以很好地保护共享人的隐私。
而只共享一个窗口,该窗口可能是第三方软件未播放共享内容的操作界面,即窗口演示模式,也可能是第三方软件播放共享内容时的全屏演示界面,即全屏演示模式。这两种模式属于不同的进程,在操作***中,是独立的内存空间。而当这两种模式相互切换时,如何自动捕获当前焦点窗口的图像是一个亟待解决的技术难题。
本申请实施例提供了一种共享图像采集方法、窗口共享方法和共享图像采集装置,以解决上述问题,其中,共享图像采集方法包括:当通过指定软件进行共享演示时,获取指定软件的演示模式;当演示模式为窗口演示模式时,采集与窗口演示模式对应的图像作为共享图像;当演示模式为全屏演示模式时,采集与全屏演示模式对应的图像作为共享图像。该方法可以识别第三方软件的当前焦点窗口是处于窗口演示模式或是全屏演示模式,并可以在这两种模式相互切换时,自动捕获当前焦点窗口的图像。
请参阅图1,图1示出了本申请实施例提供的共享图像采集方法以及窗口共享方法的应用环境示意图,该应用环境100包括共享端110、服务器120以及接收端130。其中,共享端110为至少一个,可以是电脑、手机、平板、可穿戴智能设备等移动终端,用于采集共享图像。接收端130为至少一个,可以是电脑、手机、平板、可穿戴智能设备等移动终端,用于接收并显示共享图像。服务器120为至少一个,可以是传统服务器或者云服务器等,用于将共享图像从共享端110传输到接收端130。其中,服务器120分别与共享端110、接收端130进行通信连接,以进行共享端110、服务器120以及接收端130之间的数据交互。
请参阅图2,图2示出了本申请一实施例提供的共享图像采集方法的流程示意图,该方法可以应用于上述应用环境100中的共享端110,该方法具体可以包括以下步骤:
S110:当通过指定软件进行共享演示时,获取指定软件的演示模式。
其中,指定软件可以是用于展示共享内容的第三方软件,比如播放视频的软件,播放幻灯片的软件等,本申请实施例对此不作具体限制。其中,共享内容可以是在音视频通话业务中,共享端与接收端进行通信连接时,共享端和接收端所显示的内容,该共享内容可以是视频、幻灯片、文档等,本申请实施例对此不作具体限制。
其中,共享演示可以是在音视频通话业务中,共享端与接收端进行通信连接,以使共享端和接收端可以显示共享内容,进行数据交互的一种通信方式,比如屏幕共享或窗口共享等。而从开始进行窗口共享至结束共享整个过程中,指定软件的当前演示界面对应的模式统称为演示模式。其中,演示模式可以是窗口演示模式或者全屏演示模式。
在一些实施方式中,当共享端通过指定软件进行共享演示时,共享端可以获取指定软件的演示模式,可以通过指定软件的应用程序进行获取。本领域技术人员可以向指定软件的应用程序中写入代码,该代码可以用于识别指定软件的演示模式,然后该指定软件的应用程序可以调用该代码,以获取指定软件的演示模式。
在另一些实施方式中,当共享端通过指定软件进行共享演示时,共享端可以获取指定软件的演示模式,可以通过服务器进行获取。服务器可以向指定软件发出获取指令,在指定软件响应于该获取指令后,服务器可以调用用于识别演示模式的代码,以获取指定软件的演示模式,其中,用于识别演示模式的代码可以是预先写入指定软件的应用程序中的代码,也可以是预先写入服务器中的代码,本申请实施例对此不作具体限制。
S120:当演示模式为窗口演示模式时,采集与窗口演示模式对应的图像作为共享图像。
其中,在窗口演示模式下,指定软件未播放共享内容,仍处于可编辑的界面,比如,图3所示的编辑幻灯片的界面,其中a是共享端编辑幻灯片的界面,b是共享端编辑幻灯片时,接收端显示的界面。此时指定软件处于窗口演示模式进程,该窗口演示模式进程在操作***中是一个独立的内存空间,而窗口演示模式进程的图像为窗口演示模式对应的图像。
当演示模式为窗口演示模式时,可以说明此时指定软件未播放共享内容,仍处于可编辑的界面,此时可以采集该可编辑界面的图像,作为共享图像。
在一些实施方式中,采集与窗口演示模式对应的图像作为共享图像,可以通过指定软件的应用程序进行采集,本领域技术人员可以向指定软件的应用程序中写入用于采集图像的代码,然后当演示窗口为窗口演示模式时,指定软件的应用程序可以调用该代码,以采集与窗口演示模式对应的图像作为共享图像。
在另一些实施方式中,采集与窗口演示模式对应的图像作为共享图像,可以通过服务器进行采集,服务器可以每隔一段时间检测第三方软件的演示模式是否为窗口演示模式,当检测到第三方软件的演示模式为窗口演示模式时,可以调用用于采集图像的代码,以采集与窗口演示模式对应的图像作为共享图像。其中,一段时间可以根据实际需求进行设置,比如,一段时间可以是0.1秒,本申请实施例对此不作具体限制。其中,用于采集图像的代码是可以预先写入指定软件的应用程序中的代码,也可以是预先写入服务器中的代码,本申请实施例对此不作具体限制。
S130:当演示模式为全屏演示模式时,采集与全屏演示模式对应的图像作为共享图像。
其中,在全屏演示模式下,指定软件播放共享内容,处于全屏演示界面,比如图4所示的播放幻灯片时的全屏演示界面,其中a是共享端播放幻灯片时的全屏演示界面,b是共享端播放幻灯片时,接收端显示的界面,此时指定软件处于全屏演示模式进程,该全屏演示模式进程在操作***中是一个独立的内存空间,而全屏演示模式进程的图像为全屏演示模式对应的图像。
当演示模式为全屏演示模式时,可以说明此时指定软件正在播放共享内容,处于全屏演示界面,此时可以采集该全屏演示界面的图像,作为共享图像。
在一些实施方式中,采集与全屏演示模式对应的图像作为共享图像,可以通过指定软件的应用程序进行采集,可以向指定软件的应用程序中写入用于采集图像的代码,然后当演示窗口为全屏演示模式时,应用程序可以调用该代码,以采集与全屏演示模式对应的图像作为共享图像。
在另一些实施方式中,采集与全屏演示模式对应的图像作为共享图像,可以通过服务器进行采集,服务器可以每隔一段时间检测指定软件的演示模式是否为窗口演示模式,当检测到指定软件的演示模式为全屏演示模式时,可以调用用于采集图像的代码,以采集与全屏演示模式对应的图像作为共享图像。其中,一段时间可以根据实际需求进行设置,比如,一段时间可以是0.01秒,本申请实施例对此不作具体限制。其中,用于采集图像的代码是可以预先写入指定软件的应用程序中的代码,也可以是预先写入服务器中的代码,本申请实施例对此不作具体限制。
在本实施例中,共享图像采集方法通过指定软件进行共享演示时,获取指定软件的演示模式;当演示模式为窗口演示模式时,采集与窗口演示模式对应的图像作为共享图像;当演示模式为全屏演示模式时,采集与全屏演示模式对应的图像作为共享图像。从而可以获取指定软件的不同演示模式,并可以在指定软件处于不同演示模式时,自动采集不同演示模式对应的图像,即在窗口共享的过程中,当指定软件的不同演示模式进行相互切换时,利用该方法可以自动捕获指定软件当前焦点窗口的图像。
请参阅图5,图5示出了本申请另一实施例提供的共享图像采集方法的流程示意图,该方法具体可以包括以下步骤:
S210:当通过指定软件进行共享演示时,获取指定软件的演示模式。
在本实施例中,步骤S210的具体描述请参阅步骤S110,在此不再过多赘述。
S220:当演示模式为窗口演示模式时,获取窗口演示模式对应的窗口的句柄。
其中,句柄是一个***内部数据结构的引用,是一种内部代码。通过句柄可以引用受***控制的特殊元素,比如,窗口、位图、图标、内存块、光标、字体、菜单等。
其中,窗口演示模式对应的窗口可以是指定软件未播放共享内容时的可编辑界面对应的窗口。
在一些实施方式中,当演示模式为窗口演示模式时,获取窗口演示模式对应的窗口的句柄,可以通过指定软件的应用程序进行获取,可以预先在指定软件的应用程序写入用于获取句柄的代码,当演示模式为窗口演示模式时,指定软件的应用程序可以调用该代码,以获取窗口演示模式对应的窗口的句柄。其中,用于获取句柄的代码包括获取句柄的函数,比如FindWindow函数,其中,获取句柄的函数可以根据实际需求从现有的函数中进行选择,也可以是由本领域技术人员自定义的函数,本申请实施例对此不作具体限制。
在另一些实施方式中,当演示模式为窗口演示模式时,获取窗口演示模式对应的窗口的句柄,可以通过服务器进行获取,服务器可以每隔一段时间检测指定软件的演示模式是否为窗口演示模式,当演示模式为窗口演示模式时,服务器可以调用用于获取句柄的代码,以获取窗口演示模式对应的窗口的句柄。其中,用于获取句柄的代码可以是预先写入指定软件的应用程序中的代码,也可以是预先写入服务器中的代码,本申请实施例对此不作具体限制。其中,用于获取句柄的代码包括获取句柄的函数,比如FindWindow函数,其中,获取句柄的函数可以根据实际需求从现有的函数中进行选择,也可以是由本领域技术人员自定义的函数,本申请实施例对此不作具体限制。
S230:根据窗口演示模式对应的窗口的句柄,采集与窗口演示模式对应的图像作为共享图像。
在一些实施方式中,根据窗口演示模式对应的窗口的句柄,采集与窗口演示模式对应的图像,可以通过指定软件的应用程序进行采集。指定软件的应用程序可以根据窗口演示模式对应的窗口的句柄获取共享端的设备环境,其中,设备环境是指软件环境,可以包括指定软件的运行环境,比如Windows,Macos,Linux等,设备环境还包括指定软件运行时所需的周边环境、以及除指定软件之外的应用层软件。然后根据共享端的设备环境可以获取窗口演示模式对应的窗口的大小,之后可以使用***应用程序接口(ApplicationProgramming Interface,API)接口,基于窗口演示模式对应的窗口的大小,获取窗口的位图,并将位图转化成YUV420p格式的原始视频数据,该原始视频数据包括与窗口演示模式对应的图像,即共享图像。
在另一些实施方式中,根据窗口演示模式对应的窗口的句柄,采集与窗口演示模式对应的图像,可以通过服务器进行采集。服务器可以调用用于获取句柄的代码,以获取窗口演示模式对应的窗口的句柄,然后基于该句柄可以获取共享端的设备环境,之后基于共享端的设备环境可以获取窗口演示模式对应的窗口的大小,并基于窗口演示模式对应的窗口的大小,通过***应用程序接口(Application Programming Interface,API)接口获取窗口的位图,进一步,可以将该位图转化成YUV420p格式的原始视频数据,该原始视频数据包括与窗口演示模式对应的图像,即共享图像。其中,用于获取句柄的代码可以是预先写入指定软件的应用程序中的代码,也可以是预先写入服务器中的代码,本申请实施例对此不作具体限制。
S240:当演示模式为全屏演示模式时,采集与全屏演示模式对应的图像作为共享图像。
在本实施例中,步骤S240的具体描述请参阅步骤S130,在此不再过多赘述。
本实施例中,共享图像采集方法通过指定软件进行共享演示时,获取指定软件的演示模式;当演示模式为窗口演示模式时,获取窗口演示模式对应的窗口的句柄;根据窗口演示模式对应的窗口的句柄,采集与窗口演示模式对应的图像作为共享图像;当演示模式为全屏演示模式时,采集与全屏演示模式对应的图像作为共享图像。从而可以在共享指定软件的窗口的过程中,采集窗口演示模式的图像,可以在窗口演示模式和全屏演示模式切换时,采集不同演示模式对应的图像。
请参阅图6,图6示出了本申请又一实施例提供的共享图像采集方法的流程示意图,该方法具体可以包括以下步骤:
S310:当通过指定软件进行共享演示时,获取指定软件的演示模式。
S320:当演示模式为窗口演示模式时,采集与窗口演示模式对应的图像作为共享图像。
其中,步骤S310和步骤S320的具体描述请参阅步骤S110和步骤S120,在此不再过多赘述。
S330:当演示模式为全屏演示模式时,获取全屏演示模式对应的窗口的句柄。
其中,全屏演示模式对应的窗口,可以是指定软件播放共享内容时的全屏演示界面对应的窗口。
当演示模式为全屏演示模式时,获取全屏演示模式对应的窗口的句柄,可以通过指定软件的应用程序进行获取,也可以通过其他方式进行获取,本申请实施例对此不作具体限制。
在一些实施方式中,可以预先在指定软件的应用程序写入用于获取句柄的代码,当演示模式为全屏演示模式时,指定软件的应用程序可以调用该代码,以获取窗口演示模式对应的窗口的句柄。其中,用于获取句柄的代码包括可以获取句柄的函数,比如FindWindow函数,其中,可以获取句柄的函数可以根据实际需求从现有的函数中进行选择,也可以是由本领域技术人员自定义的函数,本申请实施例对此不作具体限制。
在另一些实施方式中,服务器可以每隔一段时间检测指定软件的演示模式是否为全屏演示模式,当演示模式为全屏演示模式时,服务器可以调用用于获取句柄的代码,以获取全屏演示模式对应的窗口的句柄。其中,用于获取句柄的代码可以是预先写入指定软件的应用程序中的代码,也可以是预先写入服务器中的代码,本申请实施例对此不作具体限制。其中,用于获取句柄的代码包括可以获取句柄的函数,比如FindWindow函数,其中,可以获取句柄的函数可以根据实际需求从现有的函数中进行选择,也可以是由本领域技术人员自定义的函数,本申请实施例对此不作具体限制。
S340:根据全屏演示模式对应的窗口的句柄,采集与全屏演示模式对应的图像作为共享图像。
在一些实施方式中,根据全屏演示模式对应的窗口的句柄,采集与全屏演示模式对应的图像作为共享图像,可以通过指定软件的应用程序进行采集。指定软件的应用程序可以根据全屏演示模式对应的窗口的句柄得到共享端的设备环境,然后根据共享端的设备环境可以取得全屏演示模式对应的窗口的大小,之后可以使用***应用程序接口(Application Programming Interface,API)接口,基于全屏演示模式对应的窗口的大小,抓取窗口的位图,并将位图转化成YUV420p格式的原始视频数据,该原始视频数据包括与全屏演示模式对应的图像,即共享图像。
在另一些实施方式中,根据全屏演示模式对应的窗口的句柄,采集与全屏演示模式对应的图像作为共享图像,可以通过服务器进行采集。服务器可以调用用于获取句柄的代码,以得到全屏演示模式对应的窗口的句柄,然后基于该句柄获取共享端的设备环境,之后基于共享端的设备环境可以取得全屏演示模式对应的窗口的大小,并基于全屏演示模式对应的窗口的大小,通过***应用程序接口(Application Programming Interface,API)接口抓取窗口的位图,进一步,可以将该位图转化成YUV420p格式的原始视频数据,该原始视频数据包括与全屏演示模式对应的图像,即共享图像。其中,用于获取句柄的代码可以是预先写入在指定软件的应用程序中的代码,也可以是预先写入服务器中的代码,本申请实施例对此不作具体限制。
在本实施例中,共享图像采集方法通过指定软件进行共享演示时,获取指定软件的演示模式;当演示模式为窗口演示模式时,采集与窗口演示模式对应的图像作为共享图像;当演示模式为全屏演示模式时,获取全屏演示模式对应的窗口的句柄;根据全屏演示模式对应的窗口的句柄,采集与全屏演示模式对应的图像作为共享图像。从而可以在共享指定软件的窗口的过程中,采集全屏演示模式的图像,还可以在窗口演示模式和全屏演示模式切换时,采集不同演示模式对应的图像。
请参阅图7,图7示出了本申请再一实施例提供的共享图像采集方法的流程示意图。该方法具体可以包括以下步骤:
S510:当通过指定软件进行共享演示时,通过指定线程检测指定软件处于全屏演示模式或者窗口演示模式。
其中,线程是操作***能够进行运算调度的最小单位。该线程被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程可以并行执行不同的任务。本实施例中的指定线程可以是预先写入第三方软件的进程中的线程,该指定线程可以包括至少两个线程,该至少两个线程可以是并行关系,也可以是串行关系,本申请实施例对此不作具体限制。
在一些实施方式中,指定线程可以包括第一线程和第二线程,其中,第一线程和第二线程可以为串行关系。请参阅图8,图8示出了本申请一实施例提供的共享图像采集方法中步骤S410的流程示意图。该步骤S410具体可以包括以下步骤:
S411A:当通过指定软件进行共享演示时,通过第一线程检测指定软件是否进入全屏演示窗口。
其中,第一线程可以预先写入指定软件的进程中,用于当指定软件进行共享演示时,检测指定软件是否进入全屏演示窗口。
在一些实施方式中,S411A,具体可以包括以下步骤:
首先,通过第一线程获取显示器至少两个边角的坐标像素点的窗口句柄。
其中,边角可以是显示器的左上角、左下角、右上角以及右下角。第一线程可以从上述四个角中选择至少两个角,并获取该至少两个角的坐标像素点的窗口句柄。本领域技术人员应当了解,每个边角的坐标像素点的窗口句柄各不相同。
其次,根据显示器至少两个边角的坐标像素点的窗口句柄,确定指定软件是否处于全屏窗口模式,其中,全屏窗口模式包括将窗口演示模式对应的窗口放大至全屏的模式或全屏演示模式,如图9所示,其中图9中的a是共享端处于将窗口模式对应的窗口放大至全屏的模式时,共享端显示的界面,图9中的b是共享端处于将窗口模式对应的窗口放大至全屏的模式时,接收端显示的界面;如图4所示,其中图4中的a是共享端处于全屏演示模式时的界面,图4中的b共享端处于全屏演示模式时接收端显示的界面。
其中,全屏窗口模式可以是当指定软件的当前焦点窗口大小与屏幕大小相同时,指定软件的显示界面。该全屏窗口模式可以包括将窗口演示模式对应的窗口放大至全屏的模式,或全屏演示模式。
在一些实施方式中,显示器至少两个边角的坐标像素点的窗口句柄中每个窗口句柄分别对应一个应用进程。比如,窗口句柄WndID_LT对应应用进程Process1,窗口句柄WndID_LB对应应用进程Process2,窗口句柄WndID_RT对应应用进程Process3,窗口句柄WndID_RB对应应用进程Process4。根据显示器至少两个边角的坐标像素点的窗口句柄,确定指定软件是否处于全屏窗口模式的具体实施方式可以如下:
先获取显示器至少两个边角的坐标像素点的窗口句柄的窗口分辨率。
其中,屏幕分辨率是屏幕图像的精密度,是指显示器所能显示的像素的数量。由于屏幕或者窗口上的点、线和面都是由像素组成的,显示器可显示的像素越多,画面就越精细,同样的屏幕或者窗口区域内能显示的信息也越多。
需要说明的是,获取显示器至少两个边角的坐标像素点的窗口句柄的窗口分辨率可以通过指定软件的应用程序进行获取,也可以通过其他方式进行获取,本申请实施例对此不作具体限制。
在一些实施方式中,指定软件的应用程序可以调用用于获取窗口分辨率的函数,以获取显示器至少两个边角的坐标像素点的窗口句柄的窗口分辨率。其中,用于获取窗口分辨率的函数可以是现有的函数,也可以是本领域技术人员自定义的函数,本申请实施例对此不作具体限制。
在另一些实施方式中,服务器可以向指定软件发送请求,以请求获取显示器至少两个边角的坐标像素点的窗口句柄;指定软件可以响应于该请求,调用用于获取窗口分辨率的函数,以获取显示器至少两个边角的坐标像素点的窗口句柄的窗口分辨率,并将获取到的窗口句柄的窗口分辨率发送给服务器,服务器即可获得窗口句柄的分辨率。或者,在一些实施方式中,服务器可以包括预写入其中的用于获取窗口分辨率的函数,然后可以直接调用该函数,以获取窗口句柄的窗口分辨率。其中,用于获取窗口分辨率的函数可以是现有的函数,也可以是本领域技术人员自定义的函数,本申请实施例对此不作具体限制。
再当显示器至少两个边角的坐标像素点的窗口句柄的窗口分辨率等于屏幕的分辨率,且显示器至少两个边角的坐标像素点的窗口句柄对应的应用进程名称一致时,确定指定软件处于全屏窗口模式。
需要说明的是,当边角的坐标像素点的窗口句柄的窗口分辨率等于屏幕的分辨率时,可以认为该边角对应的窗口处于全屏窗口模式,这样可以有效避免指定软件的窗口被其他窗口遮挡而判断失误的情况。当显示器至少两个边角的坐标像素点的窗口句柄的窗口分辨率等于屏幕的分辨率时,可以说明至少有两个边角对应的窗口处于全屏窗口模式,此时可以进一步将至少两个边角对应的进程名称进行匹配,当至少两个边角对应的进程名称一致时,可以确定指定软件处于全屏窗口模式。例如,当有两个边角对应的窗口都处于全屏窗口模式时,第一边角对应的进程名称为Process1,第二边角对应的进程名称为Process2,此时可以确定第一边角与第二边角对应的进程名称一致,进而可以确定指定软件处于全屏窗口模式。
在本实施方式中,可以根据显示器至少两个边角的坐标像素点的窗口句柄的窗口分辨率确定指定软件是否处于全屏窗口模式,当显示器至少两个边角的坐标像素点的窗口句柄的窗口分辨率等于屏幕的分辨率,且显示器至少两个边角的坐标像素点的窗口句柄对应的应用进程名称一致时,可以确定指定软件处于全屏窗口模式。
再次,当确定指定软件处于全屏窗口模式时,确定全屏窗口模式对应的进程名称是否与预设的全屏演示模式对应的进程名称一致。
需要说明的是,当指定软件处于全屏窗口模式时,可能指定软件未播放共享内容,只是将可编辑的窗口放大至全屏了,此时指定软件仍处于窗口演示模式;也可能是指定软件正在播放共享内容,此时指定软件处于全屏演示模式。所以需要进一步确定全屏窗口模式对应的进程名称是否与预设的全屏演示模式对应的进程名称一致,以确定指定软件是否进入全屏演示窗口。
最后,当全屏窗口模式对应的进程名称与预设的全屏演示模式对应的进程名称一致时,确定指定软件进入全屏演示窗口。
其中,预设的全屏演示模式对应的进程名称可以是指定软件处于全屏演示模式时对应的进程名称,当全屏窗口模式对应的进程名称与预设的全屏演示模式对应的进程名称一致时,可以说明此时指定软件正在播放共享内容,从而可以确定指定软件进入全屏演示窗口。
在本实施方式中,确定指定软件是否进入全屏演示窗口,可以通过第一线程获取显示器至少两个边角的坐标像素点的窗口句柄,然后可以根据该窗口句柄确定指定软件是否处于全屏窗口模式,再将全屏窗口模式与预设的全屏演示模式进行比对,当全屏演示窗口模式与预设的全屏演示模式一致时,确定指定软件进入全屏演示窗口。
在一些实施方式中,判断指定软件是否进入全屏演示窗口,可以通过第一线程可以每隔一段时间检测显示器的左上角、左下角、右上角、右下角等四个坐标像素点的窗口句柄。其中,如图10所示,显示器4个角的窗口句柄各不相同,且4个窗口句柄对应4个不同的应用进程,比如,左上角的窗口句柄名称为WndID_LT,该窗口句柄对应的应用进程名称,即程序ID1为Process1;左下角的窗口句柄名称为WndID_LB,该窗口句柄对应的应用进程名称,即程序ID2为Process2;右上角的窗口句柄名称为WndID_RT,该窗口句柄对应的应用进程名称,即程序ID3为Process3;右下角的窗口句柄名称为WndID_RB,该窗口句柄对应的应用进程名称,即程序ID4为Process4。
如果4个窗口句柄中,有一个窗口句柄的窗口分辨率等于屏幕的额分辨率,就认为该应用进程处于全屏窗口,这样可以有效避免被其他窗口遮挡,而判断失误的情况。如果4个窗口句柄,有2个或者2个以上的应用进程都处于全屏窗口,且全屏窗口对应的应用进程名称一致,例如,Process1和Process2出现了全屏窗口,且Process1和Process2名称相同,则判断指定软件处于全屏窗口模式。
当指定软件是文字处理***(Word Processing System,WPS)时,如果WPS进入幻灯片全屏窗口模式的进程名称为预设的幻灯片进程名称,比如,wps.exe,则确定WPS进入全屏演示窗口。
S412A:当通过第一线程检测到指定软件进入全屏演示窗口时,确定指定软件处于全屏演示模式。
需要说明的是,当通过第一线程检测到指定软件进入全屏演示窗口时,可以说明此时指定软件正在播放共享内容,此时可以确定指定软件处于全屏演示模式。
S413A:通过第二线程检测指定软件是否退出全屏演示窗口。
其中,第二线程可以预先写入指定软件的进程中,用于检测指定软件是否退出全屏演示窗口。
在一些实施方式中,通过第二线程检测指定软件是否退出全屏演示窗口的具体实施方式可以如下:
首先,通过第二线程获取全屏演示模式对应的窗口的句柄。
其中,第二线程可以每隔一段时间获取全屏演示模式对应的窗口的句柄,具体地,第二线程可以调用函数,以获取句柄。其中,一段时间可以根据实际需求进行设置,比如,一段时间可以是100毫秒,本申请实施例对此不作具体限制。需要说明的是,函数可以是现有的函数,也可以是本领域技术人员自定义的函数,本申请实施例对此不作具体限制。
其次,当全屏演示模式对应的窗口的句柄无效时,确定指定软件退出全屏演示窗口。
需要说明的是,当窗口出现变化时,句柄也会随之而变化,不再是原来的那个句柄,所以可以将指定软件当前焦点窗口的句柄与全屏演示模式对应的窗口的句柄进行匹配,当指定软件当前焦点窗口的句柄与全屏演示模式对应的窗口的句柄不一致时,可以确定全屏演示模式对应的窗口的句柄无效,此时可以说明指定软件的窗口已发生变化,可以确定指定软件退出全屏演示窗口。
在本实施方式中,可以通过第二线程获取全屏演示模式对应的窗口的句柄,并判断该句柄是否有效,当该句柄无效时,可以确定指定软件退出全屏演示窗口。
S414A:当通过第二线程检测到指定软件退出全屏演示窗口时,确定指定软件处于窗口演示模式。
需要说明的是,当通过第二线程检测到指定软件退出全屏演示窗口时,可以说明此时指定软件未播放共享内容,仍处于可编辑的界面,此时可以确定指定软件处于窗口演示模式。
在本实施方式中,先通过第一线程检测指定软件是否进入全屏演示窗口;当通过第一线程检测到指定软件进入全屏窗口时,确定指定软件处于全屏窗口模式;然后再通过第二线程检测指定软件是否退出全屏演示窗口;并当通过第二线程检测到指定软件退出全屏演示窗口时,确定指定软件处于窗口演示模式。本实施方式可以自动识别指定软件是否进入或者退出全屏演示窗口,以自动识别指定软件的当前窗口处于全屏演示模式或者窗口演示模式。
在另一些实施方式中,指定线程可以包括第一线程和第二线程,其中,第一线程和第二线程可以为串行关系。请参阅图11,图11示出了本申请一实施例提供的共享图像采集方法中步骤S410的流程示意图。该步骤S410具体可以包括以下步骤:
S411B:当通过指定软件进行共享演示时,通过第二线程检测指定软件是否退出全屏演示窗口。
S412B:当通过第二线程检测到指定软件退出全屏窗口时,确定指定软件处于窗口演示模式。
其中,步骤S411B和步骤S412B的具体描述请参阅步骤S413A和步骤S414A,在此不做过多赘述。
S413B:通过第一线程检测指定软件是否进入全屏演示窗口。
S414B:当通过第一线程检测到指定软件进入全屏窗口时,确定指定软件处于全屏演示模式。
其中,步骤S413B和步骤S414B的具体描述请参阅步骤S411A和步骤S412A,在此不再过多赘述。
在本实施方式中,先通过第二线程检测指定软件是否退出全屏演示窗口;当通过第二线程检测到指定软件退出全屏演示窗口时,确定指定软件处于窗口演示模式;然后通过第一线程检测指定软件是否进入全屏演示窗口,并当通过第一线程检测到指定软件进入全屏演示窗口时,确定指定软件处于全屏演示模式。本实施方式可以自动识别指定软件是否退出或者进入全屏演示窗口,以自动识别指定软件处于窗口演示模式或者全屏演示模式。
S420:当演示模式为窗口演示模式时,采集与窗口演示模式对应的图像作为共享图像。
S430:当演示模式为全屏演示模式时,采集与全屏演示模式对应的图像作为共享图像。
其中,步骤S420和步骤S430的具体描述请参阅步骤S120和步骤S130,在此不做过多赘述。
在实际应用中,作为一种示例,指定软件为WPS,如图12所示,在窗口演示模式与幻灯片演示模式下的采集图像切换流程可以如下:
首先,WPS的应用程序开始采集WPS窗口演示模式进程的图像;当共享者开始播放幻灯片时,需要通过识别全屏窗口对应的进程名称,进行匹配识别;WPS的应用进程可以分别识别全屏左上角、左下角、右上角、右下角等坐标点,并进行自适应判定:如果全屏播放进程为WPS匹配的进程是,需要自动切换到采集幻灯片进程的图像;当采集幻灯片进程的图像时,需要停止窗口模式下的动作;然后可以开始采集幻灯片进程的图像;当幻灯片进程对应的窗口退出时,自动切换至窗口模式的流程。
具体地,WPS的应用进程开始运行,此时,WPS软件处于窗口演示模式,此时,可以采集窗口演示模式对应的图像作为共享图像;然后利用第一线程检测WPS是否出现全屏窗口;再判断显示器四个角的坐标像素点的窗口句柄的窗口分辨率是否等于显示器的分辨率;当显示器四个角的坐标像素点的窗口句柄的窗口分辨率等于显示器的分辨率时,确定WPS处于全屏;进一步再判断WPS窗口对应的进程名称是否为wps.exe;当WPS窗口对应的进程名称为wps.exe时,停止采集窗口演示模式对应的图像,并停止第一线程的检测操作;然后开始采集全屏演示模式,即图中的幻灯片模式对应的图像;再利用第二线程检测WPS的窗口状态;当第二线程检测到幻灯片窗口已经关闭时,停止采集幻灯片模式对应的图像,并停止第二线程的检测操作;最后自动切换至窗口演示模式对应的流程。
在本实施例中,共享图像采集方法通过指定软件进行共享演示时,通过指定线程检测指定软件处于全屏演示模式或者窗口演示模式;当演示模式为窗口演示模式时,采集与窗口演示模式对应的图像作为共享图像;当演示模式为全屏演示模式时,采集与全屏演示模式对应的图像作为共享图像。从而通过配置指定线程,并利用指定线程识别指定软件处于全屏演示模式或者窗口演示模式,可以有效提高识别效率。
请参阅图13,图13示出了本申请实施例提供的窗口共享方法的流程示意图,该方法应用于图1的应用环境100,该方法具体可以包括以下步骤:
S510:当通过指定软件进行共享演示时,获取指定软件的演示模式。
在一些实施方式中,当共享端通过指定软件进行共享演示时,共享端获取指定软件的演示模式。
S520:当演示模式为窗口演示模式时,采集与窗口演示模式对应的图像作为共享图像。
在一些实施方式中,当共享端确定演示模式为窗口演示模式时,共享端采集与窗口演示模式对应的图像作为共享图像。
S530:当演示模式为全屏演示模式时,采集与全屏演示模式对应的图像作为共享图像。
在一些实施方式中,当共享端确定演示模式为全屏演示模式时,共享端采集与全屏演示模式对应的图像作为共享图像。
其中,步骤S510至步骤S530的具体描述请参阅步骤S110至步骤S130,在此不再过多赘述。
S540:将共享图像发送至接收端,以指示接收端显示共享图像。
在一些实施方式中,共享端将共享图像发送至接收端。接收端在接收到共享图像后,显示该共享图像,其中,当接收端为窗口显示时,在该窗口仅显示该共享图像,接收端为全屏显示时,共享图像占满该接收端的屏幕。
其中,共享端将共享图像发送至接收端,共享端可以先对采集到的共享图像进行编码,并经过实时传输协议(Real-time Transport Protocol,RTP)对编码后的共享图像进行打包,然后将打包后的共享图像发送至接收端,以指示接收端显示共享图像。其中,共享端对采集到的图像进行编码可以依据H.264标准、联合图像专家组(Joint PhotographicExperts Group,JPEG)的图像编码标准等,本申请实施例对此不作具体限制。
需要说明的是,窗口共享方法除了共享端可以作为执行主体之外,服务器也可以作为执行主体以执行窗口共享方法。
在本实施例中,窗口共享方法通过指定软件进行共享演示时,获取指定软件的演示模式;当演示模式为窗口演示模式,采集与窗口演示模式对应的图像作为共享图像;当演示模式为全屏演示模式时,采集与全屏演示模式对应的头像作为共享图像;将共享图像发送至接收端,以指示接收端显示共享图像。从而可以识别指定软件处于窗口演示模式或全屏演示模式,并可以采集不同模式对应的图像,以实现自适应采集指定软件当前焦点窗口的图像。该方法还可以将采集到共享图像发送至接收端,以指示接收端显示共享图像,以实现窗口共享。该方法通过共享指定的一个窗口,除了这个窗口之外,其他任何窗口都不会被展示,即使这个窗口被遮挡了,还是只显示这个窗口,不会显示整个屏幕,这样,当共享人不想把除共享内容以外的其他内容共享出去时,就能有效的保护共享人的个人隐私,可以带给用户更好的体验。
请参阅图14,图14示出了本申请实施例提供的共享图像采集装置的结构框图,该共享图像采集装置1400包括模式获取模块1410、窗口演示模式图像采集模块1420以及全屏演示图像采集模块1430,具体地:
模式获取模块1400,用于当通过指定软件进行共享演示时,获取指定软件的显示模式。
窗口演示模式图像采集模块1410,用于当演示模式为窗口演示模式时,采集与窗口演示模式对应的图像作为共享图像。
全屏演示模式图像采集模块1420,用于当演示模式为全屏演示模式时,采集与全屏演示模式对应的图像作为共享图像。
可选地,窗口演示模式图像采集模块1410可以包括第一获取子模块和第一采集子模块,其中:
第一获取子模块,用于当演示模式为窗口演示模式时,获取窗口演示模式对应的窗口的句柄。
第一采集子模块,用于根据窗口演示模式对应的窗口的句柄,采集与窗口演示模式对应的图像作为共享图像。
可选地,全屏演示模式图像采集模块1420可以包括第二获取子模块和第二采集子模块,其中:
第二获取子模块,用于当演示模式为全屏演示模式时,获取全屏演示模式对应的窗口的句柄。
第二采集子模块,用于根据全屏演示模式对应的窗口的句柄,采集与全屏演示模式对应的图像作为共享图像。
可选地,模式获取模块1400可以包括模式确定子模块,其中:
模式确定子模块,用于当通过指定软件进行共享演示时,通过指定线程检测指定软件处于全屏演示模式或者窗口演示模式。
其中,指定线程包括第一线程和第二线程,第一线程和第二线程为串行关系。可选地,模式确定子模块可以包括第一检测单元、第一确定单元、第二检测单元以及第二确定单元,其中:
第一检测单元,用于当通过指定软件进行共享演示时,通过第一线程检测指定软件是否进入全屏演示窗口。
第一确定单元,当通过第一线程检测到指定软件进入全屏演示窗口时,确定指定软件处于全屏演示模式。
第二检测单元,用于当第二线程检测指定软件是否退出全屏演示窗口。
第二确定单元,用于当通过第二线程检测到指定软件退出全屏演示窗口时,确定指定软件处于窗口演示模式。
进一步,第一检测单元,还用于通过第一线程获取显示器至少两个边角的坐标像素点的窗口句柄;根据显示器至少两个边角的坐标像素点的窗口句柄,确定指定软件是否处于全屏窗口模式,其中,全屏窗口模式可以包括窗口演示模式对应的窗口放大至全屏的模式或全屏演示模式;当确定指定软件处于全屏窗口模式时,确定全屏窗口模式对应的进程名称是否与预设的全屏演示模式进程名称一致;当全屏窗口模式对应的进程名称与预设的全屏演示模式进程名称一致时,确定指定软件进入全屏演示窗口。
其中,显示器至少两个边角的坐标像素点的窗口句柄中的每个窗口句柄分别对应一个应用进程。第一检测单元,还用于获取显示器至少两个边角的坐标像素点的窗口句柄的窗口分辨率;当显示器至少两个边角的坐标像素点的窗口句柄的窗口分辨率等于屏幕的分辨率,且显示器至少两个边角的坐标像素点的窗口句柄对应的应用进程名称一致时,确定指定软件处于全屏窗口模式。
进一步,第二检测单元,还用于通过第二线程获取全屏演示模式对应的窗口的句柄;当全屏演示模式对应的窗口的句柄无效时,确定指定软件退出全屏演示窗口。
领域的技术人员可以清楚地了解到,本申请实施例提供的共享图像采集装置能够实现本申请提供的共享图像采集方法实施例中的各个过程,上述描述装置和模块的具体工作过程,可以参阅前述方法实施例中的对应过程,在此不再过多赘述。
本申请提供的实施例中,所显示或讨论的模块相互之间的耦合、直接耦合或通信连接,可以是通过一些接口、装置或模块的间接耦合或通信耦合,可以是电性、机械或其他形式,本申请实施例对此不作具体限制。
另外,在本申请实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件的功能模块的形式实现。
请参阅图15,图15示出了本申请实施例提供的窗口共享装置的结构框图,该窗口共享装置1500应用共享端,该共享端与接收端连接。该窗口共享装置1500包括获取模块1510、第一采集模块1520、第二采集模块1530以及发送模块1540,其中:
获取模块1510,用于当通过指定软件进行共享演示时,获取指定软件的演示模式。
第一采集模块1520,用于当演示模式为窗口演示模式时,采集与窗口演示模式对应的图像作为共享图像。
第二采集模块1530,用于当演示模式为全屏演示模式时,采集与全屏演示模式赌赢的图像作为共享图像。
发送模块1540,用于将共享图像发送至接收端,以指示接收端显示共享图像。
领域的技术人员可以清楚地了解到,本申请实施例提供的窗口共享装置能够实现本申请提供的窗口共享方法实施例中的各个过程,上述描述装置和模块的具体工作过程,可以参阅前述方法实施例中的对应过程,在此不再过多赘述。
本申请提供的实施例中,所显示或讨论的模块相互之间的耦合、直接耦合或通信连接,可以是通过一些接口、装置或模块的间接耦合或通信耦合,可以是电性、机械或其他形式,本申请实施例对此不作具体限制。
另外,在本申请实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件的功能模块的形式实现。
请参阅图16,图16示出了本申请实施例提供的电子设备的结构框图,该电子设备1600可以是智能设备以及服务器等电子设备。本申请中的电子设备1600可以包括一个或多个如下部件:处理器1610、存储器1620以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器1620中并被配置为由一个或多个处理器1610执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
处理器可以包括一个或多个处理核。处理器1610利用各种接口和线路连接整个电子设备1600内的各个部分,用过运行或执行存储在存储器1620内的指令、程序、代码集或指令集,以及调用运行或执行存储在存储器1620内的数据,执行电子设备1600的各种功能和处理数据。可选地,处理器1610可以采用数字信号处理(digital signal processing,DSP)、现场可编程门阵列(field-programmable gate array,FPGA)、可编辑逻辑阵列(programmable logic array,PLA)中的至少一种硬件形式来实现。处理器1610可集成中央处理器(central processing unit,CPU)、图像处理器(graphics processing unit,GPU)和调制解调器中的一种或几种的组合。其中,CPU主要处理操作***、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1610中,单独通过一块通信芯片进行实现。
存储器1620可以包括随机存储器(random access memory,RAM),也可以包括只读存储器(read-only memory,ROM)。存储器1620可用于存储指令、程序、代码、代码集或指令集,存储器1620可包括存储程序区和存储数据区,其中,存储程序器可存储用于实现操作***的指令、用于实现至少一个功能的指令、用于实现上述各个方法实施例的指令等。存储数据区可以存储电子设备1600在使用中所创建的数据等。
请参阅图17,图17示出了本申请实施例提供的一种计算机可读取存储介质的结构框图。该计算机可读取存储介质1700中存储有程序代码,程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读取存储介质1700可以是诸如闪存、电可擦除可编程只读存储器(electrically-erasable programmable read-only memory,EEPROM)、可擦除可编辑只读存储器(erasable programmable read-only memory,EPROM)、硬盘或者ROM之类的电子存储器。可选地,计算机可读取存储介质1700包括非易失性计算机可读介质(non-transitorycomputer-readable storage medium)。计算机可读取存储介质1700具有执行上述方法中的任何方法步骤的程序代码1710的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码1710可以例如以适当形式进行压缩。
综上所述,本申请实施例提供了一种共享图像采集方法、窗口共享方法和共享图像采集装置,以解决上述问题。
其中,共享图像采集方法通过指定软件进行共享演示时,获取指定软件的演示模式;当演示模式为窗口演示模式时,采集与窗口演示模式对应的图像作为共享图像;当演示模式为全屏演示模式时,采集与全屏演示模式对应的图像作为共享图像。从而可以识别第三方软件的当前焦点窗口是处于窗口演示模式或是全屏演示模式,并可以在这两种模式相互切换时,自动捕获当前焦点窗口的图像。
其中,窗口共享方法通过指定软件进行共享演示时,获取指定软件的演示模式;当演示模式为窗口演示模式时,采集与窗口演示模式对应的图像作为共享图像;当演示模式为全屏演示模式时,采集与全屏演示模式对应的图像作为共享图像;将共享图像发送至接收端,以指示接收端显示共享图像。从而可以采集指定软件的共享图像将其传输给接收端,然后接收端显示该共享图像,以可以实现窗口共享。该方法只显示窗口的内容,不会显示整个屏幕的内容,可以有效保护共享人的隐私。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (8)

1.一种共享图像采集方法,其特征在于,包括:
当通过指定软件进行共享演示时,通过第一线程获取显示器至少两个边角的坐标像素点的窗口句柄;
根据所述显示器至少两个边角的坐标像素点的窗口句柄,确定所述指定软件是否处于全屏窗口模式,所述全屏窗口模式包括将窗口演示模式对应的窗口放大至全屏的模式或全屏演示模式;
当确定所述指定软件处于所述全屏窗口模式时,确定所述全屏窗口模式对应的进程名称是否与预设的全屏演示模式对应的进程名称一致;
当所述全屏窗口模式对应的进程名称与所述预设的全屏演示模式对应的进程名称一致时,确定所述指定软件进入全屏演示窗口;
当通过所述第一线程检测到所述指定软件进入所述全屏演示窗口时,确定所述指定软件处于所述全屏演示模式;
当演示模式为所述窗口演示模式时,采集与所述窗口演示模式对应的图像作为共享图像;
当所述演示模式为所述全屏演示模式时,采集与所述全屏演示模式对应的图像作为所述共享图像。
2.根据权利要求1所述的方法,其特征在于,所述当所述演示模式为所述窗口演示模式时,采集与所述窗口演示模式对应的图像作为共享图像,包括:
当所述演示模式为窗口演示模式时,获取所述窗口演示模式对应的窗口的句柄;
根据所述窗口演示模式对应的窗口的句柄,采集与所述窗口演示模式对应的图像作为所述共享图像。
3.根据权利要求1所述的方法,其特征在于,所述当所述演示模式为所述全屏演示模式时,采集与所述全屏演示模式对应的图像作为所述共享图像,包括:
当所述演示模式为所述全屏演示模式时,获取所述全屏演示模式对应的窗口的句柄;
根据所述全屏演示模式对应的窗口的句柄,采集与所述全屏演示模式对应的图像作为所述共享图像。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过第二线程检测所述指定软件是否退出所述全屏演示窗口,其中,所述第一线程与所述第二线程为串行关系;
当通过所述第二线程检测到所述指定软件退出所述全屏演示窗口时,确定所述指定软件处于所述窗口演示模式。
5.根据权利要求1所述的方法,其特征在于,所述显示器至少两个边角的坐标像素点的窗口句柄中的每个窗口句柄分别对应一个应用进程,所述根据所述显示器至少两个边角的坐标像素点的窗口句柄,确定所述指定软件是否处于全屏窗口模式,包括:
获取所述显示器至少两个边角的坐标像素点的窗口句柄的窗口分辨率;
当所述显示器至少两个边角的坐标像素点的窗口句柄的窗口分辨率等于屏幕的分辨率,且所述显示器至少两个边角的坐标像素点的窗口句柄对应的应用进程名称一致时,确定所述指定软件处于所述全屏窗口模式。
6.根据权利要求4所述的方法,其特征在于,所述通过第二线程检测所述指定软件是否退出所述全屏演示窗口,包括:
通过第二线程获取所述全屏演示模式对应的窗口的句柄;
当所述全屏演示模式对应的窗口的句柄无效时,确定所述指定软件退出所述全屏演示窗口。
7.一种窗口共享方法,其特征在于,应用于共享端,所述共享端与接收端连接,所述方法包括:
当通过指定软件进行共享演示时,通过第一线程获取显示器至少两个边角的坐标像素点的窗口句柄;
根据所述显示器至少两个边角的坐标像素点的窗口句柄,确定所述指定软件是否处于全屏窗口模式,所述全屏窗口模式包括将窗口演示模式对应的窗口放大至全屏的模式或全屏演示模式;
当确定所述指定软件处于所述全屏窗口模式时,确定所述全屏窗口模式对应的进程名称是否与预设的全屏演示模式对应的进程名称一致;
当所述全屏窗口模式对应的进程名称与所述预设的全屏演示模式对应的进程名称一致时,确定所述指定软件进入全屏演示窗口;
当通过所述第一线程检测到所述指定软件进入所述全屏演示窗口时,确定所述指定软件处于所述全屏演示模式;
当演示模式为所述窗口演示模式时,采集与所述窗口演示模式对应的图像作为共享图像;
当所述演示模式为所述全屏演示模式时,采集与所述全屏演示模式对应的图像作为所述共享图像;
将所述共享图像发送至所述接收端,以指示所述接收端显示所述共享图像。
8.一种共享图像采集***,其特征在于,包括:
模式获取模块,用于当通过指定软件进行共享演示时,通过第一线程获取显示器至少两个边角的坐标像素点的窗口句柄;根据所述显示器至少两个边角的坐标像素点的窗口句柄,确定所述指定软件是否处于全屏窗口模式,所述全屏窗口模式包括将窗口演示模式对应的窗口放大至全屏的模式或全屏演示模式;当确定所述指定软件处于所述全屏窗口模式时,确定所述全屏窗口模式对应的进程名称是否与预设的全屏演示模式对应的进程名称一致;当所述全屏窗口模式对应的进程名称与所述预设的全屏演示模式对应的进程名称一致时,确定所述指定软件进入全屏演示窗口;以及当通过所述第一线程检测到所述指定软件进入所述全屏演示窗口时,确定所述指定软件处于所述全屏演示模式;
窗口演示模式图像采集模块,用于当演示模式为所述窗口演示模式时,采集与所述窗口演示模式对应的图像作为共享图像;
全屏演示模式图像模块,用于当所述演示模式为所述全屏演示模式时,采集与所述全屏演示模式对应的图像作为所述共享图像。
CN202011255626.9A 2020-11-11 2020-11-11 共享图像采集方法、窗口共享方法和共享图像采集装置 Active CN112269886B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011255626.9A CN112269886B (zh) 2020-11-11 2020-11-11 共享图像采集方法、窗口共享方法和共享图像采集装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011255626.9A CN112269886B (zh) 2020-11-11 2020-11-11 共享图像采集方法、窗口共享方法和共享图像采集装置

Publications (2)

Publication Number Publication Date
CN112269886A CN112269886A (zh) 2021-01-26
CN112269886B true CN112269886B (zh) 2021-05-25

Family

ID=74339177

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011255626.9A Active CN112269886B (zh) 2020-11-11 2020-11-11 共享图像采集方法、窗口共享方法和共享图像采集装置

Country Status (1)

Country Link
CN (1) CN112269886B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113038155B (zh) * 2021-03-03 2024-03-01 广州虎牙科技有限公司 一种直播方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101197990A (zh) * 2006-12-13 2008-06-11 四川川大智胜软件股份有限公司 与硬件和操作***平台无关的屏幕景象记录方法
CN101447998A (zh) * 2008-12-25 2009-06-03 广东威创视讯科技股份有限公司 桌面共享方法及***
CN102780757A (zh) * 2011-05-12 2012-11-14 索尼公司 信息处理设备、信息处理方法及计算机程序
CN102883134A (zh) * 2012-11-01 2013-01-16 成都飞视美视频技术有限公司 用于视频会议***的屏幕共享及控制方法
CN105005426A (zh) * 2014-04-18 2015-10-28 深圳Tcl新技术有限公司 触屏终端截屏、数据分享的方法及***
CN106657875A (zh) * 2016-09-23 2017-05-10 山东浪潮商用***有限公司 一种指挥调度的方法及装置
CN109559313A (zh) * 2018-12-06 2019-04-02 网易(杭州)网络有限公司 图像处理方法、介质、装置和计算设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7369868B2 (en) * 2002-10-30 2008-05-06 Sony Ericsson Mobile Communications Ab Method and apparatus for sharing content with a remote device using a wireless network
US8407605B2 (en) * 2009-04-03 2013-03-26 Social Communications Company Application sharing
JP4552075B2 (ja) * 2008-05-30 2010-09-29 日本電気株式会社 画像共有システム
CN104469256B (zh) * 2013-09-22 2019-04-23 思科技术公司 沉浸式和交互式的视频会议房间环境
CN104601930A (zh) * 2015-01-09 2015-05-06 西安融成科技有限公司 一种视频图像和桌面图像自动切换显示的***及方法
CN106547547B (zh) * 2016-10-18 2019-12-10 广州酷狗计算机科技有限公司 数据采集方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101197990A (zh) * 2006-12-13 2008-06-11 四川川大智胜软件股份有限公司 与硬件和操作***平台无关的屏幕景象记录方法
CN101447998A (zh) * 2008-12-25 2009-06-03 广东威创视讯科技股份有限公司 桌面共享方法及***
CN102780757A (zh) * 2011-05-12 2012-11-14 索尼公司 信息处理设备、信息处理方法及计算机程序
CN102883134A (zh) * 2012-11-01 2013-01-16 成都飞视美视频技术有限公司 用于视频会议***的屏幕共享及控制方法
CN105005426A (zh) * 2014-04-18 2015-10-28 深圳Tcl新技术有限公司 触屏终端截屏、数据分享的方法及***
CN106657875A (zh) * 2016-09-23 2017-05-10 山东浪潮商用***有限公司 一种指挥调度的方法及装置
CN109559313A (zh) * 2018-12-06 2019-04-02 网易(杭州)网络有限公司 图像处理方法、介质、装置和计算设备

Also Published As

Publication number Publication date
CN112269886A (zh) 2021-01-26

Similar Documents

Publication Publication Date Title
CN109862301B (zh) 屏幕视频共享方法、装置及电子设备
CN111163345A (zh) 一种图像渲染方法及装置
WO2022257699A1 (zh) 图像画面显示方法、装置、设备、存储介质及程序产品
CN112306607A (zh) 截图方法和装置、电子设备和可读存储介质
KR20120014868A (ko) 정보 처리 장치, 정보 처리 방법, 컴퓨터 프로그램 및 콘텐츠 표시 시스템
CN112667184A (zh) 一种显示设备
CN109068063B (zh) 一种三维图像数据的处理、显示方法、装置及移动终端
CN113014987A (zh) 屏幕录制方法、装置、电子设备以及存储介质
US9053526B2 (en) Method and apparatus for encoding cloud display screen by using application programming interface information
CN112269886B (zh) 共享图像采集方法、窗口共享方法和共享图像采集装置
WO2022161401A1 (zh) 一种投屏数据的处理方法及显示设备
CN113038141B (zh) 视频帧处理方法及电子设备
US11284094B2 (en) Image capturing device, distribution system, distribution method, and recording medium
CN116723353A (zh) 一种视频监控区域配置方法、***、装置及可读存储介质
CN113453069B (zh) 一种显示设备及缩略图生成方法
CN114374869B (zh) 一种全景视频播放方法、装置及计算机存储介质
CN112926420B (zh) 一种显示设备和菜单文字识别方法
CN116980554A (zh) 一种显示设备及视频会议界面显示方法
CN112948046A (zh) 截屏方法、装置、设备及存储介质
CN110865911B (zh) 图像测试方法、装置、存储介质、图像采集卡及上位机
CN114338897A (zh) 对象的分享方法、装置、电子设备以及存储介质
CN113691815A (zh) 一种视频数据处理方法、设备和计算机可读存储介质
CN112312067A (zh) 预监输入视频信号的方法、装置和设备
CN113473175B (zh) 一种内容显示方法及显示设备
WO2024093512A1 (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