CN106648627B - 将直播应用软件移植到火狐浏览器的方法及装置 - Google Patents

将直播应用软件移植到火狐浏览器的方法及装置 Download PDF

Info

Publication number
CN106648627B
CN106648627B CN201611078416.0A CN201611078416A CN106648627B CN 106648627 B CN106648627 B CN 106648627B CN 201611078416 A CN201611078416 A CN 201611078416A CN 106648627 B CN106648627 B CN 106648627B
Authority
CN
China
Prior art keywords
plug
browser
live broadcast
npapi
function
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
CN201611078416.0A
Other languages
English (en)
Other versions
CN106648627A (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.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology 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 Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201611078416.0A priority Critical patent/CN106648627B/zh
Publication of CN106648627A publication Critical patent/CN106648627A/zh
Application granted granted Critical
Publication of CN106648627B publication Critical patent/CN106648627B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例公开了一种将直播应用软件移植到火狐浏览器的方法及装置,其中,所述方法包括:将待移植的直播应用软件对应的直播软件框架进行封装,生成ActiveX组件;采用NPAPI机制将所述ActiveX组件进行封装,生成NPAPI插件;将所述NPAPI插件的插件入口函数向浏览器进行注册;以及在系统注册表中添加所述NPAPI插件的系统路径,以供所述浏览器根据所述路径查找并加载所述NPAPI插件。本发明实施例通过NPAPI插件的形式,实现PC端的直播软件向狐火浏览器的移植,无需下载安装直播应用软件,不仅能够增加直播软件的使用量,还有效地提升了用户的使用体验。

Description

将直播应用软件移植到火狐浏览器的方法及装置
技术领域
本发明涉及计算机网络技术领域,尤其涉及一种将直播应用软件移植到火狐浏览器的方法及装置。
背景技术
随着计算机网络技术的极速发展,人们对各种应用软件的需求也越来越高。例如,日常生活中常用的应用软件以及一些用于休闲娱乐的应用软件。但是,应用软件的下载安装不仅需要消耗一定的下载安装时间,而且在软件下载时还经常存在恶意程序下载问题,导致用户访问所用终端被感染,进而导致帐号丢失或者隐私信息泄露等危险情况的发生。近年来,越来越多的一些桌面应用程序被移植到WEB浏览器中运行,这样不仅增加了软件的使用量,而且也会使用户更加方便的使用软件。
在实现本发明过程中,发明人发现直播应用软件作为当前最受用户喜爱的应用软件之一,目前仅能够通过PC端的直播软件实现直播功能,因此,如何提供一种将直播应用软件移植到WEB浏览器的方法,对提高直播软件的使用量和用户体验具有重要意义。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的将直播应用软件移植到火狐浏览器的方法及装置。
本发明的一个方面,提供了一种将直播应用软件移植到火狐浏览器的方法,包括:
将待移植的直播应用软件对应的直播软件框架进行封装,生成ActiveX组件;
采用NPAPI机制将所述ActiveX组件进行封装,生成NPAPI插件;
将所述NPAPI插件的插件入口函数向浏览器进行注册;以及
在系统注册表中添加所述NPAPI插件的系统路径,以供所述浏览器根据所述路径查找并加载所述NPAPI插件。
可选地,所述将待移植的直播应用软件对应的直播软件框架进行封装,生成ActiveX组件,包括:
采用组件对象模型COM形式封装所述直播软件框架,生成ActiveX组件。
可选地,所述将所述NPAPI插件的插件入口函数向浏览器进行注册,包括:
采用所述NPAPI插件的NP_GetEntryPoints函数初始化浏览器调用插件的函数表,向浏览器注册所述NPAPI插件的回调函数。
可选地,所述向浏览器注册所述NPAPI插件的回调函数,具体包括:
向浏览器注册所述NPAPI插件的NPP_SetupWindow函数;
在所述NPP_SetupWindow函数回调过程中获取所述浏览器向所述NPAPI插件提供的窗口句柄。
可选地,所述在所述NPP_SetupWindow函数回调过程中获取所述浏览器向所述NPAPI插件提供的窗口句柄之后,所述方法还包括:
将所述窗口句柄作为参数传入ActiveX组件的InitWithWindow方法中,实现所述直播软件框架在所述窗口句柄对应的本地窗口中的初始化。
可选地,所述在系统注册表中添加所述NPAPI插件的系统路径,包括:
在所述系统注册表的MozillaPlugins子键下添加所述NPAPI插件的系统路径。
本发明的另一个方面,提供了一种将直播应用软件移植到火狐浏览器的装置,包括:
第一封装模块,用于将待移植的直播应用软件对应的直播软件框架进行封装,生成ActiveX组件;
第二封装模块,用于采用NPAPI机制将所述第一封装模块生成的ActiveX组件进行封装,生成NPAPI插件;
注册模块,用于将所述第二封装模块生成的NPAPI插件的插件入口函数向浏览器进行注册;
配置模块,用于在系统注册表中添加所述NPAPI插件的系统路径,以供所述浏览器根据所述路径查找并加载所述NPAPI插件。
可选地,所述第一封装模块,具体用于采用组件对象模型COM形式封装所述直播软件框架,生成ActiveX组件。
可选地,所述注册模块,具体用于采用所述NPAPI插件的NP_GetEntryPoints函数初始化浏览器调用插件的函数表,向浏览器注册所述NPAPI插件的回调函数。
可选地,所述注册模块,具体包括:
注册单元,用于向浏览器注册所述NPAPI插件的NPP_SetupWindow函数;
获取单元,用于在所述NPP_SetupWindow函数回调过程中获取所述浏览器向所述NPAPI插件提供的窗口句柄。
本发明实施例提供的将直播应用软件移植到火狐浏览器的方法及装置,将待移植的直播应用软件对应的直播软件框架进行封装,生成ActiveX组件,并采用NPAPI机制将ActiveX组件封装成NPAPI插件,只要待运行的页面中标记有与直播软件框架对应的插件类型,火狐浏览器就可以将NPAPI插件加载到浏览器进程中,实现直播功能。本发明实施例通过NPAPI插件的形式,实现PC端的直播软件向狐火浏览器的移植,无需下载安装直播应用软件,不仅能够增加直播软件的使用量,还有效地提升了用户的使用体验。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明一个实施例的一种将直播应用软件移植到火狐浏览器的方法的流程图;
图2为本发明一个实施例的一种将直播应用软件移植到火狐浏览器的方法中步骤S13的细分流程图;
图3为本发明一个实施例的一种将直播应用软件移植到火狐浏览器的装置的结构示意图;
图4为本发明一个实施例的一种将直播应用软件移植到火狐浏览器的装置中注册模块的内部结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非被特定定义,否则不会用理想化或过于正式的含义来解释。
需要说明的是,NPAPI(Netscape Plugin Application Programming Interface)最早是Netscape Navigator浏览器创造的一种插件框架。是网景插件应用程序接口,是一种外部程序作为插件和浏览器共同完成网页展示的调用通道。利用该框架,第三方编程人员可以很容易的将自己的本地代码封装成为一个NPAPI的插件,从而让本地代码运行于Netscape Navigator浏览器中。但是后来,随着Netscape Navigator逐渐退出历史舞台,其继任者Mozilla Firefox等浏览器沿用了这一套技术标准。
在本发明实施例中,以火狐浏览器为例对本发明技术方案进行解释说明,可理解的本发明实施例提出的将直播应用软件移植到浏览器的方法同样适用于其他继承Netscape Navigator技术的浏览器中。下面结合附图对本发明实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细的阐述。
图1示意性示出了本发明一个实施例的将直播应用软件移植到火狐浏览器的方法的流程图。
参照图1,本发明实施例的将直播应用软件移植到火狐浏览器的方法具体包括以下步骤:
步骤S11、将待移植的直播应用软件对应的直播软件框架进行封装,生成ActiveX组件。
本实施例中,所述直播应用软件对应的直播软件框架为LiveEncoder框架。其中,LiveEncoder框架是直播应用软件,如斗鱼直播软件(斗鱼直播伴侣),的核心功能组件,该组件为直播软件提供了添加获取用户桌面、添加文本、添加摄像头、添加游戏、添加视频、添加图片以及抓取系统声音和麦克风声音等一系列基础功能。
步骤S12、采用NPAPI机制将所述ActiveX组件进行封装,生成NPAPI插件。
本发明实施例,通将对待移植的直播应用软件对应的直播软件框架封装成ActiveX组件之后,继续通过采用NPAPI机制将所述ActiveX组件封装成NPAPI插件,以便后续通过NPAPI插件的形式,实现PC端的直播软件向狐火浏览器的移植。
步骤S13、将所述NPAPI插件的插件入口函数向浏览器进行注册;以及
步骤S14、在系统注册表中添加所述NPAPI插件的系统路径,以供所述浏览器根据所述路径查找并加载所述NPAPI插件。
本发明实施例提供的将直播应用软件移植到火狐浏览器的方法,将待移植的直播应用软件对应的直播软件框架进行封装,生成ActiveX组件,并采用NPAPI机制将ActiveX组件封装成NPAPI插件,只要待运行的页面中标记有与直播软件框架对应的插件类型,火狐浏览器就可以将NPAPI插件加载到浏览器进程中,实现直播功能。本发明实施例通过NPAPI插件的形式,实现PC端的直播软件向狐火浏览器的移植,无需下载安装直播应用软件,不仅能够增加直播软件的使用量,还有效地提升了用户的使用体验。
在本发明实施例中,所述方法还包括:对所述NPAPI插件的MIME类型进行标记的步骤。本发明实施例通过对NPAPI插件的MIME类型进行标记,只要待运行的页面中标记有与直播软件框架对应的插件类型,火狐浏览器就可以将NPAPI插件加载到浏览器进程中,实现直播功能。
相关的代码具体如下:
Figure BDA0001166489310000061
其中,BLOCK字段的值“040904e4”用于表明该模块是一个NPAPI插件;下面的MIMEType字段用于表明该NPAPI插件的MIME类型为“application/dyLiveEncoder”。
其中,MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型,是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。MIME是一个互联网标准,扩展了电子邮件标准,使其能够支持:非ASCII字符文本;非文本格式附件(二进制、声音、图像等);由多部分(multipleparts)组成的消息体;包含非ASCII字符的头信息(Header information)。
下面对本发明实施例中NPAPI插件的加载机制以及NPAPI插件的初始化过程进行详细的阐述。
1、NPAPI插件加载
在火狐浏览器地址栏中输入about:plugins,则在浏览器中列出当前已安装的所有NPAPI插件。火狐浏览器从系统注册表下的HKEY_CURRENT_USER键下的Software\\MozillaPlugins子健中枚举所有的注册表项,然后获取每个子健中的Path值。其中,Path值中的字符串值就是该插件存放在系统中的路径。获取到对应插件的路径后,火狐浏览器进程通过调用系统API LoadLibrary函数将插件加载到浏览器进程中,从而完成对NPAPI插件的加载。
2、NPAPI插件初始化过程
(1)查找插件
当用火狐浏览器访问的一个页面中包含<embed type="application/xxx">,其中“application/xxx”代表某一种MIME类型,这样的HTML代码时,就会在当前所有的NPAPI列表中查找与“application/xxx”MIME类型匹配的NPAPI插件,然后将该NPAPI插件加载到内存。在本发明实施例中,所开发的插件MIME类型为“application/npLiveEncoder”。
所以当在火狐浏览器所访问的HTML页面中嵌入<embed type=”application/npLiveEnocder”>这样的代码时,火狐浏览器就会在当前系统所安装的所有NPAPI插件列表中查找与“application/npLiveEncoder”匹配的NPAPI插件,然后加载到火狐浏览器中运行。
(2)获取插件MIME类型
可理解的,火狐浏览器在加载插件之前需要知道NPAPI插件的MIME类型,这样才能将其加载运行。在Windows系统下编写NPAPI插件时,需要在插件项目的资源文件中,对该NPAPI插件的MIME类型进行描述。具体通过插件代码中的MIMEType字段获取NPAPI插件的MIME类型。
(3)向浏览器注册相关回调过程
当一个NPAPI插件被火狐浏览器加载后,火狐浏览器会调用该NPAPI插件的NP_GetEntryPoints函数,用于向火狐浏览器注册NPP_New(用于创建NPAPI插件实例)、NPP_Destroy(用于删除NPAPI插件实例)、NPP_SetWindow(用于建立窗口)等相关的回调函数。本发明实施例中,所实现的插件功能,就只是在NPP_SetWindow回调过程中获取到火狐浏览器向该插件提供的窗口句柄,从而实现移植过程。
(4)获取浏览器提供的功能接口
上面的步骤3是向火狐浏览器提供和注册相关的功能接口,本步骤中是火狐浏览器向插件提供其相关的功能接口。该过程是在NPAPI插件的NP_Initialize方法中实现的,主要是保存相关的浏览器接口函数。
在本发明的一个可选实施例中,所述将待移植的直播应用软件对应的直播软件框架进行封装,生成ActiveX组件,包括:
采用组件对象模型COM形式封装所述直播软件框架,生成ActiveX组件。
COM(Component Object Model,组件对象模型),可以看作是某种(软件)打包技术,即把它看作是软件的不同部分,按照一定的面向对象的形式,组合成可以交互的过程和一组支持库。COM对象可以用C++、Java和VB等任意一种语言编写,并可以用DLL或作为不同过程工作的执行文件的形式来实现。使用COM对象的浏览器,无需关心对象是用什么语言写的,也无须关心它是以DLL还是以另外的过程来执行的。本发明实施例通过采用组件对象模型COM形式对待移植的直播应用软件对应的直播软件框架进行封装,生成ActiveX组件,以供后续继续进行插件封装。
本发明实施例中,所述将所述NPAPI插件的插件入口函数向浏览器进行注册,包括:采用所述NPAPI插件的NP_GetEntryPoints函数初始化浏览器调用插件的函数表,向浏览器注册所述NPAPI插件的回调函数。
本发明实施例中,如图2所示,所述向浏览器注册所述NPAPI插件的回调函数,具体包括:
步骤S131、向浏览器注册所述NPAPI插件的NPP_SetupWindow函数;
步骤S132、在所述NPP_SetupWindow函数回调过程中获取所述浏览器向所述NPAPI插件提供的窗口句柄。
本发明实施例中,NPAPI插件需要实现插件入口函数,即NP_GetEntryPoints函数,以实现向火狐浏览器注册相关的回调函数,实现在运行NPAPI插件的时候,浏览器就会执行这些向浏览器注册的回调函数。本发明实施例中,需要向浏览器注册的回调函数,主要为NPP_SetupWindow函数,以通过在所述NPP_SetupWindow函数回调过程中获取浏览器向所述NPAPI插件提供的窗口句柄。
其中,在所述NPP_SetupWindow函数回调过程中获取所述浏览器向所述NPAPI插件提供的窗口句柄之后,所述方法还包括:将所述窗口句柄作为参数传入ActiveX组件的InitWithWindow方法中,实现所述直播软件框架在所述窗口句柄对应的本地窗口中的初始化。
向浏览器注册该NPP_SetupWindow函数后,当在HTML页面中嵌入<embed type="application/dyLiveEncoder"width="720"height="405"left="100"top="100">这样的代码时,表示在浏览器页面上创建一个宽度为720像素,高度为405像素的窗口,此时浏览器就会调用NPP_SetupWindow回调函数。当本实施例中的NPP_SetupWindow函数被调用时,插件中会调用ActiveX组件的InitWithWindow方法,将NPP_SetupWindow函数中浏览器创建的窗口句柄传入到InitWithWindow方法,从而完成对LiveEncoder框架的初始化。以实现抓取用户电脑屏幕、添加文字、添加图片、添加视频、添加摄像头、添加游戏源抓取系统以及麦克风声音的功能,从而便轻松的实现了直播软件移植到火狐浏览器的过程。
本发明实施例中,所述在系统注册表中添加所述NPAPI插件的系统路径,包括:在所述系统注册表的MozillaPlugins子键下添加所述NPAPI插件的系统路径。
本发明实施例中,在将所述NPAPI插件的插件入口函数向浏览器进行注册之后,通过在系统注册表中的MozillaPlugins子键下面加入本实施例中的NPAPI插件的系统路径,例如douyu.com/dyLiveEncoder项,从而完成向浏览器注册所述NPAPI插件。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
图3示意性示出了本发明一个实施例的将直播应用软件移植到火狐浏览器的装置的结构示意图。
参照图3,本发明实施例的将直播应用软件移植到火狐浏览器的装置具体包括第一封装模块301、第二封装模块302、注册模块303以及配置模块304,其中,所述的第一封装模块301,用于将待移植的直播应用软件对应的直播软件框架进行封装,生成ActiveX组件;所述的第二封装模块302,用于采用NPAPI机制将所述第一封装模块301生成的ActiveX组件进行封装,生成NPAPI插件;所述的注册模块303,用于将所述第二封装模块302生成的NPAPI插件的插件入口函数向浏览器进行注册;所述的配置模块304,用于在系统注册表中添加所述NPAPI插件的系统路径,以供所述浏览器根据所述路径查找并加载所述NPAPI插件。
本发明实施例提供的将直播应用软件移植到火狐浏览器的装置,将待移植的直播应用软件对应的直播软件框架进行封装,生成ActiveX组件,并采用NPAPI机制将ActiveX组件封装成NPAPI插件,只要待运行的页面中标记有与直播软件框架对应的插件类型,火狐浏览器就可以将NPAPI插件加载到浏览器进程中,实现直播功能。本发明实施例通过NPAPI插件的形式,实现PC端的直播软件向狐火浏览器的移植,无需下载安装直播应用软件,不仅能够增加直播软件的使用量,还有效地提升了用户的使用体验。
在本发明的一个可选实施例中,所述第一封装模块301,具体用于采用组件对象模型COM形式封装所述直播软件框架,生成ActiveX组件。
在本发明的一个可选实施例中,所述注册模块303,具体用于采用所述NPAPI插件的NP_GetEntryPoints函数初始化浏览器调用插件的函数表,向浏览器注册所述NPAPI插件的回调函数。
在本发明的一个可选实施例中,如图4所示,所述注册模块303,具体包括注册单元3031和获取单元3032,其中,所述的注册单元3031,用于向浏览器注册所述NPAPI插件的NPP_SetupWindow函数;所述的获取单元3032,用于在所述NPP_SetupWindow函数回调过程中获取所述浏览器向所述NPAPI插件提供的窗口句柄。
本实施例中,所述装置还包括附图中未示出的初始化模块,所述的初始化模块,用于在所述NPP_SetupWindow函数回调过程中获取所述浏览器向所述NPAPI插件提供的窗口句柄之后,将所述窗口句柄作为参数传入ActiveX组件的InitWithWindow方法中,实现所述直播软件框架在所述窗口句柄对应的本地窗口中的初始化。
在本发明的一个可选实施例中,所述配置模块304,具体用于在所述系统注册表的MozillaPlugins子键下添加所述NPAPI插件的系统路径。本发明实施例中,配置模块304在将所述NPAPI插件的插件入口函数向浏览器进行注册之后,通过在系统注册表中的MozillaPlugins子键下面加入本实施例中的NPAPI插件的系统路径,例如douyu.com/dyLiveEncoder项,从而完成向浏览器注册所述NPAPI插件。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
综上,本发明实施例提供的将直播应用软件移植到火狐浏览器的方法及装置,将待移植的直播应用软件对应的直播软件框架进行封装,生成ActiveX组件,并采用NPAPI机制将ActiveX组件封装成NPAPI插件,只要待运行的页面中标记有与直播软件框架对应的插件类型,火狐浏览器就可以将NPAPI插件加载到浏览器进程中,实现直播功能。本发明实施例通过NPAPI插件的形式,实现PC端的直播软件向狐火浏览器的移植,无需下载安装直播应用软件,不仅能够增加直播软件的使用量,还有效地提升了用户的使用体验。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
本领域那些技术人员可以理解,可以对实施例中的装置中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网关、代理服务器、系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

Claims (5)

1.一种将直播应用软件移植到火狐浏览器的方法,其特征在于,所述方法包括:
将待移植的直播应用软件对应的直播软件框架进行封装,生成ActiveX组件;
采用NPAPI机制将所述ActiveX组件进行封装,生成NPAPI插件;
将所述NPAPI插件的插件入口函数向浏览器进行注册;以及
在系统注册表中添加所述NPAPI插件的系统路径,以供所述浏览器根据所述路径查找并加载所述NPAPI插件;
其中,所述直播软件框架为LiveEncoder框架,所述LiveEncoder框架用于为所述直播应用软件提供添加获取用户桌面、添加文本、添加摄像头、添加游戏、添加视频、添加图片以及抓取系统声音和麦克风声音的功能;
所述将所述NPAPI插件的插件入口函数向浏览器进行注册包括:采用所述NPAPI插件的NP_GetEntryPoints函数初始化浏览器调用插件的函数表,向浏览器注册所述NPAPI插件的NPP_SetupWindow函数;在所述NPP_SetupWindow函数回调过程中将所述NPP_SetupWindow函数中浏览器创建的窗口句柄传入ActiveX组件的InitWithWindow方法中,实现所述直播软件框架在所述窗口句柄对应的本地窗口中的初始化。
2.根据权利要求1所述的方法,其特征在于,所述将待移植的直播应用软件对应的直播软件框架进行封装,生成ActiveX组件,包括:
采用组件对象模型COM形式封装所述直播软件框架,生成ActiveX组件。
3.根据权利要求1或2所述的方法,其特征在于,所述在系统注册表中添加所述NPAPI插件的系统路径,包括:
在所述系统注册表的MozillaPlugins子键下添加所述NPAPI插件的系统路径。
4.一种将直播应用软件移植到火狐浏览器的装置,其特征在于,包括:
第一封装模块,用于将待移植的直播应用软件对应的直播软件框架进行封装,生成ActiveX组件;
第二封装模块,用于采用NPAPI机制将所述第一封装模块生成的ActiveX组件进行封装,生成NPAPI插件;
注册模块,用于将所述第二封装模块生成的NPAPI插件的插件入口函数向浏览器进行注册;
配置模块,用于在系统注册表中添加所述NPAPI插件的系统路径,以供所述浏览器根据所述路径查找并加载所述NPAPI插件;
其中,所述直播软件框架为LiveEncoder框架,所述LiveEncoder框架用于为所述直播应用软件提供添加获取用户桌面、添加文本、添加摄像头、添加游戏、添加视频、添加图片以及抓取系统声音和麦克风声音的功能;
所述将所述NPAPI插件的插件入口函数向浏览器进行注册包括:采用所述NPAPI插件的NP_GetEntryPoints函数初始化浏览器调用插件的函数表,向浏览器注册所述NPAPI插件的NPP_SetupWindow函数;在所述NPP_SetupWindow函数回调过程中将所述NPP_SetupWindow函数中浏览器创建的窗口句柄传入ActiveX组件的InitWithWindow方法中,实现所述直播软件框架在所述窗口句柄对应的本地窗口中的初始化。
5.根据权利要求4所述的装置,其特征在于,所述第一封装模块,具体用于采用组件对象模型COM形式封装所述直播软件框架,生成ActiveX组件。
CN201611078416.0A 2016-11-30 2016-11-30 将直播应用软件移植到火狐浏览器的方法及装置 Active CN106648627B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611078416.0A CN106648627B (zh) 2016-11-30 2016-11-30 将直播应用软件移植到火狐浏览器的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611078416.0A CN106648627B (zh) 2016-11-30 2016-11-30 将直播应用软件移植到火狐浏览器的方法及装置

Publications (2)

Publication Number Publication Date
CN106648627A CN106648627A (zh) 2017-05-10
CN106648627B true CN106648627B (zh) 2020-09-08

Family

ID=58813253

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611078416.0A Active CN106648627B (zh) 2016-11-30 2016-11-30 将直播应用软件移植到火狐浏览器的方法及装置

Country Status (1)

Country Link
CN (1) CN106648627B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108279888A (zh) * 2017-12-19 2018-07-13 中国电子科技集团公司第三十研究所 一种支持多款浏览器的插件实现方法
CN109325157B (zh) * 2018-07-06 2022-07-26 中科星图股份有限公司 基于浏览器的地理空间信息承载方法
CN109558181B (zh) * 2018-11-26 2022-07-01 高新兴国迈科技有限公司 非ie浏览器兼容ocx控件的方法、计算机存储介质及设备
CN110780949A (zh) * 2019-10-24 2020-02-11 成都无糖信息技术有限公司 一种获取可被外界调用的npapi接口列表的方法
CN112379896A (zh) * 2020-11-24 2021-02-19 中教云智数字科技有限公司 一种基于注册表和http协议的软件通信交互方法
CN113867840B (zh) * 2021-09-29 2023-06-13 四川长虹电器股份有限公司 一种智能电视web native插件框架及构建方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9124566B2 (en) * 2009-06-23 2015-09-01 Microsoft Technology Licensing, Llc Browser plug-in for secure credential submission
CN102929656B (zh) * 2012-09-28 2015-11-25 北京奇虎科技有限公司 使用浏览器中内置ActiveX插件的方法和客户端
CN103064663B (zh) * 2012-11-19 2016-03-09 北京百度网讯科技有限公司 浏览器插件的生成、发布、加载和更新方法以及系统
CN102999611B (zh) * 2012-11-26 2016-08-03 北京奇虎科技有限公司 浏览器调用插件的方法以及插件管理器、浏览器
US20140365873A1 (en) * 2013-06-10 2014-12-11 Hewlett-Packard Development Company, L.P. Computing devices for generating content layout
CN104850403A (zh) * 2015-05-19 2015-08-19 重庆大学 一种基于控件技术的示波器远程控制系统的实现方法

Also Published As

Publication number Publication date
CN106648627A (zh) 2017-05-10

Similar Documents

Publication Publication Date Title
CN106648627B (zh) 将直播应用软件移植到火狐浏览器的方法及装置
CN101790747B (zh) 用于安全的模块间通信的方法和装置
US7779408B1 (en) Method and system for downloading and managing portable applications on a mobile device
US7092703B1 (en) Method and system for accessing a universal message handler on a mobile device
US7079839B1 (en) Method and system for push launching applications with context on a mobile device
US8819698B2 (en) Cross-platform web-based native device feature access
EP3002927B1 (en) Page redirection method, routing device, terminal device and system
US20130086626A1 (en) Constraint definition for conditional policy attachments
US9436482B2 (en) Input content to application via web browser
US11016716B2 (en) Picture interface display method and apparatus according to jump protocol
CN103873918B (zh) 图片处理方法、装置及终端
CN110417766A (zh) 一种协议解析的方法和装置
CN108416021B (zh) 一种浏览器网页内容处理方法、装置、电子设备及可读介质
US20160292414A1 (en) Techniques for dynamic domain-based isolation
CN105718313A (zh) 应用操作方法和装置
US20110320286A1 (en) System And Method For Integrating An Ad Banner With A Calling Application
US9876879B2 (en) Distributed network page generation
CN112166590B (zh) 用于在联网环境中消息生成的受限环境
CN106605231B (zh) 帐户控制
CN113076294A (zh) 一种信息分享方法和装置
CN109981546B (zh) 获取应用模块间的远程调用关系的方法和装置
WO2019119974A1 (zh) 对象上传方法及装置
KR100908192B1 (ko) 사용자 정의 소프트 폰을 이용한 인터넷 전화 시스템 및 인터넷 전화 서비스 방법
CN103793459B (zh) 一种网页打开方法及装置
US9652552B2 (en) Dialog server

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