一种对浏览器中的声音进行控制的方法及系统的制作方法

文档序号:6444217阅读:138来源:国知局
专利名称:一种对浏览器中的声音进行控制的方法及系统的制作方法
技术领域
本发明涉及浏览器技术领域,特别是涉及一种对浏览器中的声音进行控制的方法及系统。
背景技术
用户在使用浏览器浏览网页时,经常会在没有预期的情况下听到浏览器中发出的一些声音,使用户觉得莫名其妙甚至受到干扰。例如,在进入某人的博客时,会自动播放该博客的背景音乐,此时,如果用户正在使用某本地播放器听音乐,则会受到该背景音乐的干扰,此时用户只能选择将播放器关闭或暂停,或者在已知背景音乐来自哪个网页的情况下将这个网页关闭,如果无法确定干扰来自哪个网页则只能直接将浏览器关闭。但是这样做的结果是,要么无法继续听音乐,要么无法浏览博客里的文章,甚至需要重新打开浏览器才能继续浏览网页。为此,有的浏览器提供了全局静音功能,该功能可以将整个浏览器静音,即可以使浏览器中所有的声音都将处于静音状态。例如,用户在使用本地播放器听音乐时,如果不想受到浏览器中的声音的干扰,则可以直接启动该功能,这样就可以一边听本地播放器中的音乐,一边在浏览器中浏览网页内容了。但是,目前越来越多的用户选择在网页上在线听音乐,而上述浏览器的全局静音功能无法满足这种用户的需求。例如,某用户正在某音乐网站上听音乐,并同时打开了多个其他网页,此时,如果受到了浏览器中的声音的干扰,则无法通过启动浏览器静音功能来消除这种干扰,因为一旦启动该功能,则也无法在该音乐网站上听音乐了。此时,用户只能想办法找到干扰来自哪个网页,并将其关闭;如果用户无法找到干扰的来源,则只能将所述音乐网站以外的网页一个一个地关闭,直到干扰消除。可见,现有技术控制浏览器中的声音的实现方式不够灵活、方便。

发明内容
本发明实施例提供一种对浏览器中的声音进行控制的方法及系统,可以基于页面对浏览器中的声音进行灵活地控制。为实现上述目的,本发明提供了如下方案—种对浏览器中的声音进行控制的方法,包括获知浏览器中特定页面中嵌入的播放器控件元素; 通过控制所述播放器控件元素,对所述浏览器中特定页面中的声音进行控制。优选的,如果所述浏览器中至少两个页面中存在声音,则,所述获知页面中嵌入的播放器控件元素包括获知每个页面中各自嵌入的播放器控件元素;所述通过控制所述播放器控件元素,对所述浏览器中特定页面中的声音进行控制包括通过控制所述每个页面中各自嵌入的播放器控件元素,对浏览器中处于不同页面中的各种声音分别进行独立的控制。优选的,所述通过控制所述播放器控件元素,对所述浏览器中特定页面中的声音进行控制包括调用所述特定页面中嵌入的播放器控件元素对外提供的用于声音控制的接口,对所述浏览器中特定页面中的声音进行控制。优选的,所述通过控制所述播放器控件元素,对所述浏览器中特定页面中的声音进行控制包括仅当所述特定页面处于焦点状态时,开启该页面中的声音,否则,将该页面中的声首关闭;当进行页面切换时,切换页面中声音的开启或关闭。—种对浏览器中的声音进行控制的系统,包括播放器控件获知单元,用于获知浏览器中特定页面中嵌入的播放器控件元素;第二页面声音控制单元,用于通过控制所述播放器控件元素,对所述浏览器中特定页面中的声音进行控制。优选的,如果所述浏览器中至少两个页面中存在声音,则,所述播放器控件获知单元,具体用于获知每个页面中各自嵌入的播放器控件元素;所述第二页面声音控制单元,具体用于通过控制所述每个页面中各自嵌入的播放器控件元素,对浏览器中处于不同页面中的各种声音分别进行独立的控制。优选的,所述播放器控件获知单元包括查询子单元,用于查询页面的文档对象模型,获取标签名称是对象的页面元素的ClassID ;确定子单元,用于将ClassID符合预置条件的页面元素确定为嵌入的播放器控件元素。优选的,所述第二页面声音控制单元具体用于调用所述特定页面中嵌入的播放器控件元素对外提供的用于声音控制的接口,对所述浏览器中特定页面中的声音进行控制。优选的,还包括控制入口提供单元,用于向用户提供控制入口 ;所述第二页面声音控制单元,具体用于通过所述控制入口接收到用户的指令后,按照用户指令对浏览器中特定页面中的声音进行对应的控制。优选的,还包括提示单元,用于在具有所述声音的页面所在的窗口中显示本页面具有声音的提示标识。优选的,所述第二页面声音控制单元包括自动控制子单元,用于仅当所述浏览器中的声音所在的页面处于焦点状态时,开启该页面中的声音,否则,将该页面中的声音关闭;当进行页面切换时,切换页面中声音的开启或关闭。根据本发明提供的具体实施例,本发明公开了以下技术效果本发明实施例通过获知浏览器中的声音所在的页面;基于所述浏览器中的声音及其所在页面之间的对应关系,对所述浏览器中特定页面上的声音进行控制。可见,本发明实施例能够获知声音与页面的对应关系,因此能够基于页面对浏览器中的声音进行灵活地控制。另外,本发明实施例还可以以多种方式通知用户哪个页面上有声音正在播放,使得用户可以清楚地知道声音与页面的对应关系。还可以提供声音控制入口,由用户自行选择某个页面上声音的播放或静音。此外,还可以做到仅播放处于焦点状态的页面上的声音,并在切换页面的时候自动切换页面上声音的开启或关闭。


图1是本发明实施例提供的方法的流程图;图2是本发明实施例提供的系统的示意图。
具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明作进一步详细的说明。参见图1,本发明实施例提供的对浏览器中的声音进行控制的方法包括以下步骤SlOl :获知浏览器中的声音所在的页面;S102:基于所述浏览器中的声音及其所在页面之间的对应关系,对所述浏览器中特定页面中的声音进行控制。其中,所述对所述浏览器中特定页面上的声音进行控制包括对所述浏览器中特定页面上的声音进行开启、关闭(将特定页面上的声音置为静音)及音量调节。所述浏览器中的声音是指用户可以听到的在浏览器中播放的各种形式的有声内容,比如音乐、歌曲、背景首乐或者视频等等。如果所述浏览器中的声音包括两种以上的声音,则获知浏览器中的声音所在的页面时,可以分别获知浏览器中每种声音各自所在的页面;并且可以基于浏览器中每种声音与其所在页面之间的各自对应关系,对浏览器中处于不同页面中的各种声音分别进行独立的声音控制。下面对上述两个步骤分别进行详细的描述。其中,对于获知浏览器中的声音所在的页面,即获知声音及其所在页面之间的对应关系,有多种具体实现方式。下面示例性的给出其中的几种。本发明实施例所述浏览器中的声音是指在浏览器进程中播放的声音,包括在浏览器中的flash控件中播放的声音,或者在嵌入到浏览器中的播放器控件中播放的声音,或者还可以是作为某网页的背景音乐播放的声音,等等。但是,无论是使用flash控件还是嵌入到浏览器的播放器,或者是作为背景音乐,都是在浏览器进程中进行声音的播放。第一种获知声音及其所在页面之间的对应关系的具体实现方式
由于网页上的各种资源,都需要首先到服务器上下载这些资源,才能发布在网页上。在下载资源时,需要向服务器发送下载资源的请求信息,该请求信息中会包括请求下载的资源的统一资源定位信息、请求信息的发出者的统一资源定位信息。实际应用中,所述统一资源定位信息可以是统一资源标识符(Uniform Resource Identifier, URI), URI可以包括统一资源定位符(Uniform Resource Locator, URL),或者统一资源名称(UniformResource Name, URN),为方便描述,本发明实施例中均以URL为例进行介绍。其中,在资源的URL中会包括资源的后缀名,以表示资源的类型。例如,浏览器中的某声音的后缀名可能是 mp3、rm、wma 等。
因此,可以拦截浏览器向服务器发送的下载资源的请求,并根据该请求信息来确定浏览器中的声音与页面之间的对应关系。例如,拦截到某请求后发现资源URL的后缀名为mp3,则认为该资源是一个声音,然后从请求信息中获取到请求信息的发出者的URL,由于请求的发出者可能是网页本身,也可能是嵌入到网页中的播放器,因此,如果发出者是网页本身,则可以直接确定浏览器中的声音与页面之间的对应关系;如果发出者是嵌入网页的播放器,则还可以再根据播放器与网页之间的对应关系,确定浏览器中的声音与网页之间的对应关系。当然,为了提高准确性,还可以通过拦截服务器返回的响应信息的方法来实现。上述第一种获知声音及其所在页面之间的对应关系的具体实现方式,需要拦截所有的相下载网页中所有资源的请求,或者服务器返回的响应信息,然后在众多请求信息或响应信息中查找与声音有关的信息。这种具体实现方式,针对浏览器中的flash控件中播放的声音以及网页的背景音乐比较有效。第二种获知声音及其所在页面之间的对应关系的具体实现方式确定浏览器中的声音所在的线程,然后根据所述浏览器中的声音所在的线程确定所述浏览器中的声音所在的页面。也就是说,首先获知声音所在的线程,然后根据线程与创建该线程的页面之间的对应关系,来获知页面与该页面中的声音所在线程之间的对应关系,通过该对应关系就可以获知页面中的声音所在线程。因此,“获知页面中的声音所在线程”有两重含义需要获知某线程是声音所在线程,并且还需要获知该线程是由哪个页面创建的,即页面可能有多个,声音所在线程也可能有多个,需要获知页面与该页面中的声音所在线程之间的对应关系(如,页面A中的声音所在线程是线程a,页面B中的声音所在线程是线程b,等等),这样,在需要对某个特定页面中的声音进行控制时,就可以找到该页面中的声音所在线程,然后通过控制该线程来控制该页面中的声音。具体而言,应用程序在运行过程中总会创建相应的进程,而进程中又会创建至少一个线程,然后在线程中调用API函数来完成各项具体的操作;而且每个线程都有一个唯一的线程标识符,用于区分不同的线程。在使用浏览器打开某页面时,首先需要创建页面线程,然后可能在所述页面线程下创建多个子线程,来共同完成各项具体的操作;例如,图形的展现、声音的播放等都是由页面线程或其子线程通过调用系统函数来实现的。因此,为了确定浏览器中的声音与页面之间的对应关系,可以首先确定浏览器中正在播放的声音所在的线程,然后根据该线程便可以确定所述浏览器中的声音所在的页面。换而言之,就是利用线程来反查页面,从而获知页面中的声音所在的线程。也就是说,可以当所述浏览器中的声音正在播放时,确定浏览器中的声音所在的线程,然后,可以根据浏览器中的声音所在的线程确定所述浏览器中的声音所在的页面。由于应用程序都是通过调用系统(例如windows操作系统)的API (Application ProgrammingInterface,应用程序编程接口 )函数来播放声音的,用于播放声音的函数被调用时,说明一定有声音正在播放,因此,可以通过拦截播放声音的函数来判断是否有声音正在播放。如果拦截到播放声音的函数被调用,则证明有声音正在播放,同时可以利用系统提供的接口获取到调用该特定API函数的线程的线程标识符,以此来确定浏览器中的声音所在的线程。也就是说,为了确定声音与页面的对应关系,可以在拦截播放声音的函数被调用时(说明某个页面中有声音正在播放),通过系统提供的函数(Get Current Thread Id)获取到调用该播放声音函数的线程的线程标识符。这样便可以获知是哪个线程调用了播放声音的函数。然后根据这个线程,便可以确定浏览器中的声音所在的页面。即,当播放声音的函数被调用时,获取调用所述播放声音的函数的线程的标识,将所述标识对应的线程确定为声音所在线程,然后,就可以根据所述标识确定创建该声音所在线程的页面,将该声音 所在线程确定为该页面中的声音所在线程。这样就相当于建立起了页面与该页面中声音所在的线程之间的对应关系,进而,当需要对特定页面中的声音进行控制时,就利用该对应关系,通过控制该特定页面中声音所在的线程来对该特定页面中的声音进行控制。当然,也可以通过其他的方式获取到浏览器中的声音所在的线程。需要说明的是,不论是浏览器是采用单进程方式、多进程方式还是混合方式,都存在创建页面的线程。以多标签浏览器为例,在多进程方式下,每个标签页可能对应一个单独的进程,但是该进程也是在某个线程中创建的。也就是说,即使标签页对应一个单独的进程,也总会有创建页面的线程。进程相对于线程而言是个比较虚的概念,进程不做具体的操作,线程才是运行代码的最小单位,通过线程总能找到声音所在的页面。其中,所述浏览器中的声音所在的线程与页面线程可能是同一个线程,例如页面中播放的f I ash等,会直接由页面线程调用播放声音的函数,此时,确定了浏览器中的声音所在的线程后,便可以直接确定该声音所在的页面。但是,还有一些情况,浏览器中的声音所在的线程不是页面线程,而是页面线程的某个子线程。此时,为了确定浏览器中的声音与页面之间的关系,可以在创建线程时,拦截创建线程的函数,并保存线程创建的父子关系,这个样可以得到每个页面线程的所有子线程。当获取到浏览器中的声音所在的线程的线程标识符后,可以通过反查该线程的父线程来确定该线程所在的页面线程,进而就可以确定浏览器中的声音所在的页面了。当然,也可以不用通过获知线程的线程标识符来确定是哪个线程,例如还可以获取线程的伪句柄的方式来确定,等等。由此可见,当播放声音的函数被调用时,获取调用所述播放声音的函数的线程的标识(包括线程标识符或伪句柄等),然后,根据该标识确定所述声音所在的页面,将该标识对应的线程确定为该页面中的声音所在线程。需要说明的是,本发明实施例虽然拦截了播放声音的函数,但是可以仅仅是用于获知该函数被调用了,然后,该播放声音的函数可以继续正常运行,即页面中的声音可以正常播放。与此同时,本发明实施例可以进行异步地操作,实现确定声音与页面对应关系的功能。当然,当需要对某页面中的声音进行静音控制时,也可以在截获播放声音的函数后,中断该页面中声音所在的线程对该函数的调用,此时相当于该线程没有调用到关于播放声音的任何函数,自然也就无法播放出任 何声音,因此,可以实现自动将某页面中的声音置为静
曰 另外,除了中断线程对播放声音的函数的调用之外,还可以通过其他方式对页面中的声音进行控制。例如,可以通过修改该特定页面中的声音所在线程调用的播放声音的函数,对所述浏览器中特定页面中的声音进行控制。具体实现时,例如,在第一个步骤中获知了特定页面A中的声音所在线程为线程a,则对页面A中的声音进行控制时,可以截获线程a调用的播放声音的函数,然后修改该函数,就可以实现对页面A中的声音进行控制。例如,可以将该函数修改为用于静音的函数,则可以实现使该页面A静音。举例来说,假设系统中用于播放声音的函数是函数a,某页面中的声音需要播放时,则需要创建一个线程A,然后由该线程A调用该函数a来播放声音;为了对该页面中的声音进行控制,本发明实施例采用的方法就是截获线程A对函数a的调用,并向线程A返回函数b,该函数b可能是系统提供的另一个函数,也可能是修改了函数a中的某些参数之后得到的。需要说明的是,在这种方式下,实际上页面中的声音文件还是在播放,只是可能对其进行了静音等控制,用户可能听不到其声音,但是可以看到音频播放器的进度条还是在正常前进,甚至,如果页面中的声音来自某视频,则用户可以看到视频的画面仍在播放,但是听不到声音。前两种方式都是通过控制线程对函数的调用,来实现对页面中的声音进行控制,除此之外,还可以通过对线程本身的控制,来实现对页面中的声音进行控制。例如,可以采用挂起声音所在线程的方式,使得播放声音的线程暂停工作或者停止工作,当线程恢复执行时,声音会继续播放或恢复播放。即,当需要对某页面上的声音进行静音控制时,可以首先根据之前建立的页面与页面中声音所在线程之间的对应关系,找到该页面中的声音所在的线程,然后将该线程挂起,该页面中的声音就会被静音了。当然,由于其他页面中的声音所在线程不会受到影响,因此,不会影响其他页面中声音的播放。在这种挂起声音所在线程的方式下,由于播放声音的线程暂停或停止工作,因此,页面中的声音也将暂停或停止播放,用户也就自然无法听到该页面中的声音。即,在这种方式下,页面中的音频播放器的进度条也将不再前进。需要说明的是,如果页面中的声音来自某视频,则可能有以下两种情况一种情况是画面与声音在同一线程,此时,如果将声音所在的线程挂起,则声音停止播放的同时,画面也将停止播放,即用户在听不到该页面中的声音的同时,会看到页面中的视频播放器的画面停止播放,视频播放器的进度条也停止前进。另一种情况是画面与声音不在同一线程,即画面所在的线程与声音所在的线程相互独立,此时,如果将声音所在的线程挂起,则声音停止播放的同时,画面会继续播放,即用户在听不到该页面中的声音的同时,会看到页面中的视频播放器的画面还在继续播放,视频播放器的进度条也在继续前进。另外需要说明的是,由于无论画面与声音是否在同一线程,都是由主线程向其相应的线程同步分发缓存中的数据,实现画面及声音同步的播放。通常,播放画面的线程会在成功播放完主线程分发的数据之后,向主线程反馈播放成功的消息,主线程收到之后,会继续分发下一段数据(对于声音线程的是否播放成功,主线程通常会忽略掉,因此,只要收到画面成功播放的消息,主线程就会同步地分发新的数据);否则,如果主线程没有收到播放成功的反馈信息,则不会继续分发下一段数据。因此,在画面与声音在同一线程的情况下,将声音所在的线程挂起后,声音和画面都会暂停播放,因此,主线程无法收到播放成功的信息,也不会继续分发新的数据;当线程恢复执行后,会从暂停处开始继续进行播放。但是在画面与声音不在同一线程的情况下,将声音所在的线程挂起后,声音会停止播放,但是画面还在继续播放,画面所在的线程可以向主线程返回播放成功的消息,因此,主线程还是会向画面及声音所在的线程同步分发新的数据,只是此时声音并没有被成功播放。因此,当线程恢复执行后,会从当前画面已经播放到的位置开始,播放与画面同步的声音。总之,都是通过控制声音所在线程,来实现对浏览器中特定页面的声音进行控制。当然,这里所说的控制声 音所在的线程是广义上的控制,即,可以包括控制声音所在的线程对播放声音函数的调用(如中断函数的调用或者修改调用的函数等),也可以包括控制声音所在线程本身(如挂起声音所在的线程),等等。总之,只要使对与声音所在线程有关的内容进行控制,都属于控制声音所在线程的范畴。当然,当浏览器中至少两个页面中存在声音时,可以获知每个页面中的声音各自所在的线程,通过控制所述每个页面中的声音各自所在的线程,对浏览器中处于不同页面中的声音分别进行独立的控制。上述第二种获知声音及其所在页面之间的对应关系的具体实现方式,不但针对浏览器中flash控件中播放的声音以及网页的背景音乐比较有效,而且,对于那种使用嵌入到浏览器的播放器控件播放的声音也非常有效。前文所述对本发明实施例提供的对浏览器中的声音进行控制的方法进行了详细地描述,其中,在实际应用中,可以由浏览器进行自动控制,也可以结合用户的需要进行半自动地控制。下面对此进行详细地介绍。具体对浏览器中的声音进行控制时,可以与用户形成互动,也可以自动地进行控制。为了与用户形成互动,可以向用户提供第一控制入口,该第一控制入口中可以包括开启、关闭、音量调节等按钮(也可以使菜单等其他方式,后续仅以按钮的方式为例说明),用户可以通过点击上述按钮来发出请求;当通过所述第一控制入口接收到用户的指令后,按照用户指令对特定页面上的声音进行对应的控制。例如,用户可以点击静音按钮(相当于声音关闭)选择将某页面中的声音静音(即关闭),还可以再通过点击播放按钮(相当于声音开启)播放该页面中的声音。其中,所述向用户提供第一控制入口对浏览器中特定页面的声音进行控制具体可以有多种实现方式,包括但不限于以下几种情况I)可以在标签栏或任务栏等处向用户提供对本页面中的声音的第一控制入口。例如,如果发现某页面上有声音,则可以在该页面的标签上提供所述第一控制入口,用户可以通过该第一控制入口对该页面上的声音进行控制。如果多个页面上有声音,则会分别在各个页面的标签上提供所述第一控制入口,分别通过各自的第一控制入口对各个页面上的声音进行控制。也就是说,在这种情况下,如果多个页面上有声音,则会有多个所述第一控制入口。2)也可以仅在浏览器窗口中提供一个所述第一控制入口,通过该第一控制入口,可以对处于焦点状态的页面上的声音进行控制。也就是说,即使多个页面上有声音,也仅通过该第一控制入口对处于焦点状态的页面上的声音进行控制。并且,当进行页面切换时,能够通过该第一控制入口对声音进行控制的页面也可以随之发生变化。3)在该情况下,也是仅在浏览器窗口中提供一个所述第一控制入口,但是可以在第一控制入口中提供声音与页面的对应关系。例如,当前打开的多个页面上都有声音,用户点击该第一控制入口,可以以菜单等形式向用户提供对各个页面上的声音进行控制的控制入口,用户可以通过这些控制入口对特定页面上的声音进行控制。例如,用户点击第一控制入口后,可以看到一个具有多条记录的菜单,每条记录中记录着当前打开的一个网页的URL(或网页名称)和该网页的声音控制按钮,于是,用户可以根据这个菜单同时对多个页面中的声音进行控制。这样,用户便可以自由地选择播放哪个页面中的声音,将哪些页面中的声音置为静音。例如,用户正在某音乐网站上听音乐,同时浏览其他网站;当某网页上播放某声音时,本发明实施例便可以提示用户播放该声音的网页,然后用户可以直接将该网页关闭。或者向用户提供声音控制入口,用户可以通过点击静音按钮,将该页面中播放的声音置为静音;如果该页面上的声音感兴趣,还可以随时通过点击播放按钮,播放该页面上的声音,同时将所述音乐网站置为静音。可见,本发明实施例实现了基于页面对声音的灵活控制。另外,还可以向用户提供第二控制入口,在通过所述第二控制入口接收到用户的指令后,按照用户指令对浏览器中的声音进行全局的控制。也就是说,可以通过所述第二控制入口对浏览器中的声音进行全局控制。用户可以通过全局控制入口选择将整个浏览器(即当前在浏览器中打开的所有页面中的声音)静音,或将浏览器中的声音全部开启,这样,如果用户正在使用本地播放器听音乐,则可以通过全局控制的入口将整个浏览器置为静音(即关闭声音),而不用一个一个地将各个页面上的声音关闭。其中,所述第二控制入口设置的位置包括但不限于状态栏、地址栏或菜单栏等处。此外,在确定了浏览器中的声音所在的页面之后,还可以通知用户哪个页面上有可播放的声音。具体的,可以在具有声音的页面所在的窗口中显示本页面具有声音的提示标识。例如,可以采用在标签页、地址栏、状态栏等处提供图标等方式给出提示标识。这样用户可以很直观地发现哪个页面上有声音,如果不想被该声音干扰,可以直接选择将该页面关闭;如果想欣赏该页面中的声音,则可以进行相应的操作。当然,也可以直接将所述提示标识作为第三控制入口,与所述第一控制入口相似,在通过所述第三控制入口接收到用户的指令后,可以按照用户指令对特定页面上的声音进行对应的控制。在自动控制的方式下,可以仅播放处于焦点状态的页面中的声音。其中,所述处于焦点状态的页面是指当前处于最顶层用户可以直接看到并对其操作的页面。当然,用户可能将多个窗口缩小,使得当前可以看到多个页面,但是能够进行操作的只有一个。因此,如果某页面中有声音,只有当该页面处于焦点状态时,该页面中的声音才会被播放,否则自动将该页面中的声音置为静音。而且可以在切换页面的时候,自动切换页面中声音的播放或静音。 其中,对于多标签浏览器,切换页面可以是直接切换标签页(可以直接通过在标签栏点击完成切换);而对于多窗口浏览器,各个窗口的标签显示在任务栏中,切换页面可以是指用户在任务栏中通过点击某个标签来将某个窗口切换为焦点状态,还可以是用户直接将当前处于焦点状态的窗口最小化,此时系统可以自动将另一个窗口切换为焦点状态。当然,在自动控制方式下还可以自动将整个浏览器中的声音全部关闭,用户可以根据页面上的控制入口基于页面控制声音的播放。需要说明的是,本发明实施例提供的方法可以适用于单窗口多标签的浏览器,也可以适用于多窗口的浏览器。在多标签浏览器中,本发明实施例所述页面为标签页,在多窗口浏览器中,本发明实施例所述页面为窗口。另外,本发明实施例所述的声音可以是在浏览器中播放的音频、视频、flash等的声音。
可见,通过本发明实施例,可以获知哪些页面上有声音,哪些页面上没有声音,并且能够控制任意的页面是否播放声音或者调节声音的音量大小,还可以对浏览器全局进行声音控制,实现快速地开启或关闭整个浏览器的声音。而且当页面上有声音时,可以通过多种方式通知用户,使得用户可以识别声音的来源,并且可以提供基于页面控制声音的入口,使得用户可以根据自己的需求控制声音的开启或关闭。另外,还可以做到仅播放处于焦点状态的页面上的声音,并在切换页面时自动切换页面上声音的开启或关闭。通过本发明实施例所提供的方法,用户可以更加方便地对浏览器中的声音进行识别及控制,体现了极大的方便性及灵活性,可以深入地挖掘互联网信息资源为用户所用。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括如下步骤获知页面中的声音所在线程;通过控制所述声音所在线程,对所述浏览器中特定页面中的声音进行控制。。所述的存储介质,如R0M/RAM、磁碟、光
舟坐
ΓΤΤΤ. -rf* O与本发明实施例提供的对浏览器中的声音进行控制的方法相对应,本发明实施例还提供了一种对浏览器中的声音进行控制的系统,参见图2,该系统包括页面确定单元U201,用于获知浏览器中的声音所在的页面;页面声音控制单元U202,用于基于所述浏览器中的声音及其所在页面之间的对应关系,对所述浏览器中特定页面中的声音进行控制。如果所述浏览器中的声音包括两种以上的声音,则页面单元U201具体用于获知浏览器中每种声音各自所在的页面;页面声音控制单元U202具体用于基于浏览器中每种声音与其所在页面之间的各自对应关系,对浏览器中处于不同页面中的各种声音分别进行独立的控制。其中,可以采用线程分析的方法来获知浏览器中的声音所在的页面,此时,页面确定单元U201包括线程确定单元U2011,用于确定浏览器中的声音所在的线程;S卩,当发现浏览器中有声音在播放时,确定出声音所在的线程,此时仅仅确定了该线程是用于播放声音的,但是还不能确定该线程是由哪个页面创建的;线程分析单元U2012,用于根据所述浏览器中的声音所在的线程确定所述浏览器中的声音所在的页面。即,在确定了声音所在的线程之后,确定出该线程是由哪个页面创建的,这样就可以建立起页面与该页面上的声音所在的线程之间的对应关系。可以看出,上述线程确定单元U2011和线程分析单元U2012两个单元共同完成的功能主要是,获知页面中的声音所在的线程。当然,上述两个单元的划分是基于逻辑角度考虑的,在实际应用中也可以将上述两个单元完成的功能由一个单元单独完成,可以称这个单元为线程获知单元,所述线程获知单元用于获知页面中的声音所在线程。
由于声音的播放是通过在某个线程中调用播放声音的函数来实现的,而且每个线程都有一个唯一的线程标识符,并且系统可以提供获取线程标识符的函数,因此可以通过线程标识符来确定正在播放的声音所在的线程,此时,线程确定单元可以包括函数拦截子单元,用于拦截到播放声音的函数时,获取调用所述播放声音的函数的线程的线程标识符,当然还可以是线程的伪句柄等标识;确定子单元,用于将所述线程标识符对应的线程确定为所述浏览器中的声音所在的线程。函数拦截子单元拦截到播放声音的函数,便可以确定当前一定是有声音在播放;此时便可以通过反查调用该播放声音的函数的线程,来确定浏览器中的声音所在的线程;然后,线程分析单元可以根据所述浏览器中正在播放的声音所在的线程确定所述浏览器中的声音所在的页面。通过上述描述可知,线程确定单元在具体实现时可以具体包括函数拦截子单元和确定子单元,同理,这种单元的划分也是从逻辑角度考虑的,在具体实现时,也可以由线程确定单元一个单元实现函数拦截子单元和确定子单元两个子单元的功能,即线程确定单元,具体用于当播放声音的函数被调用时,获取调用所述播放声音的函数的线程的标识,将所述标识对应的线程确定为声音所在线程。对应的,线程分析单元,具体用于根据所述标识确定创建该声音所在线程的页面,将该声音所在线程确定为该页面中的声音所在线程。最终,页面声音控制单元U202便可以根据所述浏览器中的声音及其所在的页面之间的对应关系,对所述浏览器中的声音进行控制了。由于有些声音所在的线程与页面线程并不是同一线程,因此可能无法直接通过声音所在的线程确定声音所在的页面。但是声音所在的线程一定是声音所在页面的页面线程的子线程,因此可以通过反查父线程的方法来确定声音所在的页面。此时,该系统还包括线程记录单元U203,用于在创建线程时,拦截创建线程的函数,记录页面线程的子线程;线程分析单元U2012包括线程反查子单元,用于当浏览器中的声音所在的线程与页面所在的线程不是同一线程时,通过反查所述浏览器中的声音所在的线程的父线程,确定所述浏览器中的声音所在的页面。与前述方法实施例的技术特征相对应,具体在对特定页面中的声音进行控制时,主要通过控制声音所在线程进行控制。具体而言,页面声音控制单元U202可以包括第一页面声音控制单元,用于通过控制所述声音所在线程,对所述浏览器中特定页面中的声音进行控制。所述第一页面声音控制单元可以通过多种方式,对所述浏览器中特定页面中的声音进行控制,具体的,所述第一页面声音控制单元可以包括函数修改子单元,用于通过修改特定页面中的声音所在线程调用的用于播放声音的函数,对所述浏览器中特定页面中的声音进行控制;或者,调用中断子单元,用于通过中断特定页面中的声音所在线程对用于播放声音的函数的调用,对所述浏览器中特定页面中的声音进行静音控制;或者,线程挂起子单元,用于通过挂起特定页面中的声音所在线程,对所述浏览器中特定页面中的声音进行静音控制。在对页面中的声音进行控制时,可以与用户形成互动。为此,可以提供第一控制入口,此时,该系统还包括第一控制入口提供单元U204,用于向用户提供第一控制入口 ;此时,页面声音控制单元U202用于通过所述第一控制入口接收到用户的指令后,按照用户指令对浏览器中的声音进行对应的控制。其中,第一控制入口提供单元U204具体用于在具有所述声音的页面所在的窗口中,向用户提供对本页面中的声音的控制入口。除了可以基于页面对浏览器中的声音进行声音控制以外,还可以对浏览器中的声音进行全局控制,即从整体上开启或关闭浏览器中各个页面上的声音,或者调节浏览器中声音的音量。此时,该系统还可以包括第二控制入口提供单元U205,用于向用户提供第二控制入口 ;全局声音控制单元U206,用于通过所述第二控制入口接收到用户的指令后,按照用户指令对浏览器中的声音进行全局的控制。另外,在获取到浏览器中的声音与页面之间的对应关系后,可以向用户发出通知,告知用户哪些页面上有声音,这样如果用户想要关闭有声音的页面,则可以直接找到该页面,而不用再一个个地尝试着关闭。此时,该系统还包括提示单元U207,用于在具有所述正在播放的声音的页面所在的窗口中显示本页面具有声音的提示标识。在具体进行声音播放控制时,可以直接将所述提示标识作为第三控制入口,此时,页面声音控制单元U202用于通过所述第三控制入口接收到用户的指令后,按照用户指令对浏览器中的声音进行对应的控制。另外,页面声音控制单元U202也可以自动对浏览器中的声音进行播放控制,可以包括自动控制子单元,用于仅当所述浏览器中的声音所在的页面处于焦点状态时,开启该页面中的声音,否则,将该页面中的声音关闭;当进行页面切换时,切换页面中声音的开启或关闭。由上述可知,该系统还可以包括控制入口提供单元,用于向用户提供控制入口 ;相应的,所述第一页面声音控制单元,具体用于通过所述控制入口接收到用户的指令后,按照用户指令对浏览器中特定页面中的声音进行对应的控制。另外,所述第一页面声音控制单元可以包括自动控制子单元,用于仅当所述浏览器中的声音所在的页面处于焦点状态时,开启该页面中的声音,否则,将该页面中的声音关闭;当进行页面切换时,切换页面中声音的开启或关闭。在前文所述的实施例中,需要首先获知页面中的声音所在线程,然后通过对线程的控制来实现对特定页面中的声音进行控制。在获知页面中的声音所在线程的过程中,可以先获知有声音正在播放,然后,利用调用播放声音的线程,来查找建立该线程的页面,这样,相当于是根据声音查找页面的过程。在本发明的其他实施例中,还可以根据页面来查找声音,下面对此进行详细介绍。具体实现时,可以首先对页面中的页面元素进行分析,判断其中是否包含嵌入的播放器控件元素,如果包含,则可以确定该页面中可能有声音正在播放或可以播放,同时,可以根据所述确定的页面中的播放器控件元素,获知浏览器中的声音所在的页面。即,在该具体实施方式
下,不一定是只有正在播放的声音才能被识别,而是只要能够在该页面中播放,不管该播放器中的音频或视频是否正在播放,都可以识别出来,并能够确定该声音所在的页面。具体实现时,由于嵌入到浏览器中的播放器控件在页面中的标签(tag)名称是对象(〈object〉),同时,由于其为ActiveX控件,有其特定的ClassId (类标识符),因此,只要能够预先获知播放器控件的Classld,在获取到tag名称是〈object〉的页面元素之后,就可以将这些页面元素的ClassId与已知的播放器控件的ClassId做比较,如果相同,则可以确定页面中包含音视频播放器控件。当然,不同播放器控件的ClassId各不相同,对于相同的播放器控件,随着版本的不同,其ClassId也可能不同,因此,可以预先枚举各种播放器控件的Classld,页面元素的ClassId只要与其中任意一个相同,即可确定页面中包含音视频播放器控件。具体对于某页面而言,可以通过以下步骤获知浏览器中的声音所在的页面查询页面的文档对象模型(DOM),获取标签名称是对象的页面元素的ClassID ;将ClassID符合预置条件的页面元素确定为嵌入的播放器控件元素;根据页面与嵌入的播放器控件元素的对应关系,就可以获知浏览器中的声音所在的页面。在获知了页面中嵌入的播放器控件元素的情况下,可以直接通过控制所述播放器控件元素,对所述浏览器中特定页面中的声音进行控制。具体的,由于能够获知页面中包含的播放器控件,而且通常播放器控件都对外提供了用于声音控制的接口,因此,可以直接通过所述音视频播放器的用于声音控制的接口,对所述浏览器中特定页面中的声音进行控制。需要说明的是,在这种方式下,需要播放器控件对外提供用于声音控制的接口,即,只有当播放器控件对外提供了用于声音控制的接口时,才能够采用这种方式实现。例如,对于Windows操作系统而言,微软的播放器控件Windows Media Player就对外提供了用于声音控制的接口。由以上具体实现方式可见,本发明实施例提供的对浏览器中的声音进行控制的方法可以包括以下步骤步骤I :获知页面中嵌入的播放器控件元素;从前文可知,具体实现时,可以对页面元素进行分析,从中查找是否包含播放器控件元素。例如,可以查询页面的文档对象模型,获取标签名称是对象的页面元素的ClassID;将ClassID符合预置条件的页面元素确定为嵌入的播放器控件元素。
步骤2 :通过控制所述播放器控件元素,对所述浏览器中特定页面中的声音进行控制。具体的,由于播放器控件元素通常会对外提供用于声音控制的接口,因此,可以通过调用该接口来实现对所述浏览器中特定页面中的声音进行控制。如media player提供了mute和volume两个接口,通过调用这两个接口可以分别做到静音和调节音量。
从展现界面上看,当调用了播放器控件对外提供的接口之后,播放器控件在展现界面上也会有所变化。例如,当调用了 mute接口时,相应的播放器控件上的音量的按钮也会显示成静音的状态,就像被用户点了静音按钮一样。实际上,在用户点击静音按钮时,也是要播放器也需要调用mute接口来实现静音,只是该接口也可以被其他程序来调用。对于本发明实施例而言,如果通过浏览器来实现本发明实施例提供的方法,则就相当于由浏览器调用了 media player提供的mute接口,实现了使该播放器控件中的声音静音的目的。总之,在这种实现方式下,具体的实现过程可以是这样的通过获知页面中嵌入的播放器控件元素,相当于建立了页面与播放器控件之间的对应关系;当需要对某特定页面进行声音控制时,通过之前建立的对应关系,找到该页面中嵌入的播放器控件,然后调用该播放器控件提供的对声音进行控制的接口,就可以实现对声音的控制。类似的,如果所述浏览器中至少两个页面中存在声音,则,可以获知每个页面中各 自嵌入的播放器控件元素,然后,可以通过控制所述每个页面中各自嵌入的播放器控件元素,对浏览器中处于不同页面中的各种声音分别进行独立的控制。同样,也可能存在同一页面中包含多种声音的情况,则,可以获知同一页面中嵌入的各播放器控件元素,然后,也可以通过控制所述同一页面中的各播放器控件元素,对该页面中的各种声音进行统一控制。当然,由于是通过对页面元素进行分析获知的播放器控件元素,因此,存在以下可能可以从页面上的文字等信息,获知各播放器控件元素对应的声音,例如,如果页面上存在播放器控件元素播放的声音的名称等信息,则可以直接获取声音与播放器控件元素之间的对应关系。此时,可以通过分别控制所述同一页面中的各播放器控件元素,对该页面中的各种声音进行单独控制。也就是说,在这种情况下,可以对指定的声音进行控制。需要说明的是,本发明实施例的目的是对特定的页面中的声音进行控制,例如,如果某个页面中有声音正在播放,则能够实现将该页面中的声音静音,因此,浏览器并不需要知道页面中播放的具体是那首歌曲。也就是说,本发明实施例中所述的声音并不是是指具体某首歌曲对应的声音。因此,在本发明实施例中,只需要知道对哪个或哪些操作对象进行操作,能够实现对特定的页面进行声音控制即可。与利用线程进行控制的方法类似,在这种实现方式下,同样可以由浏览器进行自动控制,也可以结合用户的需要进行半自动地控制。具体实现时,可以参照进行,这里不再赘述。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括如下步骤获知浏览器中特定页面中嵌入的播放器控件元素;通过控制所述播放器控件元素,对所述浏览器中特定页面中的声音进行控制。所述的存储介质,如R0M/RAM、磁碟、光盘等。与上述对浏览器中的声音进行控制的方法相对应,本发明实施例还提供了对浏览器中的声音进行控制的系统,该系统可以包括播放器控件获知单元,用于获知浏览器中特定页面中嵌入的播放器控件元素;第二页面声音控制单元,用于通过控制所述播放器控件元素,对所述浏览器中特定页面中的声音进行控制。
其中,如果所述浏览器中至少两个页面中存在声音,则,所述播放器控件获知单元,具体用于获知每个页面中各自嵌入的播放器控件元素;所述第二页面声音控制单元,具体用于通过控制所述每个页面中各自嵌入的播放器控件元素,对浏览器中处于不同页面中的各种声音分别进行独立的控制。
具体实现时,所述播放器控件获知单元包括查询子单元,用于查询页面的文档对象模型,获取标签名称是对象的页面元素的ClassID ;确定子单元,用于将ClassID符合预置条件的页面元素确定为嵌入的播放器控件元素。所述第二页面声音控制单元具体用于通过所述特定页面中嵌入的播放器控件元素对外提供的用于声音控制的接口,对所述浏览器中特定页面中的声音进行控制。同样,可以对浏览器中的声音进行半自动的控制,此时,该系统还包括控制入口提供单元,用于向用户提供控制入口 ;所述第二页面声音控制单元,具体用于通过所述控制入口接收到用户的指令后,按照用户指令对浏览器中特定页面中的声音进行对应的控制。另外,还包括提示单元,用于在具有所述声音的页面所在的窗口中显示本页面具有声音的提示标识。当然,也可以对浏览器中的声音进行半自动的控制,此时,所述第二页面声音控制单元包括自动控制子单元,用于仅当所述浏览器中的声音所在的页面处于焦点状态时,开启该页面中的声音,否则,将该页面中的声音关闭;当进行页面切换时,切换页面中声音的开启或关闭。本发明实施例中所描述的系统和方法适用于各种网络或客户端环境中,例如可以实现在诸如个人计算机设备之类的计算机设备中,或者可以实现在诸如移动电话、移动通信设备、个人数字助理(PDA)等其他电子设备中。以上对本发明所提供的一种对浏览器中的声音进行控制的方法及系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种对浏览器中的声音进行控制的方法,其特征在于,包括 获知浏览器中特定页面中嵌入的播放器控件元素; 通过控制所述播放器控件元素,对所述浏览器中特定页面中的声音进行控制。
2.根据权利要求I所述的方法,其特征在于,如果所述浏览器中至少两个页面中存在声音,则, 所述获知页面中嵌入的播放器控件元素包括获知每个页面中各自嵌入的播放器控件元素; 所述通过控制所述播放器控件元素,对所述浏览器中特定页面中的声音进行控制包括通过控制所述每个页面中各自嵌入的播放器控件元素,对浏览器中处于不同页面中的各种声音分别进行独立的控制。
3.根据权利要求I所述的方法,其特征在于,所述通过控制所述播放器控件元素,对所述浏览器中特定页面中的声音进行控制包括 调用所述特定页面中嵌入的播放器控件元素对外提供的用于声音控制的接口,对所述浏览器中特定页面中的声音进行控制。
4.根据权利要求I至3任一项所述的方法,其特征在于,所述通过控制所述播放器控件元素,对所述浏览器中特定页面中的声音进行控制包括 仅当所述特定页面处于焦点状态时,开启该页面中的声音,否则,将该页面中的声音关闭; 当进行页面切换时,切换页面中声音的开启或关闭。
5.—种对浏览器中的声音进行控制的系统,其特征在于,包括 播放器控件获知单元,用于获知浏览器中特定页面中嵌入的播放器控件元素; 第二页面声音控制单元,用于通过控制所述播放器控件元素,对所述浏览器中特定页面中的声音进行控制。
6.根据权利要求5所述的系统,其特征在于,如果所述浏览器中至少两个页面中存在声音,则, 所述播放器控件获知单元,具体用于获知每个页面中各自嵌入的播放器控件元素;所述第二页面声音控制单元,具体用于通过控制所述每个页面中各自嵌入的播放器控件元素,对浏览器中处于不同页面中的各种声音分别进行独立的控制。
7.根据权利要求5所述的系统,其特征在于,所述播放器控件获知单元包括 查询子单元,用于查询页面的文档对象模型,获取标签名称是对象的页面元素的ClassID ; 确定子单元,用于将ClassID符合预置条件的页面元素确定为嵌入的播放器控件元素。
8.根据权利要求5所述的系统,其特征在于,所述第二页面声音控制单元具体用于调用所述特定页面中嵌入的播放器控件元素对外提供的用于声音控制的接口,对所述浏览器中特定页面中的声音进行控制。
9.根据权利要求5至8任一项所述的系统,其特征在于,还包括 控制入口提供单元,用于向用户提供控制入口 ; 所述第二页面声音控制单元,具体用于通过所述控制入口接收到用户的指令后,按照用户指令对浏览器中特定页面中的声音进行对应的控制。
10.根据权利要求5至8任一项所述的系统,其特征在于,还包括 提示单元,用于在具有所述声音的页面所在的窗口中显示本页面具有声音的提示标识。
11.根据权利要求 5至8任一项所述的系统,其特征在于,所述第二页面声音控制单元包括 自动控制子单元,用于仅当所述浏览器中的声音所在的页面处于焦点状态时,开启该页面中的声音,否则,将该页面中的声音关闭;当进行页面切换时,切换页面中声音的开启或关闭。
全文摘要
本发明公开了一种对浏览器中的声音进行控制的方法及系统,其中,所述对浏览器中的声音进行控制的方法包括获知页面中的声音所在线程;通过控制所述声音所在线程,对所述浏览器中特定页面中的声音进行控制。或者,获知浏览器中特定页面中嵌入的播放器控件元素;通过控制所述播放器控件元素,对所述浏览器中特定页面中的声音进行控制。通过本发明,能够获知声音与页面的对应关系,基于页面对浏览器中的声音进行灵活地控制。
文档编号G06F9/44GK102622222SQ20111045200
公开日2012年8月1日 申请日期2009年12月23日 优先权日2009年4月30日
发明者万勇 申请人:北京搜狗科技发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1