CN102497423B - 网页聊天室的放歌方法、装置及系统 - Google Patents

网页聊天室的放歌方法、装置及系统 Download PDF

Info

Publication number
CN102497423B
CN102497423B CN201110411309.6A CN201110411309A CN102497423B CN 102497423 B CN102497423 B CN 102497423B CN 201110411309 A CN201110411309 A CN 201110411309A CN 102497423 B CN102497423 B CN 102497423B
Authority
CN
China
Prior art keywords
song
flash
user
voice server
dst player
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
CN201110411309.6A
Other languages
English (en)
Other versions
CN102497423A (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.)
Guiyang Longmaster Information and Technology Co ltd
Original Assignee
Guiyang Longmaster Information and 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 Guiyang Longmaster Information and Technology Co ltd filed Critical Guiyang Longmaster Information and Technology Co ltd
Priority to CN201110411309.6A priority Critical patent/CN102497423B/zh
Publication of CN102497423A publication Critical patent/CN102497423A/zh
Application granted granted Critical
Publication of CN102497423B publication Critical patent/CN102497423B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开一种网页聊天室的放歌方法、装置及系统,以丰富聊天室的功能并解决现有的网页聊天室交互性差的问题。该方法包括:开发人员搭建Web服务器集群,将flash流媒体播放器及其可执行代码嵌入对应一聊天室的置标语言文件中并存放于网页内容服务器上;在用户以浏览器进入聊天室后,浏览器调用flash流媒体播放器处理用户的放歌操作;其中放歌操作的处理至少包括:flash流媒体播放器建立与语音服务器之间的通信连接,flash流媒体播放器将由可执行代码捕获的用户请求发送给语音服务器,以及根据语音服务器下发的控制指令处理用户点播的第三方歌曲。

Description

网页聊天室的放歌方法、装置及系统
技术领域
本发明涉及一种网页聊天室的放歌方法、装置及系统,尤其涉及一种语音聊天室的放歌方法、装置及系统。
背景技术
随着互联网的迅速发展,各类聊天工具及聊天室如雨后春笋般林立。
然而现有的聊天室大多是C/S架构的,如腾讯QQ的多人语聊,YY语音和新浪show等等,而B/S架构的网页聊天室则少之又少。在C/S架构的聊天室系统中,很多功能都由客户端而不是服务器去执行,从而导致客户端比较复杂和占用内存,而且各用户的客户端分开部署,管理极为不便。而现有的B/S架构的网页聊天室中,大多只能进行简单的文字和符号交流,由此还需要进一步改善用户与用户之间的交互性。
放歌是丰富聊天室内容的一个重要手段。在网页聊天室中,由于带宽和网络协议等因素的限制,用户还不具备放歌的功能。与放歌有点接近的是第九视频中的主持人唱歌功能,实现时,用户在文本聊天窗口中发送包括歌手和歌名的点歌信息,然后再等待主持人唱歌并将录入的唱歌声音广播或组播给聊天室中的其它用户,藉此,则普通用户和游客只能沦为听众,而且所唱歌曲的音频信息是通过耳麦录入之后再传输及播放的,由于耳麦容易录入外界的噪音且音质受主持人的个唱功底的限制,因此音质没法保障。
发明内容
本发明的主要目的在于公开一种网页聊天室的放歌方法、装置及系统,以丰富聊天室的功能并解决现有的网页聊天室交互性差的问题。
为达上述目的,本发明实施例公开一种网页聊天室的放歌方法,包括:
开发人员搭建Web服务器集群,所述Web服务器集群至少包括网页内容服务器及语音服务器;
开发人员将flash流媒体播放器及其可执行代码嵌入对应一聊天室的置标语言文件中并存放于所述网页内容服务器上;
在用户以浏览器进入所述聊天室后,所述浏览器调用所述flash流媒体播放器处理用户的放歌操作;
其中所述放歌操作的处理至少包括:
步骤S1、所述flash流媒体播放器建立与所述语音服务器之间的通信连接;
步骤S2、所述flash流媒体播放器将由所述可执行代码捕获的用户请求发送给所述语音服务器,以及根据所述语音服务器下发的控制指令处理用户点播的第三方歌曲。
为达上述目的,本发明还公开一种flash流媒体播放器,包括:
通信模块,用于建立与语音服务器之间的通信连接;
执行模块,用于在所述通信模块建立与语音服务器的通信连接后,将由嵌入聊天室网页中的可执行代码捕获的用户请求发送给所述语音服务器,以及根据所述语音服务器下发的控制指令处理用户点播的第三方歌曲。
为达上述目的,本发明还公开一种语音服务器,包括:
通信模块,用于建立与flash流媒体播放器之间的通信连接;
语音处理模块,用于在所述通信模块建立与flash流媒体播放器之间的通信连接后,接收所述flash流媒体播放器的用户请求,根据所述用户请求下发控制指令以供所述flash流媒体播放器处理用户点播的第三方歌曲。
为达上述目的,本发明还公开一种网页聊天室系统,包括浏览器,还包括Web服务器集群和flash流媒体播放器,所述Web服务器集群至少由网页内容服务器和语音服务器组成;所述网页内容服务器上存放有对应一聊天室的置标语言文件,该置标语言文件嵌入有flash流媒体播放器及其可执行代码;
其中所述浏览器,用于在用户进入所述聊天室后,调用所述flash流媒体播放器处理用户的放歌操作;
所述flash流媒体播放器,用于建立与所述语音服务器之间的通信连接,将由所述可执行代码捕获的用户请求发送给所述语音服务器;以及
所述语音服务器,用于建立与flash流媒体播放器之间的通信连接,接收所述flash流媒体播放器的用户请求,根据所述用户请求下发控制指令以供所述flash流媒体播放器处理用户点播的第三方歌曲。
与现有技术相比,本发明至少具有以下优点:
1、扩展了浏览器和聊天室的功能。
2、flash流媒体播放器的操作受网络侧语音服务器的制约,其二者的交互与聊天室用户之间的交互对应,从而提高了用户之间的交互性。
3、flash流媒体播放器都是在用户浏览聊天室的过程中,由网页内容服务器将其推送给浏览器进行加载和调用;因此网页内容服务器能对该flash流媒体播放器的更新、安装及卸载等操作进行统一管理,且管理便捷。
4、由于本发明采用语音服务器来控制各flash流媒体播放器的相关操作,因此,降低了flash流媒体播放器的复杂度,同时也节省了网页内容服务器向浏览器推送置标语言文件的时间,加快了浏览器加载和调用的速度;从而使得flash流媒体播放器加载和调用的整个过程能在短时间内自动完成,简化了用户的相关操作,增强了用户体验。
5、上述的第三方歌曲是独立于语音服务器和flash流媒体服务器之外的数字歌曲,该歌曲可以是存储在用户本地的歌曲,也可以是链接到其它网络的可供下载的网络歌曲,从而杜绝了外界噪声源的干扰,使得放歌的音质很有保障。
附图说明
图1是本发明实施例公开的网页聊天室的放歌流程示意图;
图2是本发明实施例公开的一套对应实施例一的放歌操作的流程图;
图3是本发明实施例公开的又一套对应实施例一的放歌操作的流程图;
图4是本发明实施例公开的网页聊天系统的结构示意图;
图5是图4中flash流媒体播放器的简易结构示意图;
图6是图5中flash流媒体播放器一种内部功能模块的架构示意图;
图7是图5中flash流媒体播放器又一种内部功能模块的架构示意图;
图8是图4中语音服务器的简易结构示意图;
图9是图8中语音服务器的一种内部功能模块的架构示意图;
图10是图8中语音服务器的又一种内部功能模块的架构示意图;
图11是本发明实施例公开的又一种flash流媒体播放器的内部功能模块的架构示意图;
图12是本申请人基于本发明技术方案开发的网页聊天室的页面示意图;
图13是打开图12中的flash流媒体播放器的页面显示示意图。
具体实施方式
下面结合说明书附图对本发明的具体实现方式做一详细描述。
实施例一
本实施例公开一种网页聊天室的放歌方法。在放歌之前,开发人员预先搭建好Web服务器集群,该Web服务器集群通常都设有用于处理文本聊天的服务器(此为现有技术,不作赘述)。本发明中,该Web服务器集群至少还包括网页内容服务器及语音服务器。其中网页内容服务器上存放有对应一聊天室的置标语言文件,其中一个置标语言文件对应一个网页,用于在用户以浏览器请求浏览该文件时,将该文件推送给浏览器供其在解码后以页面显示给用户;可选的,该置标语言文件可以是HTML(Hypertext MarkupLanguage,文本标记语言)文件或XHTML(eXtensible HyperText MarkupLanguage,可扩展超文本置标语言)文件。本实施例中,该置标语言文件嵌入有flash流媒体播放器及其可执行代码,以便浏览器调用flash流媒体播放器以及时地捕获用户请求并交给语音服务器处理。
在用户以浏览器进入聊天室后,浏览器调用flash流媒体播放器处理用户的放歌操作。其中放歌操作的处理如图1所示,至少包括以下步骤:
步骤S1、flash流媒体播放器建立与语音服务器之间的通信连接。
步骤S2、flash流媒体播放器将由可执行代码捕获的用户请求发送给语音服务器,以及根据语音服务器下发的控制指令处理用户点播的第三方歌曲。藉此,flash流媒体播放器的操作受网络侧语音服务器的制约,其二者的交互与聊天室用户之间的交互对应,从而提高了用户之间的交互性。
本发明所述的第三方歌曲是指语音服务器和flash流媒体播放器之外的用户本地或网络链接等第三方的歌曲,其歌曲的格式包括但不限于Mp3(MovingPicture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)。
上述步骤S2所述的用户请求包括以下请求的任意一种或任意组合:
放歌请求、播放请求、暂停请求、切歌请求、删歌请求及相对于整个flash流媒体播放器的打开和关闭请求。
本实施例优选flash流媒体播放器能处理以上例举的所有请求。
图2公开了一套放歌的操作流程。值得说明的是,为简化描述,该图省略了用户根据显示的聊天室页面输入相应请求的步骤,可选的,其放歌的操作流程还包括以下步骤:
步骤S20、flash流媒体播放器接收用户的放歌请求,向嵌入聊天室网页中的聊天客户端建立通信连接并获取放歌权限,如果权限开放,则建立与语音服务器之间的TCP连接,以便以RTMP协议开启与该语音服务器之间的信令和数据交互。
该步骤的放歌请求用于打开flash流媒体播放器,使之在页面的适当位置弹出该流flash媒体播放器的显示界面,以执行添加歌曲、播放、切歌、暂停、删歌等操作,以及隐藏或关闭该flash流媒体播放器的操作。
该步骤为可选步骤,如果语音服务器默认对聊天室中的所有用户开放放歌权限则可省略上述步骤S20。根据步骤S20的执行结果,当用户获取有放歌权限之后,后续步骤S21至步骤S29才得以相继执行;反之,则flash流媒体播放器停留在步骤S20并应用户的放歌请求重复执行该步骤;其中该请求由嵌入聊天室网页中的相关可执行代码进行捕获。
值得说明的是:该步骤所述的聊天客户端构成对应聊天室的置标语言文件的一部分,主要用于与语音服务器交互以实现聊天室用户麦上数据(即以用户的耳麦所录入的声音信号)的编解码及收发等处理,与flash流媒体播放器是两个不同的客体。此外,在执行上述步骤S2的过程中,当嵌入网页的聊天客户端设置有flash流媒体播放器的操作权限显示窗口时,语音服务器可以采用下述几种方式下发能改变该用户权限的控制指令,以修改该用户的显示权限。
方式一、将该控制指令分别发送给聊天客户端和flash流媒体播放器;
方式二、将该控制指令下发给聊天客户端,进而由聊天客户端将该控制指令转发给flash流媒体播放器;
方式三、将该控制指令下发给flash流媒体播放器,再由flash流媒体播放器将该控制指令发送给聊天客户端。
上述方式二和三能有效减少语音服务器的相关指令重复下发给浏览器。本实施例优选方式三,且当控制指令不涉及改变聊天客户端中用户的显示权限时,该flash客户端不需要进行控制指令的转发处理。
在其它实施例中,flash流媒体播放器被浏览器调用后,也可以直接与语音服务器以RTMP协议建立TCP连接,而省略与聊天客户端之间的交互。但考虑到语音服务器通常都对聊天室中的用户进行统一管理,且相关的用户操作权限通常也习惯于直观地呈现给用户,因此本发明实施例优选上述步骤S20的操作方式,藉此,则可以在语音服务器未向聊天室的用户发放放歌权限时,省略后续建立与语音服务器之间的TCP连接的步骤,从而减少语音服务器的数据处理压力。
步骤S21、flash流媒体播放器获取用户点播的歌曲,将该歌曲封装成swf(shock wave flash)格式以待播放,并将解析出的歌曲的头部信息显示在播放列表中。
值得说明的是,swf是安装有Adobe Flash Player插件或本发明flash流媒体播放器的浏览器能打开并播放的一种格式文件,由于现有的Adobe FlashPlayer能播放和管理swf格式文件,因此本发明的flash流媒体播放器可以在调用现有的Adobe Flash Player功能的基础上做进一步的开发,后续实施例不再赘述。
步骤S22、flash流媒体播放器向语音服务器发送用户的播放请求以获取播放许可。其中该步骤是基于以下考虑设置的:
由于聊天室放歌少不了语音服务器的数据处理,且一个聊天室在同一时间通常只允许一个用户进行放歌(其中该歌曲可以是用户本地存储的歌曲或是链接第三方内容供应商的在线歌曲,且该歌曲的格式包括但不限于Mp3),并以此作为聊天室的背景音乐或作为卡拉OK模式下的伴奏,因此需要语音服务器进行许可。
步骤S23、获取播放许可后,flash流媒体播放器通过独立于麦上数据的上传通道将所点的歌曲以flv(flash video)格式上传至语音服务器;在上传的过程中,语音服务器将所点的歌曲作为一路音频输入源参与聊天室的混音,flash流媒体播放器则监听语音服务器发送的同步播放指令。其中,该步骤所述的flv格式上传是一种流媒体的上传方式。
在该步骤中,用户的麦上数据的上传通道与所点歌曲flv数据流的上传通道彼此独立,其中用户上传麦上数据的功能由嵌入聊天室网页中的聊天客户端来实现;换言之,即本实施例中flash流媒体播放器上传用户点播歌曲的数据通道与聊天客户端上传麦上数据的通道彼此独立,不存在干扰。
步骤S24、flash流媒体播放器在接收到同步播放指令后,播放所点的歌曲。
在该步骤中,所谓同步播放指令,是指由语音服务器发送的,用于控制上传歌曲的flash流媒体播放器与该聊天室的其它用户的浏览器尽可能同步地播放所点歌曲的指令。实际中,由于该同步播放指令的传送路径与对应聊天室各用户的各路混音数据的传送路径都不同,从而使得语音服务器下发的数据和指令基本不可能同时到达不同的目的地,因此该同步只是相对意义上的同步,而不是绝对意义上的同步。
而本实施例中,语音服务器可以基于下述方式决定何时向flash流媒体播放器下发同步播放指令:
方式一
语音服务器判断缓存的歌曲数据是否大于或等于预先设置的混音阈值,当判断结果为是时,向语音服务器发送同步播放指令。
在该步骤中,上传数据首先到达语音服务器的缓存;通常该缓存的存储空间是固定且有限的,同时为了尽量减少歌曲在播放过程中的中断,该语音服务器必须等待缓存中的歌曲数据帧达到某一临界时才进行混音,本实施例将该临界称之为混音阈值。其中,当语音服务器的缓存中接收到上传的歌曲数据帧后,即开始判断缓存的歌曲数据帧是否大于或等于该混音阈值,当判断结果为是时,下发携带指示有播放时间的同步播放指令。其中该混音阈值由语音服务器预先设置且小于其可用缓存的最大值。此外,由于语音服务器的缓存还需要用于暂存各用户的麦上数据,所以用于放歌的可用缓存的最大值小于整个缓存的存储容量。该方式中,语音服务器还需要统计出其携带歌曲信息的混音数据流到达其它用户浏览器的估计时长,并根据该估计时长设定flash流媒体播放器的播放时间,然后将该播放时间携带在同步播放指令中,以供接收端的flash流媒体播放器在该播放时间来临时,与该聊天室中其它用户的浏览器进行同步播放。
方式二
语音服务器在向该聊天室的其它用户分发携带歌曲信息的混音数据的同时,向flash流媒体播放器发送同步播放指令。由于同步播放指令与携带歌曲信息的混音数据同步下发,在理想状况下,该聊天室的其它用户的浏览器接收到语音服务器推送的混音数据流的时间与上传歌曲的flash流媒体播放器接收到同步播放指令的时间基本一致,因此基本可实现上传歌曲的用户与该聊天室的其它用户同步收听到该上传用户所点播的歌曲。
其中在方式二中,flash流媒体播放器接收到同步播放指令即开始启动播放,从而省略了语音服务器在下发的同步播放指令中携带指示flash流媒体播放器何时进行播放的附加信息,简化了系统设计的复杂度。
基于上述步骤,在点播及播放歌曲的过程中,当用户所点的歌曲为Mp3格式时;该语音服务器先从flv格式文件中解码出Mp3数据,然后再将该Mp3数据解码为PCM(Pulse-code modulation,脉冲编码调制)数据,之后再参与聊天室混音。较佳的,有关语音服务器的混音还需要执行重新采样、帧对齐等操作,该混音的具体执行方案请参照本案申请人于2011年5月25日申请的名称为“混音方法及设备”、申请号为201110136353.0的发明专利。混音后,该语音服务器将携带有歌曲信息的混音数据进行编码,然后将该编码数据封装成flv数据流推送给该聊天室其它用户的浏览器,以供各浏览器调阅聊天客户端以实时进行混音数据的解码及播放。其中,嵌入有flash插件(例如:现有的Adobe Flash Player及本实施例的聊天客户端)的浏览器在线播放语音服务器下发的flv数据流为本领域技术人员所能轻易实现的技术,与现有用户在土豆、百度视频、优酷等视频网站安装相应的插件后在线观看视频的技术手段类似,本实施例不作赘述。
在语音服务器在线放歌的过程中,对播放过的歌曲数据帧,语音服务器将自动清除;较佳的,该语音服务器还执行下段的操作以对放歌数据帧的上传进行实时的监控处理:
定时检测当前已缓存的歌曲数据帧的播放时长,判断该时长是否小于其预先设置的可用缓存的存储时长,如果是指令flash流媒体播放器继续上传,如果否,则指令flash流媒体播放器中止上传。其中,该可用缓存的存储时长即语音服务器分配专用于放歌的缓存所能容纳的歌曲数据所对应的播放时长,该时长也预先由语音服务器进行设置,时长一般为5~10秒。进一步的,当语音服务器检测到当前已缓存数据帧的播放时长与可用缓存的存储时长之间的差值小于某一阈值时,指令所述flash流媒体播放器加速上传;举例说明,假如该阈值为5s,可用缓存能容纳10s的播放时长,则该语音服务器在缓存的播放数据少于5s前可以指令flash流媒体播放器以加倍的速度上传。更进一步的,语音服务器在接收到所点歌曲的每一帧数据之后,计算该帧数据的等待时长(即等待混音的时长),判断该时长是否不大于其预先设置的可用缓存的存储时长,如果判断结果为否,则丢弃该数据帧。
上述监控处理基本可以确保flash流媒体播放器的上传数据不会堵塞在网络中。
值得说明的是:基于用户操作的随意性,下述步骤与步骤之间可以是并行的关系,也可以是串行的关系;图中仅示意出一种简易的串行关系,本领域的技术人员应当明白本发明的保护范围应以权利要求所界定的保护范围为准,而不应以图2中的一具体实施例的示意图来限定本发明的保护范围。
步骤S25、在播放的过程中,当上传用户执行暂停操作时,flash流媒体播放器停止播放并向语音服务器发送停止播放请求以供其同步进行暂停处理;同时,语音服务器还进一步判断缓存的歌曲数据是否达到预先设置的可用缓存的播放时长,如果到达该时长,则指令flash流媒体服务器停止上传相应的歌曲数据。
步骤S26、用户在暂停之后又执行继续播放操作,flash流媒体播放器恢复数据的上传,并在上传所点的歌曲所对应的数据帧的过程中,还计算当前上传数据帧需要的播放时长与已经播放过的时长的差值,然后根据累计的暂停次数修正该差值,以及计算修正后的差值是否大于预先设置的某一临界值,较佳的,该临界值等于或略大于语音服务器预先设置的可用缓存的存储时长,如果是,中止当前数据帧的上传。
在实践中,本案申请人发现,本发明的flash流媒体播放器及现有的AdobeFlash Player存在下述缺陷:
当用户每执行一次暂停操作,歌曲数据帧的播放时长会相应减少139.3197(ms)。因此上述步骤S26在进行上传监控的过程中加上暂停导致的时长减少值。
本发明中,通常由语音服务器来进行上传数据的监控即可大致满足用户的应用需求。因此,该步骤S26关于flash播放器进行上传数据帧的监控属于可选操作,其目的在于:进一步确保flash流媒体播放器的上传数据不会堵塞在网络中。
步骤S27、在播放过程中,当用户执行切歌或删歌操作时,语音服务器根据接收到的由flash流媒体播放器发送的相应请求清空被切或被删歌曲的缓冲数据,且在切歌操作中,flash流媒体播放器再执行上述步骤S21及其之后的放歌操作。
步骤S28、当用户执行关闭flash流媒体播放器操作后,语音服务器清空该用户的所上传歌曲的所有缓冲数据。较佳的,语音服务器依然维持与浏览器及其所调用的flash流媒体播放器之间的通信连接,以便于聊天室中的用户稍后再执行放歌操作。该步骤中,语音服务器可以基于心跳或其它检测机制去判断flash流媒体播放器是否已被关闭,也可以由flash流媒体播放器即时向该语音服务器发送关闭请求。
步骤S29、当用户执行退出聊天室网页操作后,语音服务器终止与浏览器及其所调用的flash流媒体播放器之间的通信连接,清空该用户的所有缓冲数据(该缓冲数据包括麦上数据)。
综上,本实施例公开的flash流媒体播放器的放歌方法至少具有以下优点:
1、扩展了浏览器和聊天室的功能。
2、flash流媒体播放器的操作受网络侧语音服务器的制约,其二者的交互与聊天室用户之间的交互对应,其交互操作包括播放、暂停、切歌、删歌及关闭播放器等处理,从而提高了用户之间的交互性。而且,两者之间的缓冲监控机制确保了flash流媒体播放器的上传数据不会堵塞在网络中,同时还降低了对语音服务器的配置要求。
3、flash流媒体播放器都是在用户浏览聊天室的过程中,由网页内容服务器将其推送给浏览器进行加载和调用;因此网页内容服务器能对该flash流媒体播放器的更新、安装及卸载等操作进行统一管理,且管理便捷。
4、由于本发明采用语音服务器来控制各flash流媒体播放器的相关操作,因此,降低了flash流媒体播放器的复杂度,同时也节省了网页内容服务器向浏览器推送置标语言文件的时间,加快了浏览器加载和调用的速度;从而使得flash流媒体播放器加载和调用的整个过程能在短时间内自动完成,简化了用户的相关操作,增强了用户体验。
实施例二
本实施例是对实施例一的一种变形。其放歌的操作流程,如图3所示,包括以下步骤:
步骤S210、flash流媒体播放器将用户的播放请求发送给语音服务器以获取播放许可;
步骤S211、获得播放许可后,flash流媒体播放器将所点的歌曲以flv格式上传至语音服务器;
步骤S212、语音服务器将所点的歌曲作为一路音频输入源参与聊天室的混音,同时将所点的歌曲与聊天室中其它用户的音频数据混音后回传给上传用户所在的聊天客户端或flash流媒体播放器,以供其与聊天室其它用户的聊天客户端同步播放所点歌曲。与实施例一的不同之处在于,实施例一不需要将接收的歌曲数据帧进行回传,语音服务器处理混音的复杂度略微低些。其优点在于,本实施例减少了语音服务器相关控制指令的下发,例如,当回传的数据是交由聊天客户端来进行解码播放处理(注:该聊天客户端可以调用现有的Adobe Flash Player来进行播放处理)时,语音服务器也省略了同步播放指令的下发,同时在保留flash流媒体播放器播放指令的发送功能的前提下可省略其播放功能的开发设计。
在本实施例中,语音服务器上传数据的缓冲监控可以沿用上述实施例一所公开的方法。同时,flash流媒体播放器在执行添加歌曲、发送播放指令、暂停、切歌、删歌、关闭flash流媒体播放器及退出聊天室的相关操作也与上述实施例一类似,在此不作赘述。
同理,本实施例取得的技术效果与上述实施例一类似,在此不作赘述。
实施例三
本实施例公开一种网页聊天室系统,如图4所示,包括浏览器10、Web服务器集群60和flash流媒体播放器50,Web服务器集群60至少由网页内容服务器30和语音服务器20组成;网页内容服务器30上存放有对应一聊天室的置标语言文件40,该置标语言文件40嵌入有flash流媒体播放器50及其可执行代码。
其中浏览器,用于在用户进入聊天室后,调用flash流媒体播放器处理用户的放歌操作。
flash流媒体播放器,用于建立与语音服务器之间的通信连接,将由可执行代码捕获的用户请求发送给语音服务器。
语音服务器,用于建立与flash流媒体播放器之间的通信连接,接收flash流媒体播放器的用户请求,根据用户请求下发控制指令以供flash流媒体播放器处理用户点播的第三方歌曲。
本实施例中,flash流媒体播放器和语音服务器所处理的用户请求包括以下请求的任意一种或任意组合:
放歌请求、播放请求、暂停请求、切歌请求、删歌请求及相对于整个flash流媒体播放器的打开和关闭请求。
本实施例中,flash流媒体播放器与语音服务器之间相应部署有处理上述用户请求的功能模块,其中各处理模块的业务逻辑与上述实施例公开的方法流程相对应。
flash流媒体播放器50内部功能模块的架构如图5所示,至少包括:
通信模块51,用于建立与语音服务器之间的通信连接;
执行模块52,用于在通信模块建立与语音服务器的通信连接后,将由嵌入聊天室网页中的可执行代码捕获的用户请求发送给语音服务器,以及根据语音服务器下发的控制指令处理用户点播的第三方歌曲。
与实施例一所公开的方法流程所对应的,该执行模块如图6所示,包含有下述依次建立通信连接第一至第四执行单元53~57,各执行单元的功能分述如下:
第一执行单元,用于获取用户点播的歌曲,将该歌曲封装成swf格式以待播放,并将解析出的歌曲的头部信息显示在播放列表中;
第二执行单元,用于向语音服务器发送用户的播放请求以获取播放许可;
第三执行单元,用于在获取播放许可后,将所点的歌曲通过独立于麦上数据的上传通道以flv格式上传至语音服务器,以供语音服务器将所点的歌曲作为一路音频输入源参与聊天室的混音;并在上传的过程中,监听语音服务器发送的同步播放指令;
第四执行单元,用于监听所述语音服务器发送的同步播放指令,并在接收到所述同步播放指令后,播放所点的歌曲。
上述第一至第四执行单元确保了flash流媒体播放器与语音服务器同步启动用户点播的第三方歌曲的播放进程。由于语音服务器的缓存通常都比较小,而可分配用于缓存用户上传的歌曲数据帧的可用缓存则更小;所以在放歌过程中,flash流媒体播放器通常都是边上传边播放的,由此则还需要相应的缓冲机制来确保播放的连续性。较佳的,该缓冲机制可以由语音服务器来进行主控制,并由flash流媒体播放器来进行辅助控制。基于此,与上述步骤S26所对应的,上述的第三执行单元还可用于计算当前上传数据帧需要的播放时长与已经播放过的时长的差值,并根据累计的暂停次数修正该差值,然后计算修正后的差值是否大于预先设置的某一临界值,较佳的,该临界值等于或略大于语音服务器预先设置的可用缓存的存储时长,如果是,中止当前数据帧的上传。
本实施例中,如图6所示,上述执行模块还可进一步包括第五执行单元57以执行上述实施例一中的步骤S20所对应的步骤,具体的,该第五执行单元用于接收用户的放歌请求,向嵌入聊天室网页中的聊天客户端建立通信连接并获取放歌权限,如果权限开放,则使令通信模块建立与语音服务器之间的TCP连接,以便第一至第四执行单元以RTMP协议开启与该语音服务器之间的信令和数据交互。
与上述实施例二所对应的,图5所示的执行模块可以包含有图7所示的第六和第七执行单元57、58,各执行单元的功能分述如下:
第六执行单元57,用于将用户的播放请求发送给语音服务器以获取播放许可;
第七执行单元58,用于获得播放许可后,将所点的歌曲以flv格式上传至语音服务器,以供语音服务器将所点的歌曲作为一路音频输入源参与聊天室的混音,同时供语音服务器将所点的歌曲与聊天室中其它用户的音频数据混音后回传给上传用户的聊天客户端或flash流媒体播放器,进而使该聊天客户端或flash流媒体播放器与聊天室其它用户的聊天客户端同步播放所点歌曲。
在本实施例中,当嵌入网页的聊天客户端设置有所述flash流媒体播放器的操作权限显示窗口时,较佳的,上述flash流媒体播放器的通信模块还用于将能改变该用户权限的控制指令发送给嵌入网页的聊天客户端,以供其修改该用户的显示权限。
本实施例公开的网页聊天室系统中,语音服务器的结构如图8所示,至少包括:
通信模块21,用于建立与flash流媒体播放器之间的通信连接;
语音处理模块22,用于在通信模块建立与flash流媒体播放器之间的通信连接后,接收flash流媒体播放器的用户请求,根据用户请求下发控制指令以供flash流媒体播放器处理用户点播的第三方歌曲。
其中,无论图5的执行模块是由图6中的第一至第五执行单元构成,还是由图7中的第六和第七执行单元构成;与之相应的语音服务器的缓冲处理机制都是一样的,其不同之处在于当flash流媒体播放器的执行模块是由图2所示的第六和第七执行单元构成时,语音服务器则还需要增设一个执行上传歌曲数据回传的功能单元,并省略了同步播放指令的下发的功能设计,同时简化了与之对应的flash流媒体播放器的播放功能的开发设计。
与实施例一及实施例二对应的语音处理模块的内部功能单元分述如下:
与实施例一所对应的,语音处理模块22包括缓存(图中未示出)、混音单元(图中未示出)、第一或第二同步播放单元(图中未示出)以及如图9所示的第二至第四处理单元中的任意一种或任意组合。其中该缓存用于存储flash流媒体播放器所上传的第三方歌曲数据,混音单元用于将缓存中flash流媒体播放器所上传的歌曲作为一路音频输入源参与聊天室的混音;第一同步播放单元,用于向该聊天室的其它用户分发携带歌曲信息的混音数据的同时,向所述flash流媒体播放器发送同步播放指令;第二同步播放单元则用于判断缓存的歌曲数据是否大于或等于预先设置的混音阈值,当判断结果为是时,向flash流媒体播放器发送携带指示有播放时间的同步播放指令。第二至第四处理单元的功能分述如下:
第二处理单元24,用于在接收到flash流媒体播放器的切歌或删歌请求后,清空被切或被删歌曲的缓冲数据帧,当接收到关闭flash流媒体播放器请求后,清空该用户的所上传歌曲的所有缓冲数据,以及在获取到用户关闭聊天室网页之后,清空该用户的所有缓冲数据;
第三处理单元25,用于在接收上传歌曲的过程中,定时检测当前已缓存的歌曲数据帧的播放时长,判断该时长是否小于其预先设置的可用缓存的存储时长,如果是,指令flash流媒体播放器继续上传,如果否,则指令flash流媒体播放器中止上传;以及当检测到当前已缓存数据帧的播放时长与该可用缓存的存储时长之间的差值小于某一阈值时,指令flash流媒体播放器加速上传;
第四处理单元26,用于在接收到所点歌曲的每一帧数据之后,计算该帧数据的等待时长,判断该时长是否不大于其预先设置的可用缓存的存储时长,如果判断结果为否,则丢弃该数据帧。
与实施例二所对应的,如图10所示,语音处理模块22包括下述的第六和第七处理单元27、28,较佳的,该语音处理模块22还可以进一步包括上述图9中所示的第二至第四处理单元中的任意一种或任意组合。其中,第六处理单元27用于接收flash流媒体播放器的播放请求,根据该播放请求下发播放许可;第七处理单元28用于在所述第六处理单元下发播放许可后,将从flash流媒体播放器所接收的上传歌曲作为一路音频输入源参与聊天室的混音,同时将所点的歌曲与聊天室中其它用户的音频数据混音后回传给上传用户的聊天客户端或flash流媒体播放器,进而使该聊天客户端或flash流媒体播放器与聊天室其它用户的聊天客户端同步播放所点歌曲。
本实施例公开的网页聊天室系统及其装置至少具有以下优点:
1、扩展了浏览器和聊天室的功能。
2、flash流媒体播放器的操作受网络侧语音服务器的制约,其二者的交互与聊天室用户之间的交互对应,其交互操作包括播放、暂停、切歌、删歌及关闭播放器等处理,从而提高了用户之间的交互性。而且,两者之间的缓冲监控机制确保了flash流媒体播放器的上传数据不会堵塞在网络中,同时还降低了对语音服务器的配置要求。
3、flash流媒体播放器都是在用户浏览聊天室的过程中,由网页内容服务器将其推送给浏览器进行加载和调用;因此网页内容服务器能对该flash流媒体播放器的更新、安装及卸载等操作进行统一管理,且管理便捷。
4、由于本发明采用语音服务器来控制各flash流媒体播放器的相关操作,因此,降低了flash流媒体播放器的复杂度,同时也节省了网页内容服务器向浏览器推送置标语言文件的时间,加快了浏览器加载和调用的速度;从而使得flash流媒体播放器加载和调用的整个过程能在短时间内自动完成,简化了用户的相关操作,增强了用户体验。
值得说明的是,本领域技术人员可以理解上述实施例三及其附图只是本发明一个优选实施例及其示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员还可以理解实施例中的装置中的功能模块或单元可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的功能模块或单元可以合并为一个模块,也可以进一步拆分成多个功能子模块或子单元。为此,下述实施例四公开一种flash流媒体播放器的开发架构,该架构是对上述实施例三中对应实施例一的方法流程部署的功能模块或单元所作出的一种重新部署,用于处理用户点播的Mp3格式的第三方歌曲。
实施例四
本实施例公开的flash流媒体播放器关于音频的处理主要是要将Mp3数据封装成swf和flv两种格式的数据。封装成swf中是供该flash流媒体播放器在用户本地播放Mp3数据,封装成flv是用来上传至语音服务器,供其进行解码及混音等处理。
如附图11所示,本实施例公开的flash流媒体播放器包括PlayerModule100、Mp3Swf200、Music300、Mp3List400、Mp3Uploader500、Mp3Flv600和Mp3Socket700共七个模块,各模块的功能分述如下:
PlayerModule:为该flash应用最高层,用于处理用户界面的显示和特效,接收用户操作,同时接收语音服务器所返回的RTMP命令。
Mp3Socket:用于处理与语音服务器之间的音频数据发送以及出现异常情况的网络重连处理。
Mp3List:其为歌曲管理器集合,用来处理用户添加、删除和改变播放模式等动作后对歌曲各种状态、排序管理和维护。
Music:用于保存加载后的每一首歌曲,处理歌曲信息的解析,Mp3数据帧信息,播放状态和进度等音乐信息。
Mp3Uploader:用于负责管理歌曲上传过程,激活上传或停止上传,实时监控歌曲上传和本地播放的同步情况,监控和管理已发送的数据量。
Mp3Flv:用于歌曲解析的底层处理,主要将Mp3转换为flv格式。当歌曲解析为flv成功,并且语音服务器返回指令允许上传后,Mp3flv就通知Mp3Socket开始发送数据。
Mp3Swf:用于歌曲解析的底层处理,主要将Mp3转换为Swf格式并播放音乐。
其中,本实施例中的架构模块与上述实施例三中的功能模块或单元之间的对应关系如下:
Mp3Socket与PlayerModule联合实现上述通讯模块和第二执行单元的功能;
Mp3Swf、Music、Mp3List和PlayerModule模块联合实现上述第一执行单元的功能;
Mp3Flv、Mp3Uploader、Mp3Socket和PlayerModule模块联合实现上述第三执行单元的功能;
Music和Mp3Swf和PlayerModule模块联合实现上述第四执行单元的功能。
本实施例中,flash流媒体播放器作为一个独立应用,使用了flex模块技术单独设计开发。当flash流媒体播放器被加载后,flash流媒体播放器和语音服务器间建立RTMP协议(REAL TIME MESSAGING PROTOCOL,实时信息交互协议),所有flash流媒体播放器和语音服务器之间的控制命令都是通过RTMP协议来实现。该协议是为flash流媒体播放器和语音服务器之间音频、视频和数据传输开发的一种私有协议。当用户点击播放按钮时,音频数据通过flash流媒体播放器与语音服务器之间单独建立的TCP连接发送到语音服务器缓存。
与传统播放器及其客户端相比,本flash流媒体播放器完全采用web平台技术开发,在技术上差异很大,下面详细说明:
【基础架构不同】
本flash流媒体播放器采用的是B/S架构,用户工作通过Web浏览器(Browser)提供,同时在浏览器内执行部分与用户相关的事务逻辑,其中用户浏览器和服务器之间的通讯主要通过http协议返回;而传统客户端采用的是C/S架构。
【开发平台不同】
本flash流媒体播放器使用的技术平台为浏览器(Browser)+Flash实现,即RIA(Rich Internet Applications)富互联网应用开发模式,flash流媒体播放器利用了flash提供的socket连接机制,因此对于上传音乐数据部分使用的是tcp/ip协议通讯。传统客户端方式主要使用C++开发,不依赖浏览器和第三方平台。
【用户体验不同】
本flash流媒体播放器由于使用B/S结构开发,用户使用时不需下载和安装,可以像平时浏览网页一样使用放歌功能。不需要维护杀毒或者卸载等操作,也免去了在线更新版本的麻烦,用户在使用时始终使用的是最新功能。
【安全权限不同】
flash流媒体播放器运用的是flash安全沙箱,在其加载swf文件及其它资源时,会根据这些文件和资源的来源单独地将其分配到安全沙箱中。该安全沙箱有三种作用:
本地文件系统域禁止一切不安全的跨域访问。
本地受信任域解除了绝大部分的安全限制,但此操作只当用户允许后才有效。
远程网络域为防止引起跨域攻击,必须使用策略文件指定安全级别。
【需实现的功能不同】
本实施例公开的flash流媒体播放器与传统播放器不同的是,该flash流媒体播放器与普通播放器的工作过程是相反的,普通播放器从服务器下载播放歌曲不受存储空间限制,可以在播放的同时一直下载全部歌曲数据,而不需要进行太多的监控和干预。flash流媒体播放器则是在播放的同时实时上传,受到服务器资源的限制,不能将全部歌曲上传,因此需要使用缓冲机制,确保服务器总能收到足够的播放数据而保持歌曲的流畅播放。同时为了能够保持语音同步,flash流媒体播放器和语音服务器之间还有实时同步机制,确保语音服务器播放的歌曲与flash流媒体播放器本地播放的歌曲进度始终保持一致。
根据上述实施例公开的技术方案,图12及图13是本发明申请人自主研发的网页聊天室的页面示意图。当用户在浏览器中指定URL地址为:http://www.peng58.com/20888003时,浏览器根据网页内容服务器传送的置标语言文件解码后显示的聊天室的网页如图12所示,其中,在该聊天室中,A框为现有的文本聊天内容及系统信息显示窗口(可选的,该窗口也可以用于显示用户对flash流媒体播放器的操作权限),B框为聊天室成员的列表信息展示窗口,其中标号C指向“开麦”按钮,当用户开启“开麦”后,即可与聊天室中的玩家进行语音交流,由语音服务器对聊天室各用户的麦上数据进行混音转发处理,该“开麦”功能构成上述实施例中的聊天客户端中的一部分。其中标号D对应本发明所提供的放歌功能,在用户有放歌权限的前提下,当用户点击打开该“放歌”功能时,在A区域的右上角弹出flash流媒体播放器的操作界面,以及时准确地捕获用户请求,并与语音服务器交互以完成放歌。如图13所示,该操作界面设有添加歌曲的“添加”键E、删除歌曲的“删除”键F、播放歌曲的“播放”键G、切歌到上一曲的“上一曲”键H和切歌到下一曲的“下一曲”键I,以及播放进度显示条J,且该flash流媒体播放器的操作界面还设有“混响”、“伴唱”和“顺序播放”等操作键;各键对应上述实施例中相应的用户请求,其中,当用户选择顺序播放时,flash流媒体播放器在上传完一首歌曲之后,即开始传送下一首歌曲,中间可省略获取播放权限的操作,即只要语音服务器不终止flash流媒体播放器的播放权限,则该flash流媒体播放器默认一直被许可并按顺序上传;在之后的用户切歌或删歌之后的等操作处理与上述实施例一类似,在此不作赘述。
在实际操作过程中,该flash流媒体播放器先将Mp3音频资源加载到歌曲列表模块,并以Swf格式打包封装以便播放,然后将音频文件封装成flv格式,并以恒定的速率上传到语音服务器。当语音服务器接收到一定量的音频资源时,下发同步播放指令给该flash流媒体播放器,从而可以使得该flash流媒体播放器在播放歌曲的同时还进行歌曲数据帧的上传。当用户点击播放按钮时,音频数据通过flash流媒体播放器与语音服务器之间单独建立的TCP连接发送到语音服务器缓存,而播放过的资源服务器将自动清除,这样可以极大的减少语音服务器的存储压力。当服务器里面缓存的歌曲数据帧并不能满足当前的播放时,语音服务器将发送加快上传的指令给flash流媒体播放器。此时,在网速允许的情况下,该flash流媒体播放器将以加倍的速率进行音频上传。
综上,本领域的技术人员及操作用户很容易理解:上述实施例所提供的网页聊天室的放歌方法、装置及系统至少具有以下有益效果。
1、扩展了浏览器和聊天室的功能。
2、flash流媒体播放器的操作受网络侧语音服务器的制约,其二者的交互与聊天室用户之间的交互对应,其交互操作包括播放、暂停、切歌、删歌及关闭播放器等处理,从而提高了用户之间的交互性。而且,两者之间的缓冲监控机制确保了flash流媒体播放器的上传数据不会堵塞在网络中,同时还降低了对语音服务器的配置要求。
3、flash流媒体播放器都是在用户浏览聊天室的过程中,由网页内容服务器将其推送给浏览器进行加载和调用;因此网页内容服务器能对该flash流媒体播放器的更新、安装及卸载等操作进行统一管理,且管理便捷。
4、由于本发明采用语音服务器来控制各flash流媒体播放器的相关操作,因此,降低了flash流媒体播放器的复杂度,同时也节省了网页内容服务器向浏览器推送置标语言文件的时间,加快了浏览器加载和调用的速度;从而使得flash流媒体播放器加载和调用的整个过程能在短时间内自动完成,简化了用户的相关操作,增强了用户体验。
5、上述的第三方歌曲是独立于语音服务器和flash流媒体服务器之外的数字歌曲,该歌曲可以是存储在用户本地的歌曲,也可以是链接到其它网络的可供下载的网络歌曲,从而杜绝了外界噪声源的干扰,使得放歌的音质很有保障。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

Claims (13)

1.一种网页聊天室中的放歌方法,其特征在于,包括:
开发人员搭建Web服务器集群,所述Web服务器集群至少包括网页内容服务器及语音服务器;
开发人员将flash流媒体播放器及其可执行代码嵌入对应一聊天室的置标语言文件中并存放于所述网页内容服务器上;
在用户以浏览器进入所述聊天室后,所述浏览器调用所述flash流媒体播放器处理用户的放歌操作;
其中所述放歌操作的处理至少包括:
步骤S1、所述flash流媒体播放器建立与所述语音服务器之间的通信连接;
步骤S2、所述flash流媒体播放器将由所述可执行代码捕获的用户请求发送给所述语音服务器,以及根据所述语音服务器下发的控制指令处理用户点播的第三方歌曲;
其中,所述步骤S2包括:
步骤S21、所述flash流媒体播放器获取用户点播的歌曲,将该歌曲封装成swf格式以待播放,并将解析出的歌曲的头部信息显示在播放列表中;
步骤S22、所述flash流媒体播放器向语音服务器发送用户的播放请求以获取播放许可;
步骤S23、获取播放许可后,所述flash流媒体播放器通过独立于麦上数据的上传通道将所点的歌曲以flv格式上传至语音服务器,以供所述语音服务器将所点的歌曲作为一路音频输入源参与聊天室的混音,在上传的过程中,所述flash流媒体播放器监听语音服务器发送的同步播放指令;
步骤S24、所述语音服务器在向该聊天室的其它用户分发携带歌曲信息的混音数据的同时,向所述flash流媒体播放器发送同步播放指令;或者
所述语音服务器判断缓存的歌曲数据是否大于或等于预先设置的混音阈值,当判断结果为是时,向所述flash流媒体播放器发送携带指示有播放时间的同步播放指令;
步骤S25、所述flash流媒体播放器在接收到所述同步播放指令后,播放所点的歌曲。
2.根据权利要求1所述的网页聊天室的放歌方法,其特征在于,当嵌入网页的聊天客户端设置有所述flash流媒体播放器的操作权限显示窗口时,还包括:所述语音服务器或flash流媒体播放器还将能改变该用户权限的控制指令发送给所述聊天客户端;且所述步骤S21之前还包括:
步骤S20、所述flash流媒体播放器接收用户的放歌请求,与嵌入聊天室网页中的聊天客户端建立通信连接并获取放歌权限,如果权限开放,则建立与所述语音服务器之间的TCP连接,以便以RTMP协议开启与该语音服务器之间的信令和数据交互。
3.根据权利要求1或2所述的网页聊天室的放歌方法,其特征在于,所述语音服务器在接收上传歌曲的过程中,还包括:
自动清除已播放过的歌曲数据;以及
定时检测当前缓存的歌曲数据帧的播放时长,判断该时长是否小于其预先设置的可用缓存的存储时长,如果是,指令flash流媒体播放器继续上传,如果否,则指令flash流媒体播放器中止上传;以及
当检测到当前已缓存数据帧的播放时长与该可用缓存的存储时长之间的差值小于某一阈值时,指令所述flash流媒体播放器加速上传。
4.根据权利要求1或2所述的网页聊天室的放歌方法,其特征在于,还包括:所述语音服务器在接收到所点歌曲的每一帧数据之后,计算该帧数据的等待时长,判断该时长是否不大于其预先设置的可用缓存的存储时长,如果判断结果为否,则丢弃该数据帧。
5.根据权利要求1所述的网页聊天室的放歌方法,其特征在于,所述flash流媒体播放器捕获的用户请求还包括:歌曲暂停请求、切歌请求、删除歌曲请求及关闭请求;
其中当接收到所述flash流媒体播放器的切歌或删歌请求后,所述语音服务器清空被切或被删歌曲的缓冲数据帧,当用户执行关闭flash流媒体播放器操作后,语音服务器清空该用户的所上传歌曲的所有缓冲数据,以及当用户关闭聊天室网页之后,所述语音服务器清空该用户的所有缓冲数据。
6.根据权利要求1或2所述的网页聊天室的放歌方法,其特征在于,所述flash流媒体播放器在上传所点的歌曲所对应的数据帧的过程中,还包括:
计算当前上传数据帧需要的播放时长与已经播放过的时长的差值;
根据累计的暂停次数修正该差值;
计算修正后的差值是否大于预先设置的某一临界值,如果是,中止当前数据帧的上传。
7.一种flash流媒体播放器,其特征在于,包括:
通信模块,用于建立与语音服务器之间的通信连接;
执行模块,用于在所述通信模块建立与语音服务器的通信连接后,将由嵌入聊天室网页中的可执行代码捕获的用户请求发送给所述语音服务器,以及根据所述语音服务器下发的控制指令处理用户点播的第三方歌曲;
其中,所述执行模块包括依次建立通信连接的第一至第四执行单元,其中:
第一执行单元,用于获取用户点播的歌曲,将该歌曲封装成swf格式以待播放,并将解析出的歌曲的头部信息显示在播放列表中;
第二执行单元,用于向语音服务器发送用户的播放请求以获取播放许可;
第三执行单元,用于在获取播放许可后,将所点的歌曲通过独立于麦上数据的上传通道以flv格式上传至语音服务器,以供所述语音服务器将所点的歌曲作为一路音频输入源参与聊天室的混音;
第四执行单元,用于监听所述语音服务器发送的同步播放指令,并在接收到所述同步播放指令后,播放所点的歌曲。
8.根据权利要求7所述的flash流媒体播放器,其特征在于,所述执行模块还包括第五执行单元,用于接收用户的放歌请求,向嵌入聊天室网页中的聊天客户端建立通信连接并获取放歌权限,如果权限开放,则使令所述通信模块建立与所述语音服务器之间的TCP连接,以便第一至第四执行单元以RTMP协议开启与该语音服务器之间的信令和数据交互。
9.根据权利要求7或8所述的flash流媒体播放器,其特征在于,所述第三执行单元还用于计算当前上传数据帧需要的播放时长与已经播放过的时长的差值,根据累计的暂停次数修正该差值,计算修正后的差值是否大于预先设置的某一临界值,如果是,中止当前数据帧的上传。
10.根据权利要求7或8所述的flash流媒体播放器,其特征在于,所述通信模块还用于将能改变该用户权限的控制指令发送给嵌入网页的聊天客户端,以供其修改该用户的显示权限。
11.根据权利要求7所述的flash流媒体播放器,其特征在于,包括相互建立通信连接的下述功能模块:
PlayerModule模块:为该flash应用最高层,用于处理用户界面的显示和特效,接收用户操作,同时接收语音服务器所返回的RTMP命令;
Mp3Socket模块:用于处理与语音服务器之间的音频数据发送以及出现异常情况的网络重连处理;
Mp3List模块:其为歌曲管理器集合,用来处理用户添加、删除和改变播放模式等动作后对歌曲各种状态、排序管理和维护;
Music模块:用于保存加载后的每一首歌曲,处理歌曲信息的解析,Mp3数据帧信息,播放状态和进度等音乐信息;
Mp3Uploader模块:用于负责管理歌曲上传过程,激活上传或停止上传,实时监控歌曲上传和本地播放的同步情况,监控和管理已发送的数据量;
Mp3Flv模块:用于歌曲解析的底层处理,主要将Mp3转换为flv格式,当歌曲解析为flv成功,并且语音服务器返回指令允许上传后,Mp3flv就通知Mp3Socket开始发送数据;
Mp3Swf模块:用于歌曲解析的底层处理,主要将Mp3转换为Swf格式并播放音乐。
12.一种语音服务器,其特征在于,包括:
通信模块,用于建立与flash流媒体播放器之间的通信连接;
语音处理模块,用于在所述通信模块建立与flash流媒体播放器之间的通信连接后,接收所述flash流媒体播放器的用户请求,根据所述用户请求下发控制指令以供所述flash流媒体播放器处理用户点播的第三方歌曲;
其中,所述语音处理模块包括缓存、混音单元、第一或第二同步播放单元以及以下第二至第四处理单元中的任意一种或任意组合:
第二处理单元,用于在接收到所述flash流媒体播放器的切歌或删歌请求后,清空被切或被删歌曲的缓冲数据帧,当接收到关闭flash流媒体播放器请求后,清空该用户的所上传歌曲的所有缓冲数据,以及在获取到用户关闭聊天室网页之后,清空该用户的所有缓冲数据;
第三处理单元,用于在接收上传歌曲的过程中,定时检测已缓存的歌曲数据帧的播放时长,判断该时长是否小于其预先设置的可用缓存的存储时长,如果是,指令flash流媒体播放器继续上传,如果否,则指令flash流媒体播放器中止上传;以及当已缓存数据帧的播放时长与该可用缓存的存储时长之间的差值小于某一阈值时,指令所述flash流媒体播放器加速上传;
第四处理单元,用于在接收到所点歌曲的每一帧数据之后,计算该帧数据的等待时长,判断该时长是否不大于其预先设置的可用缓存的存储时长,如果判断结果为否,则丢弃该数据帧;
混音单元,用于将缓存中flash流媒体播放器所上传的歌曲作为一路音频输入源参与聊天室的混音;
第一同步播放单元,用于向该聊天室的其它用户分发携带歌曲信息的混音数据的同时,向所述flash流媒体播放器发送同步播放指令;
第二同步播放单元,用于判断缓存的歌曲数据是否大于或等于预先设置的混音阈值,当判断结果为是时,向flash流媒体播放器发送携带指示有播放时间的同步播放指令。
13.一种网页聊天室系统,包括浏览器,其特征在于,还包括Web服务器集群和flash流媒体播放器,所述Web服务器集群至少由网页内容服务器和语音服务器组成;所述网页内容服务器上存放有对应一聊天室的置标语言文件,该置标语言文件嵌入有flash流媒体播放器及其可执行代码;
其中所述浏览器,用于在用户进入所述聊天室后,调用所述flash流媒体播放器处理用户的放歌操作;
所述flash流媒体播放器,用于建立与所述语音服务器之间的通信连接,将由所述可执行代码捕获的用户请求发送给所述语音服务器;以及
所述语音服务器,用于建立与flash流媒体播放器之间的通信连接,接收所述flash流媒体播放器的用户请求,根据所述用户请求下发控制指令以供所述flash流媒体播放器处理用户点播的第三方歌曲;
其中,所述flash流媒体播放器至少包括:执行模块,所述执行模块包含有下述依次建立通信连接第一至第四执行单元,各执行单元的功能分述如下:
第一执行单元,用于获取用户点播的歌曲,将该歌曲封装成swf格式以待播放,并将解析出的歌曲的头部信息显示在播放列表中;
第二执行单元,用于向语音服务器发送用户的播放请求以获取播放许可;
第三执行单元,用于在获取播放许可后,将所点的歌曲通过独立于麦上数据的上传通道以flv格式上传至语音服务器,以供语音服务器将所点的歌曲作为一路音频输入源参与聊天室的混音;并在上传的过程中,监听语音服务器发送的同步播放指令;
第四执行单元,用于监听所述语音服务器发送的同步播放指令,并在接收到所述同步播放指令后,播放所点的歌曲。
CN201110411309.6A 2011-11-10 2011-12-12 网页聊天室的放歌方法、装置及系统 Active CN102497423B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110411309.6A CN102497423B (zh) 2011-11-10 2011-12-12 网页聊天室的放歌方法、装置及系统

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201110353973 2011-11-10
CN201110353973.X 2011-11-10
CN201110411309.6A CN102497423B (zh) 2011-11-10 2011-12-12 网页聊天室的放歌方法、装置及系统

Publications (2)

Publication Number Publication Date
CN102497423A CN102497423A (zh) 2012-06-13
CN102497423B true CN102497423B (zh) 2014-11-12

Family

ID=46189208

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110411309.6A Active CN102497423B (zh) 2011-11-10 2011-12-12 网页聊天室的放歌方法、装置及系统

Country Status (1)

Country Link
CN (1) CN102497423B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103200077B (zh) * 2013-04-15 2015-08-26 腾讯科技(深圳)有限公司 一种语音通话时数据交互的方法、装置及系统
CN104392712B (zh) * 2014-08-27 2019-08-13 贵阳语玩科技有限公司 一种实现卡拉ok功能的方法及装置
CN104464743B (zh) * 2014-11-17 2020-02-14 贵阳语玩科技有限公司 一种在语音聊天室中播放背景音乐的方法及移动终端
CN105045578A (zh) * 2015-06-29 2015-11-11 广州酷狗计算机科技有限公司 音频合成方法及装置
CN107978318A (zh) * 2016-10-21 2018-05-01 咪咕音乐有限公司 一种实时混音方法及装置
CN108540357B (zh) * 2018-03-30 2020-10-09 深圳市沃特沃德股份有限公司 语音控制方法、装置和音响设备
CN110545456B (zh) 2018-05-29 2022-04-01 北京字节跳动网络技术有限公司 媒体文件的同步播放方法、装置及存储介质
CN113381864B (zh) * 2021-05-25 2023-09-19 福建星网视易信息系统有限公司 数字视听场所控制方法、系统和存储介质
CN113791752A (zh) * 2021-09-16 2021-12-14 深圳市芯中芯科技有限公司 在安卓系统中通过js同步控制网页音乐播放状态的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200639683A (en) * 2005-05-04 2006-11-16 Era Digital Media Co Interactive multimedia interface and display
CN101159576A (zh) * 2007-08-30 2008-04-09 腾讯科技(深圳)有限公司 聊天方法、聊天室客户端、系统管理后台及服务器

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8145776B1 (en) * 1999-10-15 2012-03-27 Sony Corporation Service providing apparatus and method, and information processing apparatus and method as well as program storage medium
CN101184208B (zh) * 2006-11-13 2010-11-24 中兴通讯股份有限公司 一种背景音乐播放方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200639683A (en) * 2005-05-04 2006-11-16 Era Digital Media Co Interactive multimedia interface and display
CN101159576A (zh) * 2007-08-30 2008-04-09 腾讯科技(深圳)有限公司 聊天方法、聊天室客户端、系统管理后台及服务器

Also Published As

Publication number Publication date
CN102497423A (zh) 2012-06-13

Similar Documents

Publication Publication Date Title
CN102497423B (zh) 网页聊天室的放歌方法、装置及系统
CN102356605B (zh) 平滑、无状态的客户端媒体流式传输
US8850054B2 (en) Hypertext transfer protocol live streaming
CN101888409B (zh) 基于广域网的远程信息发布和监控系统及其控制方法
CN102577272B (zh) 低等待时间的可高速缓存的媒体流式传输
CN105354002B (zh) 一种实现多屏间视频无缝切换的系统及方法
KR100989079B1 (ko) 오케스트라 미디어 서비스 시스템 및 방법
CN111010614A (zh) 一种显示直播字幕的方法、装置、服务器及介质
CN102740159A (zh) 媒体文件存储格式和自适应传送系统
CN109547812A (zh) 一种直播方法、装置、移动终端与存储介质
CN107197386B (zh) 一种无客户端的跨平台视频播放实现方法
CN106686438A (zh) 一种跨设备的音频图像同步播放的方法、装置及系统
WO2005086009A1 (ja) メディア配信装置及びメディア受信装置
CN101115185B (zh) Iptv中用于第三方实现音视频播放的装置及其方法
CN109982148A (zh) 一种直播方法、装置、计算机设备与存储介质
CN102790925A (zh) 一种在线流媒体播放的方法及点播终端
WO2008134979A1 (fr) Système vidéo et procédé de lecture vidéo
CN107360475A (zh) 视频同步播放及控制方法、控制终端和播放终端
CN100584007C (zh) 一种在流媒体系统上使用书签的方法
CN1917465B (zh) 一种实现流媒体互动的方法及系统
JP2008022070A (ja) コンテンツ配信システム、コンテンツ配信サーバ、コンテンツ再生端末、プログラム、コンテンツ配信方法
US11962818B2 (en) Systems and methods for optimizing a set-top box to retrieve missed content
CN103096170A (zh) 一种分布式的流媒体直播频道管理方法
CN113225585A (zh) 一种视频清晰度的切换方法、装置、电子设备以及存储介质
CN205230019U (zh) 一种实现多屏间视频无缝切换的系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant