发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种浏览器中进行音视频信息显示的方法和相应的一种浏览器中进行音视频信息显示的装置。
依据本发明的一个方面,提供了一种浏览器中进行音视频信息显示的方法,包括:
在一个或多个第一网页进程/线程中加载音视频播放相关网页标签;所述音视频播放相关网页标签具有关联的一个或多个第一音视频数据;
依据所述音频播放相关标签的种类在浏览器插件独立进程或浏览器主进程中播放第一音视频数据;
通知浏览器主进程所述第一音视频数据的播放信息;
浏览器主进程从所述播放信息中获取,加载所述音视频播放相关网页标签对应的一个或多个第一网页进程/线程标识;
浏览器主进程在所述第一网页进程/线程标识所对应的标签头中加载所述第一音视频数据的播放提示信息。
可选地,所述音视频播放相关网页标签包括以下至少一种:
HTML音视频标签、浏览器插件Object标签和HTML5音视频标签;
其中,所述HTML音视频标签包括Flash标签;所述HTML5音视频标签包括Audio标签和Video标签中的至少一个。
可选地,所述依据所述音频播放相关标签的种类在浏览器插件独立进程或浏览器主进程中播放第一音视频数据的步骤包括:
当所述音频播放相关标签为HTML音视频标签和浏览器插件Object标签中的至少一个时,在所述HTML音视频标签或浏览器插件Object标签对应浏览器插件独立进程中播放第一音视频数据。
可选地,所述依据所述音频播放相关标签的种类在浏览器插件独立进程或浏览器主进程中播放第一音视频数据的步骤包括:
当所述音频播放相关标签为HTML5音视频标签时,在浏览器主进程中播放第一音视频数据。
可选地,所述通知浏览器主进程所述第一音视频数据的播放信息的步骤包括:
由所述浏览器插件独立进程通知浏览器主进程所述第一音视频数据的播放信息。
可选地,所述通知浏览器主进程所述第一音视频数据的播放信息的步骤包括:
由所述第一网页进程/线程通知浏览器主进程所述第一音视频数据的播放信息。
可选地,所述浏览器主进程从所述播放信息中获取,加载所述音视频播放相关网页标签对应的一个或多个第一网页进程/线程标识的步骤包括:
在浏览器主进程中接收由所述浏览器插件独立进程发送的,加载所述音视频播放相关网页标签对应的一个或多个第一网页进程/线程标识。
可选地,所述浏览器主进程从所述播放信息中获取,加载所述音视频播放相关网页标签对应的一个或多个第一网页进程/线程标识的步骤包括:
在浏览器主进程中查找,加载所述音视频播放相关网页标签对应的一个或多个第一网页进程/线程标识。
可选地,当加载HTML音视频标签的所述第一网页进程/线程为多个时,所述多个第一网页进程/线程对应第一音视频数据在一个浏览器插件独立进程中进行播放。
可选地,还包括:
当浏览器主进程接收到针对所述播放提示信息的控制指示信息时,对所述播放提示信息对应的第一音视频数据,执行所述控制指示信息对应的控制操作。
可选地,还包括:
在第二网页进程/线程中加载音视频播放相关网页标签时,播放所述音频播放相标签关联的第二音视频数据;
暂停播放所述第一音视频数据。
可选地,还包括:
当所述第二网页进程/线程被关闭时,根据所述第一网页进程/线程标识依次恢复播放所述第一音视频数据。
根据本发明的另一方面,提供了一种浏览器中进行音视频信息显示的装置,包括:
第一加载模块,适于在一个或多个第一网页进程/线程中加载音视频播放相关网页标签;所述音视频播放相关网页标签具有关联的一个或多个第一音视频数据;
第一播放模块,适于依据所述音频播放相关标签的种类在浏览器插件独立进程或浏览器主进程中播放第一音视频数据;
通知模块,适于通知浏览器主进程所述第一音视频数据的播放信息;
获取模块,适于浏览器主进程从所述播放信息中获取,加载所述音视频播放相关网页标签对应的一个或多个第一网页进程/线程标识;
第二加载模块,适于浏览器主进程在所述第一网页进程/线程标识所对应的标签头中加载所述第一音视频数据的播放提示信息。
可选地,所述音视频播放相关网页标签包括以下至少一种:
HTML音视频标签、浏览器插件Object标签和HTML5音视频标签;
其中,所述HTML音视频标签包括Flash标签;所述HTML5音视频标签包括Audio标签和Video标签中的至少一个。
可选地,所述第一播放模块还适于:
当所述音频播放相关标签为HTML音视频标签和浏览器插件Object标签中的至少一个时,在所述HTML音视频标签或浏览器插件Object标签对应浏览器插件独立进程中播放第一音视频数据。
可选地,所述第一播放模块还适于:
当所述音频播放相关标签为HTML5音视频标签时,在浏览器主进程中播放第一音视频数据。
可选地,所述通知模块还适于:
由所述浏览器插件独立进程通知浏览器主进程所述第一音视频数据的播放信息。
可选地,所述通知模块还适于:
由所述第一网页进程/线程通知浏览器主进程所述第一音视频数据的播放信息。
可选地,所述获取模块还适于:
在浏览器主进程中接收由所述浏览器插件独立进程发送的,加载所述音视频播放相关网页标签对应的一个或多个第一网页进程/线程标识。
可选地,所述获取模块还适于:
在浏览器主进程中查找,加载所述音视频播放相关网页标签对应的一个或多个第一网页进程/线程标识。
可选地,当加载HTML音视频标签的所述第一网页进程/线程为多个时,所述多个第一网页进程/线程对应第一音视频数据在一个浏览器插件独立进程中进行播放。
可选地,还包括:
控制模块,适于在浏览器主进程接收到针对所述播放提示信息的控制指示信息时,对所述播放提示信息对应的第一音视频数据,执行所述控制指示信息对应的控制操作。
可选地,还包括:
第二播放模块,适于在第二网页进程/线程中加载音视频播放相关网页标签时,播放所述音频播放相标签关联的第二音视频数据;
暂停播放模块,适于暂停播放所述第一音视频数据。
可选地,还包括:
播放恢复模块,适于在所述第二网页进程/线程被关闭时,根据所述第一网页进程/线程标识依次恢复播放所述第一音视频数据。
本发明实施例在播放第一网页进程/线程中加载的音视频播放相关网页标签所关联的一个或多个第一音视频数据时,通知浏览器主进程第一音视频数据的播放信息,及在第一网页进程/线程标识所对应的标签头中加载第一音视频数据的播放提示信息,以提示用户哪个网页在播放音频数据或视频数据,避免了用户手动地逐个网页进行点击、滚动等操作筛选正在播放声音的网页,大大提高了音视频播放的识别操作,减少了浏览器的***资源消耗,减少***资源的耗费。
本发明实施例基于播放提示信息进行音视频数据的控制操作,实现了不同样式的音视频播放控件的统一,大大提高了音视频数据的控制操作的简便性,而用户无需打开网页查找音视频数据的播放控件进行控制操作,进一步减少了浏览器的***资源消耗,减少***资源的耗费。
本发明实施例在第二网页进程/线程中加载音视频播放相关网页标签时,播放音频播放相标签关联的第二音视频数据,以及,暂停播放所述第一音视频数据,进一步提高了音视频数据的控制操作的简便性,用户无需打开网页查找音视频数据的播放控件进行第一音视频数据的关闭或暂停操作,进一步减少了浏览器的***资源消耗,减少***资源的耗费。
本发明实施例在第二网页进程/线程被关闭时,根据所述第一网页进程/线程标识依次恢复播放所述第一音视频数据,进一步提高了音视频数据的控制操作的简便性,用户无需打开网页查找音视频数据的播放控件进行第一音视频数据的播放恢复操作,进一步减少了浏览器的***资源消耗,减少***资源的耗费。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
参照图1,示出了根据本发明一个实施例的一种浏览器中进行音视频信息显示的方法实施例1的步骤流程图,具体可以包括如下步骤:
步骤101,在一个或多个第一网页进程/线程中加载音视频播放相关网页标签;
在具体实现中,用户可以发出网页的加载请求请求加载网页。网页的加载请求可以是指用户发出的加载某个网页的指示。例如,用户可以通过点击某链接请求加载一个网页,或者在地址栏输入网址来请求加载一个网页等等。当用户点击某链接时,就相当于接收到了用户加载网页的加载请求;同样,当在地址栏输入某网址并点击确定按钮或按下回车键时,也相当于接收到了用户加载网页的加载请求。
其中,加载请求的内容可以包括用户请求加载的网页的标识和/或网页的特征。网页标识可以是能够代表一个唯一确定的网页的信息,例如统一资源标识符(UniformResource Identifier,URI),统一资源标识符又具体可以包括统一资源定位符(UniformResource Locator,URL),或者统一资源名称(Uniform Resource Name,URN)等等。
在浏览器中接收到网页的加载请求后,浏览器可以通过DNS(Domain NameSystem,域名解析***)解析查找该网页URL中的域名(Domain Name)所映射的IP(InternetProtocol,网络之间互连的协议)地址。在获取IP地址成功之后,浏览器可以向该IP地址所在的服务器请求连接。在成功连接该IP地址所在的服务器之后,浏览器端可以将请求头信息通过HTTP协议向此IP地址所在的服务器发起网页加载的请求。该服务器接收到该请求之后等待处理,最后向浏览器端返回响应。
此时,在HTTP协议下,浏览器可以从服务器接收到HTML类型的文档。浏览器可以解析HTML文档,生成树状结构的对象,即DOM(Document Object Model,文件对象模型),每个对象是DOM上的一个结点,而这些对象可以代表文字、图片等网页资源。
其中,加载的HTML文档中可以包括音视频播放的相关标签。
在本发明实施例的一种可选示例中,所述音视频播放相关网页标签可以包括以下至少一种:
HTML音视频标签、浏览器插件Object标签和HTML5音视频标签;
其中,所述HTML音视频标签可以包括Flash标签;所述HTML5音视频标签可以包括Audio标签和Video标签中的至少一个。
在HTML中,Flash是一种交互式矢量图和Web动画的标准,可以用于播放音频和视频。
<object>标签可以定义一个嵌入的对象,比如图像、音频、视频以及Flash等等。
在HTML5中,<audio>标签可以定义声音,比如音乐或其他音频流,而<video>标签可以定义视频,比如电影片段或其他视频流。
当然,上述音视频播放相关网页标签只是作为示例,在实施本发明实施例时,可以根据实际情况设置其他音视频播放相关网页标签,本发明实施例对此不加以限制。另外,除了上述音视频播放相关网页标签外,本领域技术人员还可以根据实际需要采用其它音视频播放相关网页标签,本发明实施例对此也不加以限制。
所述音视频播放相关网页标签可以具有关联的一个或多个第一音视频数据(可以包括音频数据、视频数据),用于进行播放。
需要说明的是,进程(Process)是操作***结构的基础,可以是一个正在执行的程序(例如浏览器);可以是计算机中正在运行的程序实例;可以是可以分配给处理器并由处理器执行的一个实体;可以是由单一顺序的执行显示,一个当前状态和一组相关的***资源所描述的活动单元。
线程(thread),有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。线程是进程中的一个实体,是被***独立调度和分派的基本单位,线程自己不拥有***资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。
每一个程序都至少有一个线程,若程序只有一个线程,那就是程序本身。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。
例如,如图2所示,浏览器主进程200中,网页进程201可以用于加载网页205,网页线程202可以用于加载网页206、网页进程203可以用于加载网页207和网页进程204可以用于加载网页208。
步骤102,依据所述音频播放相关标签的种类在浏览器插件独立进程或浏览器主进程中播放第一音视频数据;
浏览器可以开始显示此HTML文档,并获取其中内嵌的网页资源(例如音频播放相关标签关联的音视频数据)的地址,然后浏览器再向服务器发起请求来获取这些网页资源(例如音频播放相关标签关联的音视频数据)。
由于网页进程/线程一般不能播放音频数据和视频数据,因此,需要其他对象辅助进行播放音频数据和视频数据。
在本发明的一种可选实施例中,步骤102可以包括如下子步骤:
子步骤S11,当所述音频播放相关标签为HTML音视频标签和浏览器插件Object标签中的至少一个时,在所述HTML音视频标签或浏览器插件Object标签对应浏览器插件独立进程中播放第一音视频数据。
浏览器插件独立进程,是浏览器插件(Plug-in)所对应的进程,可以独立于浏览器主进程。插件是一种电脑程序,通过和应用程序(例如浏览器)的互动,用来替应用程序增加一些所需要的特定的功能(例如音频播放功能、视频播放功能)。
例如,当音频播放相关标签为Flash标签时,浏览器插件可以为Flash插件进程,该Flash插件可以用于播放Flash元素。
又例如,当音频播放相关标签为Object标签时,浏览器插件可以为第三方的音频播放插件、视频播放插件等等。
需要说明的是,当加载HTML音视频标签的所述第一网页进程/线程为多个时,所述多个第一网页进程/线程对应第一音视频数据可以在一个浏览器插件独立进程中进行播放。
例如,如图2所示,若在网页进程203和网页进程204中检测到Flash标签,需要播放音频数据或视频数据,则可以调用浏览器插件独立进程209(例如Flash插件进程)进行播放。
则在具体实现中,子步骤S11进一步可以包括如下子步骤:
子步骤S11,在一个浏览器插件独立进程中与所述音视频数据对应的服务器进行音视频数据帧交互;
子步骤S12,在一个浏览器插件独立进程中对所述视频数据帧进行编码处理和/或解码处理。
在浏览器插件独立进程(例如Flash插件进程)中,可以不断与服务器进行音视频数据帧交互,以请求音视频数据的资源。
在浏览器插件独立进程(例如Flash插件进程)中,可以在进行编码处理和解码处理中的至少一者,以进行音视频数据的播放。
在本发明的另一种可选实施例中,步骤102可以包括如下子步骤:
子步骤S12,当所述音频播放相关标签为HTML5音视频标签时,在浏览器主进程中播放第一音视频数据。
大多数视频是通过插件(比如Flash插件)来显示的,然而,并非所有浏览器都拥有同样的插件。因此,HTML5规定了一种通过Video元素(标签)来包含视频的标准方法。
同样,大多数音频是通过插件(比如Flash插件)来播放的,然而,并非所有浏览器都拥有同样的插件。因此,HTML5规定了一种通过Audio元素(标签)来包含音频的标准方法。
在浏览器主进程中,可以根据诸如Video标签或Audio标签进行播放音频数据或视频数据。
例如,音频数据或视频数据的播放器可以以JavaScript(一种直译式脚本语言)写成,可以采用play()方法进行视频数据的播放操作、采用pause()方法进行视频数据的暂停操作、以及、采用width属性调整播放器的尺寸。
步骤103,通知浏览器主进程所述第一音视频数据的播放信息;
在具体实现中,所述播放信息可以包括以下至少一种:
第一音视频数据标识、第一音视频数据标识与第一网页进程/线程标识的对应关系、第一音视频数据的描述信息。
其中,音视频数据标识可以为标识音视频数据的信息,例如ID。第一网页进程/线程标识可以为标识第一网页进程/线程的信息,例如ID。描述信息可以为描述音视频属性/特征的信息,例如音视频数据的名称信息、播放时间信息等等。
在本发明的一种可选实施例中,步骤103可以包括如下子步骤:
子步骤S21,由所述浏览器插件独立进程通知浏览器主进程所述第一音视频数据的播放信息。
在本发明实施例中,与子步骤S11相对应地,若第一音视频数据通过浏览器插件独立进程进行播放,则可以由浏览器插件独立进程通知浏览器主进程第一音视频数据的播放信息。
例如,第一网页进程/线程可以具有对应的第一网页进程/线程标识,浏览器插件独立进程可以管理第一网页进程/线程标识。
具体而言,浏览器插件独立进程可以通过调用GetCurrent线程,提取到第一网页进程/线程标识。
在本发明的另一种可选实施例中,步骤103可以包括如下子步骤:
子步骤S22,由所述第一网页进程/线程通知浏览器主进程所述第一音视频数据的播放信息。
在本发明实施例中,与子步骤S12相对应地,若第一音视频数据通过浏览器主进程进行播放,由于第一网页进程/线程是加载有第一音视频数据的播放信息的,则可以由第一网页进程/线程通知浏览器主进程所述第一音视频数据的播放信息。
步骤104,浏览器主进程从所述播放信息中获取,加载所述音视频播放相关网页标签对应的一个或多个第一网页进程/线程标识;
在具体实现中,浏览器获知音视频播放相关网页标签对应的一个或多个第一网页进程/线程标识,以便浏览器主进程在其负责的UI(User Interface,用户界面)界面(例如标签头)中生成播放提示信息。
在本发明的一种可选实施例中,步骤104可以包括如下子步骤:
子步骤31,在浏览器主进程中接收由所述浏览器插件独立进程发送的,加载所述音视频播放相关网页标签对应的一个或多个第一网页进程/线程标识。
在本发明实施例中,与子步骤S21相对应地,浏览器主进程可以依据插件进程的管理的其所服务的各个网页(例如含有Flash插件的网页)进程/线程标识(例如ID)。
在本发明的另一种可选实施例中,步骤104可以包括如下子步骤:
子步骤S32,在浏览器主进程中查找,加载所述音视频播放相关网页标签对应的一个或多个第一网页进程/线程标识。
在本发明实施例中,与子步骤S22相对应地,浏览器主进程查找HTML5中的Audio、Video等标签对应的网页进程/线程标识,以获取第一网页进程/线程标识(例如ID)。
步骤105,浏览器主进程在所述第一网页进程/线程标识所对应的标签头中加载所述第一音视频数据的播放提示信息。
本发明实施例中,可以在标签头中加载第一音视频数据的播放提示信息,以提示用户,该标签头对应的网页正在播放音频数据和视频数据中的至少一种。
在本发明的一种可选实施例中,步骤105可以包括如下子步骤:
子步骤S41,在所述浏览器插件独立进程中渲染音视频数据的播放提示信息;
子步骤S42,由所述个浏览器插件独立进程通过进程间I/O数据交互发送至所述浏览器主进程;
子步骤S43,所述浏览器主进程在所述网页进程/线程标识所对应的标签头中显示所述播放提示信息。
若音视频数据在浏览器插件独立进程中进行播放,则可以在浏览器插件独立进程中进行音视频数据的播放提示信息的渲染操作,通过进程间通信(Inter-ProcessCommunication,IPC),与浏览器主进程进行I/O(Input/Output,输入输出端口)数据交互,以发送播放提示信息之浏览器主进程。
在本发明的一种可选实施例中,若音视频数据在浏览器主进程中进行播放,则可以在浏览器主进程中进行音视频数据的播放提示信息的渲染操作。
在具体实现中,所述播放提示信息可以包括以下至少一种:
音视频数据的播放图标、音视频数据的描述信息。
浏览器主进程在获得播放提示信息之后,可以在第一网页进程/线程标识所对应的标签头中进行加载。
例如,可以采用DrawTabIcon函数绘制音视频数据的播放图标(如音频数据可以关联喇叭,视频数据可以关联场记板)。具体地,将音视频数据的播放图标(如png文件格式的喇叭或场记板)通过pnglib库解码为32位位图HBITMAP,然后通过SelectObject函数将该位图绑定到HDC上,再调用alphablend函数将位图绘制到屏幕上。
又例如,可以采用DrawText函数绘制音视频数据的描述信息。具体地,Drawtext为***API(Application Program Interface,应用程序接口),通过传递参数文字和位置,就可以将文字(如描述信息)绘制到屏幕上。
需要说明的是,本发明实施例还可以在其他位置加载第一音视频数据的播放提示信息,例如浏览器中生成一个独立的用于加载第一音视频数据的播放提示信息的提示界面、在桌面生成一个独立的用于加载第一音视频数据的播放提示信息的提示界面等等,本发明实施例对此不加以限制。
本发明实施例在播放第一网页进程/线程中加载的音视频播放相关网页标签所关联的一个或多个第一音视频数据时,通知浏览器主进程第一音视频数据的播放信息,及在第一网页进程/线程标识所对应的标签头中加载第一音视频数据的播放提示信息,以提示用户哪个网页在播放音频数据或视频数据,避免了用户手动地逐个网页进行点击、滚动等操作筛选正在播放声音的网页,大大提高了音视频播放的识别操作的简便性,减少了浏览器的***资源消耗,减少***资源的耗费。
参照图3,示出了根据本发明一个实施例的一种浏览器中进行音视频信息显示的方法实施例2的步骤流程图,具体可以包括如下步骤:
步骤301,在一个或多个第一网页进程/线程中加载音视频播放相关网页标签;所述音视频播放相关网页标签可以具有关联的一个或多个第一音视频数据;
步骤302,依据所述音频播放相关标签的种类在浏览器插件独立进程或浏览器主进程中播放第一音视频数据;
步骤303,通知浏览器主进程所述第一音视频数据的播放信息;
步骤304,浏览器主进程从所述播放信息中获取,加载所述音视频播放相关网页标签对应的一个或多个第一网页进程/线程标识;
步骤305,浏览器主进程在所述第一网页进程/线程标识所对应的标签头中加载所述第一音视频数据的播放提示信息。
步骤306,当浏览器主进程接收到针对所述播放提示信息的控制指示信息时,对所述播放提示信息对应的第一音视频数据,执行所述控制指示信息对应的控制操作;
在具体实现中,用户可以通过鼠标点击/拖动、触控点击/拖动等方式通过播放提示信息发出控制指示信息。
例如,在横条状的播放提示信息中向右/向左拖动,以指示增加/减少音视频数据的音量;在喇叭形的播放提示信息中点击,以指示关闭/打开音视频数据;在左箭头/右箭头形的播放提示信息中点击,以指示对音视频数据进行快进/倒退操作等等。
在本发明的一种可选实施例中,若第一音视频数据在浏览器插件独立进程中播放时,则可以通过HOOK(钩子)挂钩该浏览器插件独立进程中指定的播放函数,获取指定的播放对象,把该对象保存到指定的保存线程中存储,以及,创建一个操作线程,根据保存线程中存储的对象指针,以实现对第一音视频数据的控制操作,例如增加/减少音视频数据的音量,关闭/打开音视频数据,对音视频数据进行快进/倒退操作等等。
例如,某博客网站采用QzoneMusic.exe进程进行音视频数据的播放、某音乐网站采用mfpmp.exe音视频数据的播放。
可以通过Hook挂钩QzoneMusic.exe进程中的CoCreateInstance函数,获取IMusicPlayer对象,然后把IMusicPlayer对象保存到保存线程存储tls中存储。同时创建一个操作线程Timer,TimerProc从tls中取出保存的对象指针,根据音频开关调用IDispatch接口的PutPropertyByName函数设置IMusicPlayer对象的Mute属性,若Mute=1则可以为静音(即关闭音视频数据),若Mute=0则可以为有声音(即打开音视频数据)。
可以通过Hook挂钩Mfpmp.exe进程中的CoGetClassObject函数,获取IWMPSettings对象,然后把IWMPSettings对象保存到保存线程存储tls中存储。同时创建一个操作线程Timer,TimerProc从tls中取出保存的对象指针,根据声音开关调用IDispatch接口的PutPropertyByName函数设置IWMPSettings对象的Mute属性,若Mute=1则可以为静音(即关闭音视频数据),若Mute=0则可以为有声音(即打开音视频数据)。
在本发明的另一种可选实施例中,若第一音视频数据在浏览器主进程中播放时,则可以可以通过HOOK挂钩***中用于发音的函数,以实现第一音视频数据的控制操作,例如增加/减少音视频数据的音量,关闭/打开音视频数据,对音视频数据进行快进/倒退操作等等。
在具体实现中,在播放音频数据或视频数据时进行发音的函数可以是由windows操作***提供的4个函数组成,分别为winmm.dll中的waveOutWrite函数、midiStreamOut函数、dsound.dll中的Unlock函数、audioses.dll中的ReleaseBuffer函数。
由于不同的网站采用的发音的函数不同,因此本领域技术人员可以根据实际情况通过Hook挂钩waveOutWrite函数、midiStreamOut函数、Unlock函数和ReleaseBuffer函数中的至少一个,以实现对第一音视频数据的控制操作。
需要说明的是,若第一音视频数据在浏览器独立进程中进行播放,切,浏览器主进程接收到针对所述播放提示信息的控制指示信息时,将所述控制指示信息发送到浏览器插件独立进程,由所述浏览器插件独立进程对所述播放提示信息对应的音视频数据,执行所述控制指示信息对应的控制操作。
本发明实施例基于播放提示信息进行音视频数据的控制操作,实现了不同样式的音视频播放控件的统一,大大提高了音视频数据的控制操作的简便性,而用户无需打开网页查找音视频数据的播放控件进行控制操作,进一步减少了浏览器的***资源消耗,减少***资源的耗费。
步骤307,在第二网页进程/线程中加载音视频播放相关网页标签时,播放所述音频播放相标签关联的第二音视频数据;
步骤308,暂停播放所述第一音视频数据;
在本发明实施例中,若浏览器打开新的网页(即第二网页进程/线程对应的网页)中,需要进行音视频数据的播放,则可以暂停当前音视频数据(即第一音视频数据)的播放,以防止多个音源发音,影响音视频数据的播放效果。
本发明实施例在第二网页进程/线程中加载音视频播放相关网页标签时,播放音频播放相标签关联的第二音视频数据,以及,暂停播放所述第一音视频数据,进一步提高了音视频数据的控制操作的简便性,用户无需打开网页查找音视频数据的播放控件进行第一音视频数据的关闭或暂停操作,进一步减少了浏览器的***资源消耗,减少***资源的耗费。
步骤309,当所述第二网页进程/线程被关闭时,根据所述第一网页进程/线程标识依次恢复播放所述第一音视频数据。
本发明实施例中,若浏览器新打开网页被关闭(即第二网页进程/线程被关闭),则可以根据第一网页进程/线程标识依次恢复播放第一音视频数据,第一网页进程/线程标识越大或者约接近当前时间打开的第一音视频数据可以越优先进行播放的恢复。
本发明实施例在第二网页进程/线程被关闭时,根据所述第一网页进程/线程标识依次恢复播放所述第一音视频数据,进一步提高了音视频数据的控制操作的简便性,用户无需打开网页查找音视频数据的播放控件进行第一音视频数据的播放恢复操作,进一步减少了浏览器的***资源消耗,减少***资源的耗费。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图4,示出了根据本发明一个实施例的一种浏览器中进行音视频信息显示的装置实施例1的结构框图,具体可以包括如下模块:
第一加载模块401,适于在一个或多个第一网页进程/线程中加载音视频播放相关网页标签;所述音视频播放相关网页标签可以具有关联的一个或多个第一音视频数据;
第一播放模块402,适于依据所述音频播放相关标签的种类在浏览器插件独立进程或浏览器主进程中播放第一音视频数据;
通知模块403,适于通知浏览器主进程所述第一音视频数据的播放信息;
获取模块404,适于浏览器主进程从所述播放信息中获取,加载所述音视频播放相关网页标签对应的一个或多个第一网页进程/线程标识;
第二加载模块405,适于浏览器主进程在所述第一网页进程/线程标识所对应的标签头中加载所述第一音视频数据的播放提示信息。
在本发明实施例的一种可选示例中,所述音视频播放相关网页标签可以包括以下至少一种:
HTML音视频标签、浏览器插件Object标签和HTML5音视频标签;
其中,所述HTML音视频标签可以包括Flash标签;所述HTML5音视频标签可以包括Audio标签和Video标签中的至少一个。
在本发明的一种可选实施例中,所述第一播放模块402还可以适于:
当所述音频播放相关标签为HTML音视频标签和浏览器插件Object标签中的至少一个时,在所述HTML音视频标签或浏览器插件Object标签对应浏览器插件独立进程中播放第一音视频数据。
在本发明的一种可选实施例中,所述第一播放模块402还可以适于:当所述音频播放相关标签为HTML5音视频标签时,在浏览器主进程中播放第一音视频数据。
在本发明的一种可选实施例中,所述通知模块403还可以适于:
由所述浏览器插件独立进程通知浏览器主进程所述第一音视频数据的播放信息。
在本发明的一种可选实施例中,所述通知模块403还可以适于:
由所述第一网页进程/线程通知浏览器主进程所述第一音视频数据的播放信息。
在本发明的一种可选实施例中,所述获取模块404还可以适于:
在浏览器主进程中接收由所述浏览器插件独立进程发送的,加载所述音视频播放相关网页标签对应的一个或多个第一网页进程/线程标识。
在本发明的一种可选实施例中,所述获取模块404还可以适于:
在浏览器主进程中查找,加载所述音视频播放相关网页标签对应的一个或多个第一网页进程/线程标识。
在本发明的一种可选实施例中,当加载HTML音视频标签的所述第一网页进程/线程为多个时,所述多个第一网页进程/线程对应第一音视频数据可以在一个浏览器插件独立进程中进行播放。
参照图5,示出了根据本发明一个实施例的一种浏览器中进行音视频信息显示的装置实施例2的结构框图,具体可以包括如下模块:
第一加载模块501,适于在一个或多个第一网页进程/线程中加载音视频播放相关网页标签;所述音视频播放相关网页标签可以具有关联的一个或多个第一音视频数据;
第一播放模块502,适于依据所述音频播放相关标签的种类在浏览器插件独立进程或浏览器主进程中播放第一音视频数据;
通知模块503,适于通知浏览器主进程所述第一音视频数据的播放信息;
获取模块504,适于浏览器主进程从所述播放信息中获取,加载所述音视频播放相关网页标签对应的一个或多个第一网页进程/线程标识;
第二加载模块505,适于浏览器主进程在所述第一网页进程/线程标识所对应的标签头中加载所述第一音视频数据的播放提示信息。
控制模块506,适于在浏览器主进程接收到针对所述播放提示信息的控制指示信息时,对所述播放提示信息对应的第一音视频数据,执行所述控制指示信息对应的控制操作。
第二播放模块507,适于在第二网页进程/线程中加载音视频播放相关网页标签时,播放所述音频播放相标签关联的第二音视频数据;
暂停播放模块508,适于暂停播放所述第一音视频数据。
播放恢复模块509,适于在所述第二网页进程/线程被关闭时,根据所述第一网页进程/线程标识依次恢复播放所述第一音视频数据。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的浏览器中进行音视频信息显示的设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明实施例公开了A1、一种浏览器中进行音视频信息显示的方法,包括:
在一个或多个第一网页进程/线程中加载音视频播放相关网页标签;所述音视频播放相关网页标签具有关联的一个或多个第一音视频数据;
依据所述音频播放相关标签的种类在浏览器插件独立进程或浏览器主进程中播放第一音视频数据;
通知浏览器主进程所述第一音视频数据的播放信息;
浏览器主进程从所述播放信息中获取,加载所述音视频播放相关网页标签对应的一个或多个第一网页进程/线程标识;
浏览器主进程在所述第一网页进程/线程标识所对应的标签头中加载所述第一音视频数据的播放提示信息。
A2、如A1所述的方法,所述音视频播放相关网页标签包括以下至少一种:
HTML音视频标签、浏览器插件Object标签和HTML5音视频标签;
其中,所述HTML音视频标签包括Flash标签;所述HTML5音视频标签包括Audio标签和Video标签中的至少一个。
A3、如A2所述的方法,所述依据所述音频播放相关标签的种类在浏览器插件独立进程或浏览器主进程中播放第一音视频数据的步骤包括:
当所述音频播放相关标签为HTML音视频标签和浏览器插件Object标签中的至少一个时,在所述HTML音视频标签或浏览器插件Object标签对应浏览器插件独立进程中播放第一音视频数据。
A 4、如A2所述的方法,所述依据所述音频播放相关标签的种类在浏览器插件独立进程或浏览器主进程中播放第一音视频数据的步骤包括:
当所述音频播放相关标签为HTML5音视频标签时,在浏览器主进程中播放第一音视频数据。
A5、如A 3所述的方法,所述通知浏览器主进程所述第一音视频数据的播放信息的步骤包括:
由所述浏览器插件独立进程通知浏览器主进程所述第一音视频数据的播放信息。
A6、如A4所述的方法,所述通知浏览器主进程所述第一音视频数据的播放信息的步骤包括:
由所述第一网页进程/线程通知浏览器主进程所述第一音视频数据的播放信息。
A7、如A5所述的方法,所述浏览器主进程从所述播放信息中获取,加载所述音视频播放相关网页标签对应的一个或多个第一网页进程/线程标识的步骤包括:
在浏览器主进程中接收由所述浏览器插件独立进程发送的,加载所述音视频播放相关网页标签对应的一个或多个第一网页进程/线程标识。
A8、如A6所述的方法,所述浏览器主进程从所述播放信息中获取,加载所述音视频播放相关网页标签对应的一个或多个第一网页进程/线程标识的步骤包括:
在浏览器主进程中查找,加载所述音视频播放相关网页标签对应的一个或多个第一网页进程/线程标识。
A9、如A1或A2或A3或A5或A7所述的方法,当加载HTML音视频标签的所述第一网页进程/线程为多个时,所述多个第一网页进程/线程对应第一音视频数据在一个浏览器插件独立进程中进行播放。
A10、如A1或A2或A3或A4或A5或A6或A7或A8所述的方法,还包括:
当浏览器主进程接收到针对所述播放提示信息的控制指示信息时,对所述播放提示信息对应的第一音视频数据,执行所述控制指示信息对应的控制操作。
A11、如A1或A2或A3或A4或A5或A6或A7或A8所述的方法,还包括:
在第二网页进程/线程中加载音视频播放相关网页标签时,播放所述音频播放相标签关联的第二音视频数据;
暂停播放所述第一音视频数据。
A12、如A11所述的方法,还包括:
当所述第二网页进程/线程被关闭时,根据所述第一网页进程/线程标识依次恢复播放所述第一音视频数据。
本发明实施例还公开了B13、一种浏览器中进行音视频信息显示的装置,包括:
第一加载模块,适于在一个或多个第一网页进程/线程中加载音视频播放相关网页标签;所述音视频播放相关网页标签具有关联的一个或多个第一音视频数据;
第一播放模块,适于依据所述音频播放相关标签的种类在浏览器插件独立进程或浏览器主进程中播放第一音视频数据;
通知模块,适于通知浏览器主进程所述第一音视频数据的播放信息;
获取模块,适于浏览器主进程从所述播放信息中获取,加载所述音视频播放相关网页标签对应的一个或多个第一网页进程/线程标识;
第二加载模块,适于浏览器主进程在所述第一网页进程/线程标识所对应的标签头中加载所述第一音视频数据的播放提示信息。
B14、如B13所述的装置,所述音视频播放相关网页标签包括以下至少一种:
HTML音视频标签、浏览器插件Object标签和HTML5音视频标签;
其中,所述HTML音视频标签包括Flash标签;所述HTML5音视频标签包括Audio标签和Video标签中的至少一个。
B15、如B14所述的装置,所述第一播放模块还适于:
当所述音频播放相关标签为HTML音视频标签和浏览器插件Object标签中的至少一个时,在所述HTML音视频标签或浏览器插件Object标签对应浏览器插件独立进程中播放第一音视频数据。
B16、如B14所述的装置,所述第一播放模块还适于:
当所述音频播放相关标签为HTML5音视频标签时,在浏览器主进程中播放第一音视频数据。
B17、如B15所述的装置,所述通知模块还适于:
由所述浏览器插件独立进程通知浏览器主进程所述第一音视频数据的播放信息。
B18、如B16所述的装置,所述通知模块还适于:
由所述第一网页进程/线程通知浏览器主进程所述第一音视频数据的播放信息。
B19、如B17所述的装置,所述获取模块还适于:
在浏览器主进程中接收由所述浏览器插件独立进程发送的,加载所述音视频播放相关网页标签对应的一个或多个第一网页进程/线程标识。
B20、如B18所述的装置,所述获取模块还适于:
在浏览器主进程中查找,加载所述音视频播放相关网页标签对应的一个或多个第一网页进程/线程标识。
B21、如B13或B14或B15或B17或B19所述的装置,当加载HTML音视频标签的所述第一网页进程/线程为多个时,所述多个第一网页进程/线程对应第一音视频数据在一个浏览器插件独立进程中进行播放。
B22、如B13或B14或B15或B16或B17或B18或B19或B20所述的装置,还包括:
控制模块,适于在浏览器主进程接收到针对所述播放提示信息的控制指示信息时,对所述播放提示信息对应的第一音视频数据,执行所述控制指示信息对应的控制操作。
B23、如B13或B14或B15或B16或B17或B18或B19或B20所述的装置,还包括:
第二播放模块,适于在第二网页进程/线程中加载音视频播放相关网页标签时,播放所述音频播放相标签关联的第二音视频数据;
暂停播放模块,适于暂停播放所述第一音视频数据。
B24、如B23所述的装置,还包括:
播放恢复模块,适于在所述第二网页进程/线程被关闭时,根据所述第一网页进程/线程标识依次恢复播放所述第一音视频数据。