欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

網(wǎng)頁(yè)聊天室的放歌方法、裝置及系統(tǒng)的制作方法

文檔序號(hào):7772557閱讀:361來(lái)源:國(guó)知局
專利名稱:網(wǎng)頁(yè)聊天室的放歌方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種網(wǎng)頁(yè)聊天室的放歌方法、裝置及系統(tǒng),尤其涉及一種語(yǔ)音聊天室的放歌方法、裝置及系統(tǒng)。
背景技術(shù)
隨著互聯(lián)網(wǎng)的迅速發(fā)展,各類聊天工具及聊天室如雨后春筍般林立。然而現(xiàn)有的聊天室大多是C/S架構(gòu)的,如騰訊QQ的多人語(yǔ)聊,YY語(yǔ)音和新浪show 等等,而B(niǎo)/S架構(gòu)的網(wǎng)頁(yè)聊天室則少之又少。在C/S架構(gòu)的聊天室系統(tǒng)中,很多功能都由客戶端而不是服務(wù)器去執(zhí)行,從而導(dǎo)致客戶端比較復(fù)雜和占用內(nèi)存,而且各用戶的客戶端分開(kāi)部署,管理極為不便。而現(xiàn)有的B/S架構(gòu)的網(wǎng)頁(yè)聊天室中,大多只能進(jìn)行簡(jiǎn)單的文字和符號(hào)交流,由此還需要進(jìn)一步改善用戶與用戶之間的交互性。放歌是豐富聊天室內(nèi)容的一個(gè)重要手段。在網(wǎng)頁(yè)聊天室中,由于帶寬和網(wǎng)絡(luò)協(xié)議等因素的限制,用戶還不具備放歌的功能。與放歌有點(diǎn)接近的是第九視頻中的主持人唱歌功能,實(shí)現(xiàn)時(shí),用戶在文本聊天窗口中發(fā)送包括歌手和歌名的點(diǎn)歌信息,然后再等待主持人唱歌并將錄入的唱歌聲音廣播或組播給聊天室中的其它用戶,藉此,則普通用戶和游客只能淪為聽(tīng)眾,而且所唱歌曲的音頻信息是通過(guò)耳麥錄入之后再傳輸及播放的,由于耳麥容易錄入外界的噪音且音質(zhì)受主持人的個(gè)唱功底的限制,因此音質(zhì)沒(méi)法保障。

發(fā)明內(nèi)容
本發(fā)明的主要目的在于公開(kāi)一種網(wǎng)頁(yè)聊天室的放歌方法、裝置及系統(tǒng),以豐富聊天室的功能并解決現(xiàn)有的網(wǎng)頁(yè)聊天室交互性差的問(wèn)題。為達(dá)上述目的,本發(fā)明實(shí)施例公開(kāi)一種網(wǎng)頁(yè)聊天室的放歌方法,包括開(kāi)發(fā)人員搭建Web服務(wù)器集群,所述Web服務(wù)器集群至少包括網(wǎng)頁(yè)內(nèi)容服務(wù)器及語(yǔ)音服務(wù)器;開(kāi)發(fā)人員將flash流媒體播放器及其可執(zhí)行代碼嵌入對(duì)應(yīng)一聊天室的置標(biāo)語(yǔ)言文件中并存放于所述網(wǎng)頁(yè)內(nèi)容服務(wù)器上;在用戶以瀏覽器進(jìn)入所述聊天室后,所述瀏覽器調(diào)用所述flash流媒體播放器處理用戶的放歌操作;其中所述放歌操作的處理至少包括步驟Si、所述flash流媒體播放器建立與所述語(yǔ)音服務(wù)器之間的通信連接;步驟S2、所述flash流媒體播放器將由所述可執(zhí)行代碼捕獲的用戶請(qǐng)求發(fā)送給所述語(yǔ)音服務(wù)器,以及根據(jù)所述語(yǔ)音服務(wù)器下發(fā)的控制指令處理用戶點(diǎn)播的第三方歌曲。為達(dá)上述目的,本發(fā)明還公開(kāi)一種flash流媒體播放器,包括通信模塊,用于建立與語(yǔ)音服務(wù)器之間的通信連接;執(zhí)行模塊,用于在所述通信模塊建立與語(yǔ)音服務(wù)器的通信連接后,將由嵌入聊天室網(wǎng)頁(yè)中的可執(zhí)行代碼捕獲的用戶請(qǐng)求發(fā)送給所述語(yǔ)音服務(wù)器,以及根據(jù)所述語(yǔ)音服務(wù)器下發(fā)的控制指令處理用戶點(diǎn)播的第三方歌曲。為達(dá)上述目的,本發(fā)明還公開(kāi)一種語(yǔ)音服務(wù)器,包括通信模塊,用于建立與flash流媒體播放器之間的通信連接;語(yǔ)音處理模塊,用于在所述通信模塊建立與flash流媒體播放器之間的通信連接后,接收所述flash流媒體播放器的用戶請(qǐng)求,根據(jù)所述用戶請(qǐng)求下發(fā)控制指令以供所述 flash流媒體播放器處理用戶點(diǎn)播的第三方歌曲。為達(dá)上述目的,本發(fā)明還公開(kāi)一種網(wǎng)頁(yè)聊天室系統(tǒng),包括瀏覽器,還包括Web服務(wù)器集群和flash流媒體播放器,所述Web服務(wù)器集群至少由網(wǎng)頁(yè)內(nèi)容服務(wù)器和語(yǔ)音服務(wù)器組成;所述網(wǎng)頁(yè)內(nèi)容服務(wù)器上存放有對(duì)應(yīng)一聊天室的置標(biāo)語(yǔ)言文件,該置標(biāo)語(yǔ)言文件嵌入有flash流媒體播放器及其可執(zhí)行代碼;其中所述瀏覽器,用于在用戶進(jìn)入所述聊天室后,調(diào)用所述flash流媒體播放器處理用戶的放歌操作; 所述flash流媒體播放器,用于建立與所述語(yǔ)音服務(wù)器之間的通信連接,將由所述可執(zhí)行代碼捕獲的用戶請(qǐng)求發(fā)送給所述語(yǔ)音服務(wù)器;以及所述語(yǔ)音服務(wù)器,用于建立與flash流媒體播放器之間的通信連接,接收所述 flash流媒體播放器的用戶請(qǐng)求,根據(jù)所述用戶請(qǐng)求下發(fā)控制指令以供所述flash流媒體播放器處理用戶點(diǎn)播的第三方歌曲。與現(xiàn)有技術(shù)相比,本發(fā)明至少具有以下優(yōu)點(diǎn)1、擴(kuò)展了瀏覽器和聊天室的功能。2、flash流媒體播放器的操作受網(wǎng)絡(luò)側(cè)語(yǔ)音服務(wù)器的制約,其二者的交互與聊天室用戶之間的交互對(duì)應(yīng),從而提高了用戶之間的交互性。3、flash流媒體播放器都是在用戶瀏覽聊天室的過(guò)程中,由網(wǎng)頁(yè)內(nèi)容服務(wù)器將其推送給瀏覽器進(jìn)行加載和調(diào)用;因此網(wǎng)頁(yè)內(nèi)容服務(wù)器能對(duì)該flash流媒體播放器的更新、 安裝及卸載等操作進(jìn)行統(tǒng)一管理,且管理便捷。4、由于本發(fā)明采用語(yǔ)音服務(wù)器來(lái)控制各flash流媒體播放器的相關(guān)操作,因此, 降低了 flash流媒體播放器的復(fù)雜度,同時(shí)也節(jié)省了網(wǎng)頁(yè)內(nèi)容服務(wù)器向?yàn)g覽器推送置標(biāo)語(yǔ)言文件的時(shí)間,加快了瀏覽器加載和調(diào)用的速度;從而使得flash流媒體播放器加載和調(diào)用的整個(gè)過(guò)程能在短時(shí)間內(nèi)自動(dòng)完成,簡(jiǎn)化了用戶的相關(guān)操作,增強(qiáng)了用戶體驗(yàn)。5、上述的第三方歌曲是獨(dú)立于語(yǔ)音服務(wù)器和flash流媒體服務(wù)器之外的數(shù)字歌曲,該歌曲可以是存儲(chǔ)在用戶本地的歌曲,也可以是鏈接到其它網(wǎng)絡(luò)的可供下載的網(wǎng)絡(luò)歌曲,從而杜絕了外界噪聲源的干擾,使得放歌的音質(zhì)很有保障。


圖1是本發(fā)明實(shí)施例公開(kāi)的網(wǎng)頁(yè)聊天室的放歌流程示意圖;圖2是本發(fā)明實(shí)施例公開(kāi)的一套對(duì)應(yīng)實(shí)施例一的放歌操作的流程圖;圖3是本發(fā)明實(shí)施例公開(kāi)的又一套對(duì)應(yīng)實(shí)施例一的放歌操作的流程圖;圖4是本發(fā)明實(shí)施例公開(kāi)的網(wǎng)頁(yè)聊天系統(tǒng)的結(jié)構(gòu)示意圖;圖5是圖4中flash流媒體播放器的簡(jiǎn)易結(jié)構(gòu)示意圖;圖6是圖5中flash流媒體播放器一種內(nèi)部功能模塊的架構(gòu)示意圖7是圖5中flash流媒體播放器又一種內(nèi)部功能模塊的架構(gòu)示意圖;圖8是圖4中語(yǔ)音服務(wù)器的簡(jiǎn)易結(jié)構(gòu)示意圖;圖9是圖8中語(yǔ)音服務(wù)器的一種內(nèi)部功能模塊的架構(gòu)示意圖;圖10是圖8中語(yǔ)音服務(wù)器的又一種內(nèi)部功能模塊的架構(gòu)示意圖;圖11是本發(fā)明實(shí)施例公開(kāi)的又一種flash流媒體播放器的內(nèi)部功能模塊的架構(gòu)示意圖;圖12是本申請(qǐng)人基于本發(fā)明技術(shù)方案開(kāi)發(fā)的網(wǎng)頁(yè)聊天室的頁(yè)面示意圖;圖13是打開(kāi)圖12中的flash流媒體播放器的頁(yè)面顯示示意圖。
具體實(shí)施例方式下面結(jié)合說(shuō)明書(shū)附圖對(duì)本發(fā)明的具體實(shí)現(xiàn)方式做一詳細(xì)描述。實(shí)施例一本實(shí)施例公開(kāi)一種網(wǎng)頁(yè)聊天室的放歌方法。在放歌之前,開(kāi)發(fā)人員預(yù)先搭建好Web 服務(wù)器集群,該Web服務(wù)器集群通常都設(shè)有用于處理文本聊天的服務(wù)器(此為現(xiàn)有技術(shù),不作贅述)。本發(fā)明中,該Web服務(wù)器集群至少還包括網(wǎng)頁(yè)內(nèi)容服務(wù)器及語(yǔ)音服務(wù)器。其中網(wǎng)頁(yè)內(nèi)容服務(wù)器上存放有對(duì)應(yīng)一聊天室的置標(biāo)語(yǔ)言文件,其中一個(gè)置標(biāo)語(yǔ)言文件對(duì)應(yīng)一個(gè)網(wǎng)頁(yè),用于在用戶以瀏覽器請(qǐng)求瀏覽該文件時(shí),將該文件推送給瀏覽器供其在解碼后以頁(yè)面顯示給用戶;可選的,該置標(biāo)語(yǔ)言文件可以是HTML (Hypertext Markup Language,文本標(biāo)記語(yǔ)言)文件或XHTML (extensible HyperText Markup Language,可擴(kuò)展超文本置標(biāo)語(yǔ)言) 文件。本實(shí)施例中,該置標(biāo)語(yǔ)言文件嵌入有flash流媒體播放器及其可執(zhí)行代碼,以便瀏覽器調(diào)用flash流媒體播放器以及時(shí)地捕獲用戶請(qǐng)求并交給語(yǔ)音服務(wù)器處理。在用戶以瀏覽器進(jìn)入聊天室后,瀏覽器調(diào)用flash流媒體播放器處理用戶的放歌操作。其中放歌操作的處理如圖1所示,至少包括以下步驟步驟Si、flash流媒體播放器建立與語(yǔ)音服務(wù)器之間的通信連接。步驟S2、flash流媒體播放器將由可執(zhí)行代碼捕獲的用戶請(qǐng)求發(fā)送給語(yǔ)音服務(wù)器,以及根據(jù)語(yǔ)音服務(wù)器下發(fā)的控制指令處理用戶點(diǎn)播的第三方歌曲。藉此,flash流媒體播放器的操作受網(wǎng)絡(luò)側(cè)語(yǔ)音服務(wù)器的制約,其二者的交互與聊天室用戶之間的交互對(duì)應(yīng), 從而提高了用戶之間的交互性。本發(fā)明所述的第三方歌曲是指語(yǔ)音服務(wù)器和flash流媒體播放器之外的用戶本地或網(wǎng)絡(luò)鏈接等第三方的歌曲,其歌曲的格式包括但不限于Mp3 (Moving Picture Experts Group Audio Layer III,動(dòng)態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面3)。上述步驟S2所述的用戶請(qǐng)求包括以下請(qǐng)求的任意一種或任意組合放歌請(qǐng)求、播放請(qǐng)求、暫停請(qǐng)求、切歌請(qǐng)求、刪歌請(qǐng)求及相對(duì)于整個(gè)flash流媒體播放器的打開(kāi)和關(guān)閉請(qǐng)求。本實(shí)施例優(yōu)選flash流媒體播放器能處理以上例舉的所有請(qǐng)求。圖2公開(kāi)了一套放歌的操作流程。值得說(shuō)明的是,為簡(jiǎn)化描述,該圖省略了用戶根據(jù)顯示的聊天室頁(yè)面輸入相應(yīng)請(qǐng)求的步驟,可選的,其放歌的操作流程還包括以下步驟步驟S20、flash流媒體播放器接收用戶的放歌請(qǐng)求,向嵌入聊天室網(wǎng)頁(yè)中的聊天客戶端建立通信連接并獲取放歌權(quán)限,如果權(quán)限開(kāi)放,則建立與語(yǔ)音服務(wù)器之間的TCP連接,以便以RTMP協(xié)議開(kāi)啟與該語(yǔ)音服務(wù)器之間的信令和數(shù)據(jù)交互。該步驟的放歌請(qǐng)求用于打開(kāi)flash流媒體播放器,使之在頁(yè)面的適當(dāng)位置彈出該流flash媒體播放器的顯示界面,以執(zhí)行添加歌曲、播放、切歌、暫停、刪歌等操作,以及隱藏或關(guān)閉該flash流媒體播放器的操作。該步驟為可選步驟,如果語(yǔ)音服務(wù)器默認(rèn)對(duì)聊天室中的所有用戶開(kāi)放放歌權(quán)限則可省略上述步驟S20。根據(jù)步驟S20的執(zhí)行結(jié)果,當(dāng)用戶獲取有放歌權(quán)限之后,后續(xù)步驟S21 至步驟S^才得以相繼執(zhí)行;反之,則flash流媒體播放器停留在步驟S20并應(yīng)用戶的放歌請(qǐng)求重復(fù)執(zhí)行該步驟;其中該請(qǐng)求由嵌入聊天室網(wǎng)頁(yè)中的相關(guān)可執(zhí)行代碼進(jìn)行捕獲。值得說(shuō)明的是該步驟所述的聊天客戶端構(gòu)成對(duì)應(yīng)聊天室的置標(biāo)語(yǔ)言文件的一部分,主要用于與語(yǔ)音服務(wù)器交互以實(shí)現(xiàn)聊天室用戶麥上數(shù)據(jù)(即以用戶的耳麥所錄入的聲音信號(hào))的編解碼及收發(fā)等處理,與flash流媒體播放器是兩個(gè)不同的客體。此外,在執(zhí)行上述步驟S2的過(guò)程中,當(dāng)嵌入網(wǎng)頁(yè)的聊天客戶端設(shè)置有flash流媒體播放器的操作權(quán)限顯示窗口時(shí),語(yǔ)音服務(wù)器可以采用下述幾種方式下發(fā)能改變?cè)撚脩魴?quán)限的控制指令,以修改該用戶的顯示權(quán)限。方式一、將該控制指令分別發(fā)送給聊天客戶端和flash流媒體播放器;方式二、將該控制指令下發(fā)給聊天客戶端,進(jìn)而由聊天客戶端將該控制指令轉(zhuǎn)發(fā)給flash流媒體播放器;方式三、將該控制指令下發(fā)給flash流媒體播放器,再由flash流媒體播放器將該控制指令發(fā)送給聊天客戶端。上述方式二和三能有效減少語(yǔ)音服務(wù)器的相關(guān)指令重復(fù)下發(fā)給瀏覽器。本實(shí)施例優(yōu)選方式三,且當(dāng)控制指令不涉及改變聊天客戶端中用戶的顯示權(quán)限時(shí),該flash客戶端不需要進(jìn)行控制指令的轉(zhuǎn)發(fā)處理。在其它實(shí)施例中,flash流媒體播放器被瀏覽器調(diào)用后,也可以直接與語(yǔ)音服務(wù)器以RTMP協(xié)議建立TCP連接,而省略與聊天客戶端之間的交互。但考慮到語(yǔ)音服務(wù)器通常都對(duì)聊天室中的用戶進(jìn)行統(tǒng)一管理,且相關(guān)的用戶操作權(quán)限通常也習(xí)慣于直觀地呈現(xiàn)給用戶,因此本發(fā)明實(shí)施例優(yōu)選上述步驟S20的操作方式,藉此,則可以在語(yǔ)音服務(wù)器未向聊天室的用戶發(fā)放放歌權(quán)限時(shí),省略后續(xù)建立與語(yǔ)音服務(wù)器之間的TCP連接的步驟,從而減少語(yǔ)音服務(wù)器的數(shù)據(jù)處理壓力。步驟S21、flash流媒體播放器獲取用戶點(diǎn)播的歌曲,將該歌曲封裝成swf (shock wave flash)格式以待播放,并將解析出的歌曲的頭部信息顯示在播放列表中。值得說(shuō)明的是,swf是安裝有Adobe Flash Player插件或本發(fā)明flash流媒體播放器的瀏覽器能打開(kāi)并播放的一種格式文件,由于現(xiàn)有的Adobe Flash Player能播放和管理swf格式文件,因此本發(fā)明的flash流媒體播放器可以在調(diào)用現(xiàn)有的Adobe Flash Player功能的基礎(chǔ)上做進(jìn)一步的開(kāi)發(fā),后續(xù)實(shí)施例不再贅述。步驟S22、flash流媒體播放器向語(yǔ)音服務(wù)器發(fā)送用戶的播放請(qǐng)求以獲取播放許可。其中該步驟是基于以下考慮設(shè)置的由于聊天室放歌少不了語(yǔ)音服務(wù)器的數(shù)據(jù)處理,且一個(gè)聊天室在同一時(shí)間通常只允許一個(gè)用戶進(jìn)行放歌(其中該歌曲可以是用戶本地存儲(chǔ)的歌曲或是鏈接第三方內(nèi)容供應(yīng)商的在線歌曲,且該歌曲的格式包括但不限于Mp3),并以此作為聊天室的背景音樂(lè)或作為卡拉OK模式下的伴奏,因此需要語(yǔ)音服務(wù)器進(jìn)行許可。步驟S23、獲取播放許可后,flash流媒體播放器通過(guò)獨(dú)立于麥上數(shù)據(jù)的上傳通道將所點(diǎn)的歌曲以flV(flash video)格式上傳至語(yǔ)音服務(wù)器;在上傳的過(guò)程中,語(yǔ)音服務(wù)器將所點(diǎn)的歌曲作為一路音頻輸入源參與聊天室的混音,flash流媒體播放器則監(jiān)聽(tīng)語(yǔ)音服務(wù)器發(fā)送的同步播放指令。其中,該步驟所述的flv格式上傳是一種流媒體的上傳方式。在該步驟中,用戶的麥上數(shù)據(jù)的上傳通道與所點(diǎn)歌曲flv數(shù)據(jù)流的上傳通道彼此獨(dú)立,其中用戶上傳麥上數(shù)據(jù)的功能由嵌入聊天室網(wǎng)頁(yè)中的聊天客戶端來(lái)實(shí)現(xiàn);換言之,即本實(shí)施例中flash流媒體播放器上傳用戶點(diǎn)播歌曲的數(shù)據(jù)通道與聊天客戶端上傳麥上數(shù)據(jù)的通道彼此獨(dú)立,不存在干擾。步驟S24、flash流媒體播放器在接收到同步播放指令后,播放所點(diǎn)的歌曲。在該步驟中,所謂同步播放指令,是指由語(yǔ)音服務(wù)器發(fā)送的,用于控制上傳歌曲的 flash流媒體播放器與該聊天室的其它用戶的瀏覽器盡可能同步地播放所點(diǎn)歌曲的指令。 實(shí)際中,由于該同步播放指令的傳送路徑與對(duì)應(yīng)聊天室各用戶的各路混音數(shù)據(jù)的傳送路徑都不同,從而使得語(yǔ)音服務(wù)器下發(fā)的數(shù)據(jù)和指令基本不可能同時(shí)到達(dá)不同的目的地,因此該同步只是相對(duì)意義上的同步,而不是絕對(duì)意義上的同步。而本實(shí)施例中,語(yǔ)音服務(wù)器可以基于下述方式?jīng)Q定何時(shí)向flash流媒體播放器下發(fā)同步播放指令方式一語(yǔ)音服務(wù)器判斷緩存的歌曲數(shù)據(jù)是否大于或等于預(yù)先設(shè)置的混音閾值,當(dāng)判斷結(jié)果為是時(shí),向語(yǔ)音服務(wù)器發(fā)送同步播放指令。在該步驟中,上傳數(shù)據(jù)首先到達(dá)語(yǔ)音服務(wù)器的緩存;通常該緩存的存儲(chǔ)空間是固定且有限的,同時(shí)為了盡量減少歌曲在播放過(guò)程中的中斷,該語(yǔ)音服務(wù)器必須等待緩存中的歌曲數(shù)據(jù)幀達(dá)到某一臨界時(shí)才進(jìn)行混音,本實(shí)施例將該臨界稱之為混音閾值。其中,當(dāng)語(yǔ)音服務(wù)器的緩存中接收到上傳的歌曲數(shù)據(jù)幀后,即開(kāi)始判斷緩存的歌曲數(shù)據(jù)幀是否大于或等于該混音閾值,當(dāng)判斷結(jié)果為是時(shí),下發(fā)攜帶指示有播放時(shí)間的同步播放指令。其中該混音閾值由語(yǔ)音服務(wù)器預(yù)先設(shè)置且小于其可用緩存的最大值。此外,由于語(yǔ)音服務(wù)器的緩存還需要用于暫存各用戶的麥上數(shù)據(jù),所以用于放歌的可用緩存的最大值小于整個(gè)緩存的存儲(chǔ)容量。該方式中,語(yǔ)音服務(wù)器還需要統(tǒng)計(jì)出其攜帶歌曲信息的混音數(shù)據(jù)流到達(dá)其它用戶瀏覽器的估計(jì)時(shí)長(zhǎng),并根據(jù)該估計(jì)時(shí)長(zhǎng)設(shè)定flash流媒體播放器的播放時(shí)間,然后將該播放時(shí)間攜帶在同步播放指令中,以供接收端的flash流媒體播放器在該播放時(shí)間來(lái)臨時(shí), 與該聊天室中其它用戶的瀏覽器進(jìn)行同步播放。方式二語(yǔ)音服務(wù)器在向該聊天室的其它用戶分發(fā)攜帶歌曲信息的混音數(shù)據(jù)的同時(shí),向 flash流媒體播放器發(fā)送同步播放指令。由于同步播放指令與攜帶歌曲信息的混音數(shù)據(jù)同步下發(fā),在理想狀況下,該聊天室的其它用戶的瀏覽器接收到語(yǔ)音服務(wù)器推送的混音數(shù)據(jù)流的時(shí)間與上傳歌曲的flash流媒體播放器接收到同步播放指令的時(shí)間基本一致,因此基本可實(shí)現(xiàn)上傳歌曲的用戶與該聊天室的其它用戶同步收聽(tīng)到該上傳用戶所點(diǎn)播的歌曲。其中在方式二中,flash流媒體播放器接收到同步播放指令即開(kāi)始啟動(dòng)播放,從而省略了語(yǔ)音服務(wù)器在下發(fā)的同步播放指令中攜帶指示flash流媒體播放器何時(shí)進(jìn)行播放的附加信息,簡(jiǎn)化了系統(tǒng)設(shè)計(jì)的復(fù)雜度。基于上述步驟,在點(diǎn)播及播放歌曲的過(guò)程中,當(dāng)用戶所點(diǎn)的歌曲為Mp3格式時(shí);該語(yǔ)音服務(wù)器先從flv格式文件中解碼出Mp3數(shù)據(jù),然后再將該Mp3數(shù)據(jù)解碼為 PCM(Pulse-code modulation,脈沖編碼調(diào)制)數(shù)據(jù),之后再參與聊天室混音。較佳的,有關(guān)語(yǔ)音服務(wù)器的混音還需要執(zhí)行重新采樣、幀對(duì)齊等操作,該混音的具體執(zhí)行方案請(qǐng)參照本案申請(qǐng)人于2011年5月25日申請(qǐng)的名稱為“混音方法及設(shè)備”、申請(qǐng)?zhí)枮?01110136353. 0 的發(fā)明專利?;煲艉?,該語(yǔ)音服務(wù)器將攜帶有歌曲信息的混音數(shù)據(jù)進(jìn)行編碼,然后將該編碼數(shù)據(jù)封裝成flv數(shù)據(jù)流推送給該聊天室其它用戶的瀏覽器,以供各瀏覽器調(diào)閱聊天客戶端以實(shí)時(shí)進(jìn)行混音數(shù)據(jù)的解碼及播放。其中,嵌入有flash插件(例如現(xiàn)有的Adobe Flash Player及本實(shí)施例的聊天客戶端)的瀏覽器在線播放語(yǔ)音服務(wù)器下發(fā)的flv數(shù)據(jù)流為本領(lǐng)域技術(shù)人員所能輕易實(shí)現(xiàn)的技術(shù),與現(xiàn)有用戶在土豆、百度視頻、優(yōu)酷等視頻網(wǎng)站安裝相應(yīng)的插件后在線觀看視頻的技術(shù)手段類似,本實(shí)施例不作贅述。在語(yǔ)音服務(wù)器在線放歌的過(guò)程中,對(duì)播放過(guò)的歌曲數(shù)據(jù)幀,語(yǔ)音服務(wù)器將自動(dòng)清除;較佳的,該語(yǔ)音服務(wù)器還執(zhí)行下段的操作以對(duì)放歌數(shù)據(jù)幀的上傳進(jìn)行實(shí)時(shí)的監(jiān)控處理定時(shí)檢測(cè)當(dāng)前已緩存的歌曲數(shù)據(jù)幀的播放時(shí)長(zhǎng),判斷該時(shí)長(zhǎng)是否小于其預(yù)先設(shè)置的可用緩存的存儲(chǔ)時(shí)長(zhǎng),如果是指令flash流媒體播放器繼續(xù)上傳,如果否,則指令flash 流媒體播放器中止上傳。其中,該可用緩存的存儲(chǔ)時(shí)長(zhǎng)即語(yǔ)音服務(wù)器分配專用于放歌的緩存所能容納的歌曲數(shù)據(jù)所對(duì)應(yīng)的播放時(shí)長(zhǎng),該時(shí)長(zhǎng)也預(yù)先由語(yǔ)音服務(wù)器進(jìn)行設(shè)置,時(shí)長(zhǎng)一般為5 10秒。進(jìn)一步的,當(dāng)語(yǔ)音服務(wù)器檢測(cè)到當(dāng)前已緩存數(shù)據(jù)幀的播放時(shí)長(zhǎng)與可用緩存的存儲(chǔ)時(shí)長(zhǎng)之間的差值小于某一閾值時(shí),指令所述flash流媒體播放器加速上傳;舉例說(shuō)明,假如該閾值為5s,可用緩存能容納IOs的播放時(shí)長(zhǎng),則該語(yǔ)音服務(wù)器在緩存的播放數(shù)據(jù)少于k前可以指令flash流媒體播放器以加倍的速度上傳。更進(jìn)一步的,語(yǔ)音服務(wù)器在接收到所點(diǎn)歌曲的每一幀數(shù)據(jù)之后,計(jì)算該幀數(shù)據(jù)的等待時(shí)長(zhǎng)(即等待混音的時(shí)長(zhǎng)),判斷該時(shí)長(zhǎng)是否不大于其預(yù)先設(shè)置的可用緩存的存儲(chǔ)時(shí)長(zhǎng),如果判斷結(jié)果為否,則丟棄該數(shù)據(jù)幀。上述監(jiān)控處理基本可以確保flash流媒體播放器的上傳數(shù)據(jù)不會(huì)堵塞在網(wǎng)絡(luò)中。值得說(shuō)明的是基于用戶操作的隨意性,下述步驟與步驟之間可以是并行的關(guān)系, 也可以是串行的關(guān)系;圖中僅示意出一種簡(jiǎn)易的串行關(guān)系,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)明白本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求所界定的保護(hù)范圍為準(zhǔn),而不應(yīng)以圖2中的一具體實(shí)施例的示意圖來(lái)限定本發(fā)明的保護(hù)范圍。步驟S25、在播放的過(guò)程中,當(dāng)上傳用戶執(zhí)行暫停操作時(shí),flash流媒體播放器停止播放并向語(yǔ)音服務(wù)器發(fā)送停止播放請(qǐng)求以供其同步進(jìn)行暫停處理;同時(shí),語(yǔ)音服務(wù)器還進(jìn)一步判斷緩存的歌曲數(shù)據(jù)是否達(dá)到預(yù)先設(shè)置的可用緩存的播放時(shí)長(zhǎng),如果到達(dá)該時(shí)長(zhǎng), 則指令flash流媒體服務(wù)器停止上傳相應(yīng)的歌曲數(shù)據(jù)。步驟S26、用戶在暫停之后又執(zhí)行繼續(xù)播放操作,flash流媒體播放器恢復(fù)數(shù)據(jù)的上傳,并在上傳所點(diǎn)的歌曲所對(duì)應(yīng)的數(shù)據(jù)幀的過(guò)程中,還計(jì)算當(dāng)前上傳數(shù)據(jù)幀需要的播放時(shí)長(zhǎng)與已經(jīng)播放過(guò)的時(shí)長(zhǎng)的差值,然后根據(jù)累計(jì)的暫停次數(shù)修正該差值,以及計(jì)算修正后的差值是否大于預(yù)先設(shè)置的某一臨界值,較佳的,該臨界值等于或略大于語(yǔ)音服務(wù)器預(yù)先設(shè)置的可用緩存的存儲(chǔ)時(shí)長(zhǎng),如果是,中止當(dāng)前數(shù)據(jù)幀的上傳。
在實(shí)踐中,本案申請(qǐng)人發(fā)現(xiàn),本發(fā)明的flash流媒體播放器及現(xiàn)有的Adobe Flash Player存在下述缺陷當(dāng)用戶每執(zhí)行一次暫停操作,歌曲數(shù)據(jù)幀的播放時(shí)長(zhǎng)會(huì)相應(yīng)減少139. 3197 (ms)。 因此上述步驟S^在進(jìn)行上傳監(jiān)控的過(guò)程中加上暫停導(dǎo)致的時(shí)長(zhǎng)減少值。本發(fā)明中,通常由語(yǔ)音服務(wù)器來(lái)進(jìn)行上傳數(shù)據(jù)的監(jiān)控即可大致滿足用戶的應(yīng)用需求。因此,該步驟S^關(guān)于flash播放器進(jìn)行上傳數(shù)據(jù)幀的監(jiān)控屬于可選操作,其目的在于 進(jìn)一步確保flash流媒體播放器的上傳數(shù)據(jù)不會(huì)堵塞在網(wǎng)絡(luò)中。步驟S27、在播放過(guò)程中,當(dāng)用戶執(zhí)行切歌或刪歌操作時(shí),語(yǔ)音服務(wù)器根據(jù)接收到的由flash流媒體播放器發(fā)送的相應(yīng)請(qǐng)求清空被切或被刪歌曲的緩沖數(shù)據(jù),且在切歌操作中,flash流媒體播放器再執(zhí)行上述步驟S21及其之后的放歌操作。步驟S28、當(dāng)用戶執(zhí)行關(guān)閉flash流媒體播放器操作后,語(yǔ)音服務(wù)器清空該用戶的所上傳歌曲的所有緩沖數(shù)據(jù)。較佳的,語(yǔ)音服務(wù)器依然維持與瀏覽器及其所調(diào)用的flash 流媒體播放器之間的通信連接,以便于聊天室中的用戶稍后再執(zhí)行放歌操作。該步驟中,語(yǔ)音服務(wù)器可以基于心跳或其它檢測(cè)機(jī)制去判斷flash流媒體播放器是否已被關(guān)閉,也可以由flash流媒體播放器即時(shí)向該語(yǔ)音服務(wù)器發(fā)送關(guān)閉請(qǐng)求。步驟S29、當(dāng)用戶執(zhí)行退出聊天室網(wǎng)頁(yè)操作后,語(yǔ)音服務(wù)器終止與瀏覽器及其所調(diào)用的flash流媒體播放器之間的通信連接,清空該用戶的所有緩沖數(shù)據(jù)(該緩沖數(shù)據(jù)包括麥上數(shù)據(jù))。綜上,本實(shí)施例公開(kāi)的flash流媒體播放器的放歌方法至少具有以下優(yōu)點(diǎn)
1、擴(kuò)展了瀏覽器和聊天室的功能。2、flash流媒體播放器的操作受網(wǎng)絡(luò)側(cè)語(yǔ)音服務(wù)器的制約,其二者的交互與聊天室用戶之間的交互對(duì)應(yīng),其交互操作包括播放、暫停、切歌、刪歌及關(guān)閉播放器等處理,從而提高了用戶之間的交互性。而且,兩者之間的緩沖監(jiān)控機(jī)制確保了 flash流媒體播放器的上傳數(shù)據(jù)不會(huì)堵塞在網(wǎng)絡(luò)中,同時(shí)還降低了對(duì)語(yǔ)音服務(wù)器的配置要求。3、flash流媒體播放器都是在用戶瀏覽聊天室的過(guò)程中,由網(wǎng)頁(yè)內(nèi)容服務(wù)器將其推送給瀏覽器進(jìn)行加載和調(diào)用;因此網(wǎng)頁(yè)內(nèi)容服務(wù)器能對(duì)該flash流媒體播放器的更新、 安裝及卸載等操作進(jìn)行統(tǒng)一管理,且管理便捷。4、由于本發(fā)明采用語(yǔ)音服務(wù)器來(lái)控制各flash流媒體播放器的相關(guān)操作,因此, 降低了 flash流媒體播放器的復(fù)雜度,同時(shí)也節(jié)省了網(wǎng)頁(yè)內(nèi)容服務(wù)器向?yàn)g覽器推送置標(biāo)語(yǔ)言文件的時(shí)間,加快了瀏覽器加載和調(diào)用的速度;從而使得flash流媒體播放器加載和調(diào)用的整個(gè)過(guò)程能在短時(shí)間內(nèi)自動(dòng)完成,簡(jiǎn)化了用戶的相關(guān)操作,增強(qiáng)了用戶體驗(yàn)。實(shí)施例二本實(shí)施例是對(duì)實(shí)施例一的一種變形。其放歌的操作流程,如圖3所示,包括以下步驟步驟S210、flash流媒體播放器將用戶的播放請(qǐng)求發(fā)送給語(yǔ)音服務(wù)器以獲取播放許可;步驟S211、獲得播放許可后,flash流媒體播放器將所點(diǎn)的歌曲以fIv格式上傳至語(yǔ)音服務(wù)器;步驟S212、語(yǔ)音服務(wù)器將所點(diǎn)的歌曲作為一路音頻輸入源參與聊天室的混音,同
1時(shí)將所點(diǎn)的歌曲與聊天室中其它用戶的音頻數(shù)據(jù)混音后回傳給上傳用戶所在的聊天客戶端或flash流媒體播放器,以供其與聊天室其它用戶的聊天客戶端同步播放所點(diǎn)歌曲。與實(shí)施例一的不同之處在于,實(shí)施例一不需要將接收的歌曲數(shù)據(jù)幀進(jìn)行回傳,語(yǔ)音服務(wù)器處理混音的復(fù)雜度略微低些。其優(yōu)點(diǎn)在于,本實(shí)施例減少了語(yǔ)音服務(wù)器相關(guān)控制指令的下發(fā), 例如,當(dāng)回傳的數(shù)據(jù)是交由聊天客戶端來(lái)進(jìn)行解碼播放處理(注該聊天客戶端可以調(diào)用現(xiàn)有的Adobe Flash Player來(lái)進(jìn)行播放處理)時(shí),語(yǔ)音服務(wù)器也省略了同步播放指令的下發(fā),同時(shí)在保留flash流媒體播放器播放指令的發(fā)送功能的前提下可省略其播放功能的開(kāi)發(fā)設(shè)計(jì)。在本實(shí)施例中,語(yǔ)音服務(wù)器上傳數(shù)據(jù)的緩沖監(jiān)控可以沿用上述實(shí)施例一所公開(kāi)的方法。同時(shí),flash流媒體播放器在執(zhí)行添加歌曲、發(fā)送播放指令、暫停、切歌、刪歌、關(guān)閉 flash流媒體播放器及退出聊天室的相關(guān)操作也與上述實(shí)施例一類似,在此不作贅述。同理,本實(shí)施例取得的技術(shù)效果與上述實(shí)施例一類似,在此不作贅述。實(shí)施例三本實(shí)施例公開(kāi)一種網(wǎng)頁(yè)聊天室系統(tǒng),如圖4所示,包括瀏覽器10、Web服務(wù)器集群 60和flash流媒體播放器50,Web服務(wù)器集群60至少由網(wǎng)頁(yè)內(nèi)容服務(wù)器30和語(yǔ)音服務(wù)器 20組成;網(wǎng)頁(yè)內(nèi)容服務(wù)器30上存放有對(duì)應(yīng)一聊天室的置標(biāo)語(yǔ)言文件40,該置標(biāo)語(yǔ)言文件 40嵌入有flash流媒體播放器50及其可執(zhí)行代碼。其中瀏覽器,用于在用戶進(jìn)入聊天室后,調(diào)用flash流媒體播放器處理用戶的放歌操作。flash流媒體播放器,用于建立與語(yǔ)音服務(wù)器之間的通信連接,將由可執(zhí)行代碼捕獲的用戶請(qǐng)求發(fā)送給語(yǔ)音服務(wù)器。語(yǔ)音服務(wù)器,用于建立與flash流媒體播放器之間的通信連接,接收f(shuō)lash流媒體播放器的用戶請(qǐng)求,根據(jù)用戶請(qǐng)求下發(fā)控制指令以供flash流媒體播放器處理用戶點(diǎn)播的
第三方歌曲。本實(shí)施例中,flash流媒體播放器和語(yǔ)音服務(wù)器所處理的用戶請(qǐng)求包括以下請(qǐng)求的任意一種或任意組合放歌請(qǐng)求、播放請(qǐng)求、暫停請(qǐng)求、切歌請(qǐng)求、刪歌請(qǐng)求及相對(duì)于整個(gè)flash流媒體播放器的打開(kāi)和關(guān)閉請(qǐng)求。本實(shí)施例中,flash流媒體播放器與語(yǔ)音服務(wù)器之間相應(yīng)部署有處理上述用戶請(qǐng)求的功能模塊,其中各處理模塊的業(yè)務(wù)邏輯與上述實(shí)施例公開(kāi)的方法流程相對(duì)應(yīng)。flash流媒體播放器50內(nèi)部功能模塊的架構(gòu)如圖5所示,至少包括通信模塊51,用于建立與語(yǔ)音服務(wù)器之間的通信連接;執(zhí)行模塊52,用于在通信模塊建立與語(yǔ)音服務(wù)器的通信連接后,將由嵌入聊天室網(wǎng)頁(yè)中的可執(zhí)行代碼捕獲的用戶請(qǐng)求發(fā)送給語(yǔ)音服務(wù)器,以及根據(jù)語(yǔ)音服務(wù)器下發(fā)的控制指令處理用戶點(diǎn)播的第三方歌曲。與實(shí)施例一所公開(kāi)的方法流程所對(duì)應(yīng)的,該執(zhí)行模塊如圖6所示,包含有下述依次建立通信連接第一至第四執(zhí)行單元53 57,各執(zhí)行單元的功能分述如下第一執(zhí)行單元,用于獲取用戶點(diǎn)播的歌曲,將該歌曲封裝成swf格式以待播放,并將解析出的歌曲的頭部信息顯示在播放列表中;
第二執(zhí)行單元,用于向語(yǔ)音服務(wù)器發(fā)送用戶的播放請(qǐng)求以獲取播放許可;第三執(zhí)行單元,用于在獲取播放許可后,將所點(diǎn)的歌曲通過(guò)獨(dú)立于麥上數(shù)據(jù)的上傳通道以flv格式上傳至語(yǔ)音服務(wù)器,以供語(yǔ)音服務(wù)器將所點(diǎn)的歌曲作為一路音頻輸入源參與聊天室的混音;并在上傳的過(guò)程中,監(jiān)聽(tīng)語(yǔ)音服務(wù)器發(fā)送的同步播放指令;第四執(zhí)行單元,用于監(jiān)聽(tīng)所述語(yǔ)音服務(wù)器發(fā)送的同步播放指令,并在接收到所述同步播放指令后,播放所點(diǎn)的歌曲。上述第一至第四執(zhí)行單元確保了 flash流媒體播放器與語(yǔ)音服務(wù)器同步啟動(dòng)用戶點(diǎn)播的第三方歌曲的播放進(jìn)程。由于語(yǔ)音服務(wù)器的緩存通常都比較小,而可分配用于緩存用戶上傳的歌曲數(shù)據(jù)幀的可用緩存則更??;所以在放歌過(guò)程中,flash流媒體播放器通常都是邊上傳邊播放的,由此則還需要相應(yīng)的緩沖機(jī)制來(lái)確保播放的連續(xù)性。較佳的,該緩沖機(jī)制可以由語(yǔ)音服務(wù)器來(lái)進(jìn)行主控制,并由flash流媒體播放器來(lái)進(jìn)行輔助控制?;诖?,與上述步驟S^所對(duì)應(yīng)的,上述的第三執(zhí)行單元還可用于計(jì)算當(dāng)前上傳數(shù)據(jù)幀需要的播放時(shí)長(zhǎng)與已經(jīng)播放過(guò)的時(shí)長(zhǎng)的差值,并根據(jù)累計(jì)的暫停次數(shù)修正該差值,然后計(jì)算修正后的差值是否大于預(yù)先設(shè)置的某一臨界值,較佳的,該臨界值等于或略大于語(yǔ)音服務(wù)器預(yù)先設(shè)置的可用緩存的存儲(chǔ)時(shí)長(zhǎng),如果是,中止當(dāng)前數(shù)據(jù)幀的上傳。本實(shí)施例中,如圖6所示,上述執(zhí)行模塊還可進(jìn)一步包括第五執(zhí)行單元57以執(zhí)行上述實(shí)施例一中的步驟S20所對(duì)應(yīng)的步驟,具體的,該第五執(zhí)行單元用于接收用戶的放歌請(qǐng)求,向嵌入聊天室網(wǎng)頁(yè)中的聊天客戶端建立通信連接并獲取放歌權(quán)限,如果權(quán)限開(kāi)放,則使令通信模塊建立與語(yǔ)音服務(wù)器之間的TCP連接,以便第一至第四執(zhí)行單元以RTMP協(xié)議開(kāi)啟與該語(yǔ)音服務(wù)器之間的信令和數(shù)據(jù)交互。與上述實(shí)施例二所對(duì)應(yīng)的,圖5所示的執(zhí)行模塊可以包含有圖7所示的第六和第七執(zhí)行單元57、58,各執(zhí)行單元的功能分述如下第六執(zhí)行單元57,用于將用戶的播放請(qǐng)求發(fā)送給語(yǔ)音服務(wù)器以獲取播放許可;第七執(zhí)行單元58,用于獲得播放許可后,將所點(diǎn)的歌曲以flv格式上傳至語(yǔ)音服務(wù)器,以供語(yǔ)音服務(wù)器將所點(diǎn)的歌曲作為一路音頻輸入源參與聊天室的混音,同時(shí)供語(yǔ)音服務(wù)器將所點(diǎn)的歌曲與聊天室中其它用戶的音頻數(shù)據(jù)混音后回傳給上傳用戶的聊天客戶端或flash流媒體播放器,進(jìn)而使該聊天客戶端或flash流媒體播放器與聊天室其它用戶的聊天客戶端同步播放所點(diǎn)歌曲。在本實(shí)施例中,當(dāng)嵌入網(wǎng)頁(yè)的聊天客戶端設(shè)置有所述flash流媒體播放器的操作權(quán)限顯示窗口時(shí),較佳的,上述flash流媒體播放器的通信模塊還用于將能改變?cè)撚脩魴?quán)限的控制指令發(fā)送給嵌入網(wǎng)頁(yè)的聊天客戶端,以供其修改該用戶的顯示權(quán)限。本實(shí)施例公開(kāi)的網(wǎng)頁(yè)聊天室系統(tǒng)中,語(yǔ)音服務(wù)器的結(jié)構(gòu)如圖8所示,至少包括通信模塊21,用于建立與flash流媒體播放器之間的通信連接;語(yǔ)音處理模塊22,用于在通信模塊建立與flash流媒體播放器之間的通信連接后,接收f(shuō)lash流媒體播放器的用戶請(qǐng)求,根據(jù)用戶請(qǐng)求下發(fā)控制指令以供flash流媒體播放器處理用戶點(diǎn)播的第三方歌曲。其中,無(wú)論圖5的執(zhí)行模塊是由圖6中的第一至第五執(zhí)行單元構(gòu)成,還是由圖7中的第六和第七執(zhí)行單元構(gòu)成;與之相應(yīng)的語(yǔ)音服務(wù)器的緩沖處理機(jī)制都是一樣的,其不同之處在于當(dāng)flash流媒體播放器的執(zhí)行模塊是由圖2所示的第六和第七執(zhí)行單元構(gòu)成時(shí),語(yǔ)音服務(wù)器則還需要增設(shè)一個(gè)執(zhí)行上傳歌曲數(shù)據(jù)回傳的功能單元,并省略了同步播放指令的下發(fā)的功能設(shè)計(jì),同時(shí)簡(jiǎn)化了與之對(duì)應(yīng)的flash流媒體播放器的播放功能的開(kāi)發(fā)設(shè)計(jì)。與實(shí)施例一及實(shí)施例二對(duì)應(yīng)的語(yǔ)音處理模塊的內(nèi)部功能單元分述如下與實(shí)施例一所對(duì)應(yīng)的,語(yǔ)音處理模塊22包括緩存(圖中未示出)、混音單元(圖中未示出)、第一或第二同步播放單元(圖中未示出)以及如圖9所示的第二至第四處理單元中的任意一種或任意組合。其中該緩存用于存儲(chǔ)flash流媒體播放器所上傳的第三方歌曲數(shù)據(jù),混音單元用于將緩存中flash流媒體播放器所上傳的歌曲作為一路音頻輸入源參與聊天室的混音;第一同步播放單元,用于向該聊天室的其它用戶分發(fā)攜帶歌曲信息的混音數(shù)據(jù)的同時(shí),向所述flash流媒體播放器發(fā)送同步播放指令;第二同步播放單元?jiǎng)t用于判斷緩存的歌曲數(shù)據(jù)是否大于或等于預(yù)先設(shè)置的混音閾值,當(dāng)判斷結(jié)果為是時(shí),向flash 流媒體播放器發(fā)送攜帶指示有播放時(shí)間的同步播放指令。第二至第四處理單元的功能分述如下第二處理單元M,用于在接收到flash流媒體播放器的切歌或刪歌請(qǐng)求后,清空被切或被刪歌曲的緩沖數(shù)據(jù)幀,當(dāng)接收到關(guān)閉flash流媒體播放器請(qǐng)求后,清空該用戶的所上傳歌曲的所有緩沖數(shù)據(jù),以及在獲取到用戶關(guān)閉聊天室網(wǎng)頁(yè)之后,清空該用戶的所有緩沖數(shù)據(jù);第三處理單元25,用于在接收上傳歌曲的過(guò)程中,定時(shí)檢測(cè)當(dāng)前已緩存的歌曲數(shù)據(jù)幀的播放時(shí)長(zhǎng),判斷該時(shí)長(zhǎng)是否小于其預(yù)先設(shè)置的可用緩存的存儲(chǔ)時(shí)長(zhǎng),如果是,指令 flash流媒體播放器繼續(xù)上傳,如果否,則指令flash流媒體播放器中止上傳;以及當(dāng)檢測(cè)到當(dāng)前已緩存數(shù)據(jù)幀的播放時(shí)長(zhǎng)與該可用緩存的存儲(chǔ)時(shí)長(zhǎng)之間的差值小于某一閾值時(shí),指令flash流媒體播放器加速上傳;第四處理單元沈,用于在接收到所點(diǎn)歌曲的每一幀數(shù)據(jù)之后,計(jì)算該幀數(shù)據(jù)的等待時(shí)長(zhǎng),判斷該時(shí)長(zhǎng)是否不大于其預(yù)先設(shè)置的可用緩存的存儲(chǔ)時(shí)長(zhǎng),如果判斷結(jié)果為否,則丟棄該數(shù)據(jù)幀。與實(shí)施例二所對(duì)應(yīng)的,如圖10所示,語(yǔ)音處理模塊22包括下述的第六和第七處理單元27、28,較佳的,該語(yǔ)音處理模塊22還可以進(jìn)一步包括上述圖9中所示的第二至第四處理單元中的任意一種或任意組合。其中,第六處理單元27用于接收f(shuō)lash流媒體播放器的播放請(qǐng)求,根據(jù)該播放請(qǐng)求下發(fā)播放許可;第七處理單元觀用于在所述第六處理單元下發(fā)播放許可后,將從flash流媒體播放器所接收的上傳歌曲作為一路音頻輸入源參與聊天室的混音,同時(shí)將所點(diǎn)的歌曲與聊天室中其它用戶的音頻數(shù)據(jù)混音后回傳給上傳用戶的聊天客戶端或flash流媒體播放器,進(jìn)而使該聊天客戶端或flash流媒體播放器與聊天室其它用戶的聊天客戶端同步播放所點(diǎn)歌曲。本實(shí)施例公開(kāi)的網(wǎng)頁(yè)聊天室系統(tǒng)及其裝置至少具有以下優(yōu)點(diǎn)1、擴(kuò)展了瀏覽器和聊天室的功能。2、flash流媒體播放器的操作受網(wǎng)絡(luò)側(cè)語(yǔ)音服務(wù)器的制約,其二者的交互與聊天室用戶之間的交互對(duì)應(yīng),其交互操作包括播放、暫停、切歌、刪歌及關(guān)閉播放器等處理,從而提高了用戶之間的交互性。而且,兩者之間的緩沖監(jiān)控機(jī)制確保了 flash流媒體播放器的上傳數(shù)據(jù)不會(huì)堵塞在網(wǎng)絡(luò)中,同時(shí)還降低了對(duì)語(yǔ)音服務(wù)器的配置要求。3、flash流媒體播放器都是在用戶瀏覽聊天室的過(guò)程中,由網(wǎng)頁(yè)內(nèi)容服務(wù)器將其推送給瀏覽器進(jìn)行加載和調(diào)用;因此網(wǎng)頁(yè)內(nèi)容服務(wù)器能對(duì)該flash流媒體播放器的更新、 安裝及卸載等操作進(jìn)行統(tǒng)一管理,且管理便捷。4、由于本發(fā)明采用語(yǔ)音服務(wù)器來(lái)控制各flash流媒體播放器的相關(guān)操作,因此, 降低了 flash流媒體播放器的復(fù)雜度,同時(shí)也節(jié)省了網(wǎng)頁(yè)內(nèi)容服務(wù)器向?yàn)g覽器推送置標(biāo)語(yǔ)言文件的時(shí)間,加快了瀏覽器加載和調(diào)用的速度;從而使得flash流媒體播放器加載和調(diào)用的整個(gè)過(guò)程能在短時(shí)間內(nèi)自動(dòng)完成,簡(jiǎn)化了用戶的相關(guān)操作,增強(qiáng)了用戶體驗(yàn)。值得說(shuō)明的是,本領(lǐng)域技術(shù)人員可以理解上述實(shí)施例三及其附圖只是本發(fā)明一個(gè)優(yōu)選實(shí)施例及其示意圖,附圖中的模塊或流程并不一定是實(shí)施本發(fā)明所必須的。本領(lǐng)域技術(shù)人員還可以理解實(shí)施例中的裝置中的功能模塊或單元可以按照實(shí)施例描述進(jìn)行分布于實(shí)施例的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施例的一個(gè)或多個(gè)裝置中。上述實(shí)施例的功能模塊或單元可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)功能子模塊或子單元。為此,下述實(shí)施例四公開(kāi)一種flash流媒體播放器的開(kāi)發(fā)架構(gòu),該架構(gòu)是對(duì)上述實(shí)施例三中對(duì)應(yīng)實(shí)施例一的方法流程部署的功能模塊或單元所作出的一種重新部署,用于處理用戶點(diǎn)播的Mp3格式的第三方歌曲。實(shí)施例四本實(shí)施例公開(kāi)的flash流媒體播放器關(guān)于音頻的處理主要是要將Mp3數(shù)據(jù)封裝成 swf和fIv兩種格式的數(shù)據(jù)。封裝成swf中是供該flash流媒體播放器在用戶本地播放Mp3 數(shù)據(jù),封裝成flv是用來(lái)上傳至語(yǔ)音服務(wù)器,供其進(jìn)行解碼及混音等處理。如附圖11所示,本實(shí)施例公開(kāi)的flash流媒體播放器包括PlayerModulelOO、 Mp3Swf200、Music300、Mp3List400、Mp3Uploader500、Mp3Flv600 和 Mp3Socket700 共七個(gè)模塊,各模塊的功能分述如下PlayerModule 為該flash應(yīng)用最高層,用于處理用戶界面的顯示和特效,接收用戶操作,同時(shí)接收語(yǔ)音服務(wù)器所返回的RTMP命令。Mp3SoCket 用于處理與語(yǔ)音服務(wù)器之間的音頻數(shù)據(jù)發(fā)送以及出現(xiàn)異常情況的網(wǎng)絡(luò)重連處理。Mp3List:其為歌曲管理器集合,用來(lái)處理用戶添加、刪除和改變播放模式等動(dòng)作后對(duì)歌曲各種狀態(tài)、排序管理和維護(hù)。Music 用于保存加載后的每一首歌曲,處理歌曲信息的解析,Mp3數(shù)據(jù)幀信息,播放狀態(tài)和進(jìn)度等音樂(lè)信息。Mp3Upl0ader 用于負(fù)責(zé)管理歌曲上傳過(guò)程,激活上傳或停止上傳,實(shí)時(shí)監(jiān)控歌曲上傳和本地播放的同步情況,監(jiān)控和管理已發(fā)送的數(shù)據(jù)量。Mp3Flv:用于歌曲解析的底層處理,主要將Mp3轉(zhuǎn)換為flv格式。當(dāng)歌曲解析為 flv成功,并且語(yǔ)音服務(wù)器返回指令允許上傳后,Mp3flv就通知Mp3S0Cket開(kāi)始發(fā)送數(shù)據(jù)。Mp3Swf 用于歌曲解析的底層處理,主要將Mp3轉(zhuǎn)換為Swf格式并播放音樂(lè)。其中,本實(shí)施例中的架構(gòu)模塊與上述實(shí)施例三中的功能模塊或單元之間的對(duì)應(yīng)關(guān)系如下Mp3Socket與PlayerModule聯(lián)合實(shí)現(xiàn)上述通訊模塊和第二執(zhí)行單元的功能;Mp3Swf、Music、Mp3List和PlayerModule模塊聯(lián)合實(shí)現(xiàn)上述第一執(zhí)行單元的功
臺(tái)匕 gti ;
Mp3Flv、Mp3Uploader、Mp3Socket 和 PlayerModule 模塊聯(lián)合實(shí)現(xiàn)上述第三執(zhí)行單元的功能;Music和Mp3Swf和PlayerModule模塊聯(lián)合實(shí)現(xiàn)上述第四執(zhí)行單元的功能。本實(shí)施例中,flash流媒體播放器作為一個(gè)獨(dú)立應(yīng)用,使用了 flex模塊技術(shù)單獨(dú)設(shè)計(jì)開(kāi)發(fā)。當(dāng)flash流媒體播放器被加載后,flash流媒體播放器和語(yǔ)音服務(wù)器間建立RTMP 協(xié)議(REAL TIME MESSAGING PROTOCOL,實(shí)時(shí)信息交互協(xié)議),所有flash流媒體播放器和語(yǔ)音服務(wù)器之間的控制命令都是通過(guò)RTMP協(xié)議來(lái)實(shí)現(xiàn)。該協(xié)議是為flash流媒體播放器和語(yǔ)音服務(wù)器之間音頻、視頻和數(shù)據(jù)傳輸開(kāi)發(fā)的一種私有協(xié)議。當(dāng)用戶點(diǎn)擊播放按鈕時(shí),音頻數(shù)據(jù)通過(guò)flash流媒體播放器與語(yǔ)音服務(wù)器之間單獨(dú)建立的TCP連接發(fā)送到語(yǔ)音服務(wù)器緩存。與傳統(tǒng)播放器及其客戶端相比,本flash流媒體播放器完全采用web平臺(tái)技術(shù)開(kāi)發(fā),在技術(shù)上差異很大,下面詳細(xì)說(shuō)明基礎(chǔ)架構(gòu)不同本flash流媒體播放器采用的是B/S架構(gòu),用戶工作通過(guò)Web瀏覽器(Browser) 提供,同時(shí)在瀏覽器內(nèi)執(zhí)行部分與用戶相關(guān)的事務(wù)邏輯,其中用戶瀏覽器和服務(wù)器之間的通訊主要通過(guò)http協(xié)議返回;而傳統(tǒng)客戶端采用的是C/S架構(gòu)。開(kāi)發(fā)平臺(tái)不同本flash流媒體播放器使用的技術(shù)平臺(tái)為瀏覽器(Browser) +Flash實(shí)現(xiàn),即 RIA(Rich Internet Applications)富互聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā)模式,flash流媒體播放器利用了 flash提供的socket連接機(jī)制,因此對(duì)于上傳音樂(lè)數(shù)據(jù)部分使用的是tcp/ip協(xié)議通訊。傳統(tǒng)客戶端方式主要使用C++開(kāi)發(fā),不依賴瀏覽器和第三方平臺(tái)。用戶體驗(yàn)不同本flash流媒體播放器由于使用B/S結(jié)構(gòu)開(kāi)發(fā),用戶使用時(shí)不需下載和安裝,可以像平時(shí)瀏覽網(wǎng)頁(yè)一樣使用放歌功能。不需要維護(hù)殺毒或者卸載等操作,也免去了在線更新版本的麻煩,用戶在使用時(shí)始終使用的是最新功能。安全權(quán)限不同flash流媒體播放器運(yùn)用的是flash安全沙箱,在其加載swf文件及其它資源時(shí), 會(huì)根據(jù)這些文件和資源的來(lái)源單獨(dú)地將其分配到安全沙箱中。該安全沙箱有三種作用本地文件系統(tǒng)域禁止一切不安全的跨域訪問(wèn)。本地受信任域解除了絕大部分的安全限制,但此操作只當(dāng)用戶允許后才有效。遠(yuǎn)程網(wǎng)絡(luò)域?yàn)榉乐挂鹂缬蚬?,必須使用策略文件指定安全?jí)別。需實(shí)現(xiàn)的功能不同本實(shí)施例公開(kāi)的flash流媒體播放器與傳統(tǒng)播放器不同的是,該flash流媒體播放器與普通播放器的工作過(guò)程是相反的,普通播放器從服務(wù)器下載播放歌曲不受存儲(chǔ)空間限制,可以在播放的同時(shí)一直下載全部歌曲數(shù)據(jù),而不需要進(jìn)行太多的監(jiān)控和干預(yù)。flash 流媒體播放器則是在播放的同時(shí)實(shí)時(shí)上傳,受到服務(wù)器資源的限制,不能將全部歌曲上傳, 因此需要使用緩沖機(jī)制,確保服務(wù)器總能收到足夠的播放數(shù)據(jù)而保持歌曲的流暢播放。同時(shí)為了能夠保持語(yǔ)音同步,flash流媒體播放器和語(yǔ)音服務(wù)器之間還有實(shí)時(shí)同步機(jī)制,確保語(yǔ)音服務(wù)器播放的歌曲與flash流媒體播放器本地播放的歌曲進(jìn)度始終保持一致。
根據(jù)上述實(shí)施例公開(kāi)的技術(shù)方案,圖12及圖13是本發(fā)明申請(qǐng)人自主研發(fā)的網(wǎng)頁(yè)聊天室的頁(yè)面示意圖。當(dāng)用戶在瀏覽器中指定URL地址為http://WWW.peng58. com/20888003時(shí),瀏覽器根據(jù)網(wǎng)頁(yè)內(nèi)容服務(wù)器傳送的置標(biāo)語(yǔ)言文件解碼后顯示的聊天室的網(wǎng)頁(yè)如圖12所示,其中,在該聊天室中,A框?yàn)楝F(xiàn)有的文本聊天內(nèi)容及系統(tǒng)信息顯示窗口 (可選的,該窗口也可以用于顯示用戶對(duì)flash流媒體播放器的操作權(quán)限),B框?yàn)榱奶焓页蓡T的列表信息展示窗口,其中標(biāo)號(hào)C指向“開(kāi)麥”按鈕,當(dāng)用戶開(kāi)啟“開(kāi)麥”后,即可與聊天室中的玩家進(jìn)行語(yǔ)音交流,由語(yǔ)音服務(wù)器對(duì)聊天室各用戶的麥上數(shù)據(jù)進(jìn)行混音轉(zhuǎn)發(fā)處理,該 “開(kāi)麥”功能構(gòu)成上述實(shí)施例中的聊天客戶端中的一部分。其中標(biāo)號(hào)D對(duì)應(yīng)本發(fā)明所提供的放歌功能,在用戶有放歌權(quán)限的前提下,當(dāng)用戶點(diǎn)擊打開(kāi)該“放歌”功能時(shí),在A區(qū)域的右上角彈出flash流媒體播放器的操作界面,以及時(shí)準(zhǔn)確地捕獲用戶請(qǐng)求,并與語(yǔ)音服務(wù)器交互以完成放歌。如圖13所示,該操作界面設(shè)有添加歌曲的“添加”鍵E、刪除歌曲的“刪除” 鍵F、播放歌曲的“播放”鍵G、切歌到上一曲的“上一曲”鍵H和切歌到下一曲的“下一曲” 鍵I,以及播放進(jìn)度顯示條J,且該flash流媒體播放器的操作界面還設(shè)有“混響”、“伴唱”和 “順序播放”等操作鍵;各鍵對(duì)應(yīng)上述實(shí)施例中相應(yīng)的用戶請(qǐng)求,其中,當(dāng)用戶選擇順序播放時(shí),flash流媒體播放器在上傳完一首歌曲之后,即開(kāi)始傳送下一首歌曲,中間可省略獲取播放權(quán)限的操作,即只要語(yǔ)音服務(wù)器不終止flash流媒體播放器的播放權(quán)限,則該flash流媒體播放器默認(rèn)一直被許可并按順序上傳;在之后的用戶切歌或刪歌之后的等操作處理與上述實(shí)施例一類似,在此不作贅述。在實(shí)際操作過(guò)程中,該flash流媒體播放器先將Mp3音頻資源加載到歌曲列表模塊,并以Swf格式打包封裝以便播放,然后將音頻文件封裝成flv格式,并以恒定的速率上傳到語(yǔ)音服務(wù)器。當(dāng)語(yǔ)音服務(wù)器接收到一定量的音頻資源時(shí),下發(fā)同步播放指令給該flash 流媒體播放器,從而可以使得該flash流媒體播放器在播放歌曲的同時(shí)還進(jìn)行歌曲數(shù)據(jù)幀的上傳。當(dāng)用戶點(diǎn)擊播放按鈕時(shí),音頻數(shù)據(jù)通過(guò)flash流媒體播放器與語(yǔ)音服務(wù)器之間單獨(dú)建立的TCP連接發(fā)送到語(yǔ)音服務(wù)器緩存,而播放過(guò)的資源服務(wù)器將自動(dòng)清除,這樣可以極大的減少語(yǔ)音服務(wù)器的存儲(chǔ)壓力。當(dāng)服務(wù)器里面緩存的歌曲數(shù)據(jù)幀并不能滿足當(dāng)前的播放時(shí),語(yǔ)音服務(wù)器將發(fā)送加快上傳的指令給flash流媒體播放器。此時(shí),在網(wǎng)速允許的情況下,該flash流媒體播放器將以加倍的速率進(jìn)行音頻上傳。綜上,本領(lǐng)域的技術(shù)人員及操作用戶很容易理解上述實(shí)施例所提供的網(wǎng)頁(yè)聊天室的放歌方法、裝置及系統(tǒng)至少具有以下有益效果。1、擴(kuò)展了瀏覽器和聊天室的功能。2、flash流媒體播放器的操作受網(wǎng)絡(luò)側(cè)語(yǔ)音服務(wù)器的制約,其二者的交互與聊天室用戶之間的交互對(duì)應(yīng),其交互操作包括播放、暫停、切歌、刪歌及關(guān)閉播放器等處理,從而提高了用戶之間的交互性。而且,兩者之間的緩沖監(jiān)控機(jī)制確保了 flash流媒體播放器的上傳數(shù)據(jù)不會(huì)堵塞在網(wǎng)絡(luò)中,同時(shí)還降低了對(duì)語(yǔ)音服務(wù)器的配置要求。3、flash流媒體播放器都是在用戶瀏覽聊天室的過(guò)程中,由網(wǎng)頁(yè)內(nèi)容服務(wù)器將其推送給瀏覽器進(jìn)行加載和調(diào)用;因此網(wǎng)頁(yè)內(nèi)容服務(wù)器能對(duì)該flash流媒體播放器的更新、 安裝及卸載等操作進(jìn)行統(tǒng)一管理,且管理便捷。4、由于本發(fā)明采用語(yǔ)音服務(wù)器來(lái)控制各flash流媒體播放器的相關(guān)操作,因此, 降低了 flash流媒體播放器的復(fù)雜度,同時(shí)也節(jié)省了網(wǎng)頁(yè)內(nèi)容服務(wù)器向?yàn)g覽器推送置標(biāo)語(yǔ)言文件的時(shí)間,加快了瀏覽器加載和調(diào)用的速度;從而使得flash流媒體播放器加載和調(diào)用的整個(gè)過(guò)程能在短時(shí)間內(nèi)自動(dòng)完成,簡(jiǎn)化了用戶的相關(guān)操作,增強(qiáng)了用戶體驗(yàn)。5、上述的第三方歌曲是獨(dú)立于語(yǔ)音服務(wù)器和flash流媒體服務(wù)器之外的數(shù)字歌曲,該歌曲可以是存儲(chǔ)在用戶本地的歌曲,也可以是鏈接到其它網(wǎng)絡(luò)的可供下載的網(wǎng)絡(luò)歌曲,從而杜絕了外界噪聲源的干擾,使得放歌的音質(zhì)很有保障。以上公開(kāi)的僅為本發(fā)明的幾個(gè)具體實(shí)施例,但是,本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種網(wǎng)頁(yè)聊天室中的放歌方法,其特征在于,包括開(kāi)發(fā)人員搭建Web服務(wù)器集群,所述Web服務(wù)器集群至少包括網(wǎng)頁(yè)內(nèi)容服務(wù)器及語(yǔ)音服務(wù)器;開(kāi)發(fā)人員將flash流媒體播放器及其可執(zhí)行代碼嵌入對(duì)應(yīng)一聊天室的置標(biāo)語(yǔ)言文件中并存放于所述網(wǎng)頁(yè)內(nèi)容服務(wù)器上;在用戶以瀏覽器進(jìn)入所述聊天室后,所述瀏覽器調(diào)用所述flash流媒體播放器處理用戶的放歌操作;其中所述放歌操作的處理至少包括步驟Si、所述flash流媒體播放器建立與所述語(yǔ)音服務(wù)器之間的通信連接; 步驟S2、所述flash流媒體播放器將由所述可執(zhí)行代碼捕獲的用戶請(qǐng)求發(fā)送給所述語(yǔ)音服務(wù)器,以及根據(jù)所述語(yǔ)音服務(wù)器下發(fā)的控制指令處理用戶點(diǎn)播的第三方歌曲。
2.根據(jù)權(quán)利要求1所述的網(wǎng)頁(yè)聊天室的放歌方法,其特征在于,所述步驟S2包括 步驟S21、所述flash流媒體播放器獲取用戶點(diǎn)播的歌曲,將該歌曲封裝成swf格式以待播放,并將解析出的歌曲的頭部信息顯示在播放列表中;步驟S22、所述flash流媒體播放器向語(yǔ)音服務(wù)器發(fā)送用戶的播放請(qǐng)求以獲取播放許可;步驟S23、獲取播放許可后,所述flash流媒體播放器通過(guò)獨(dú)立于麥上數(shù)據(jù)的上傳通道將所點(diǎn)的歌曲以flv格式上傳至語(yǔ)音服務(wù)器,以供所述語(yǔ)音服務(wù)器將所點(diǎn)的歌曲作為一路音頻輸入源參與聊天室的混音,在上傳的過(guò)程中,所述flash流媒體播放器監(jiān)聽(tīng)語(yǔ)音服務(wù)器發(fā)送的同步播放指令;步驟S24、所述語(yǔ)音服務(wù)器在向該聊天室的其它用戶分發(fā)攜帶歌曲信息的混音數(shù)據(jù)的同時(shí),向所述flash流媒體播放器發(fā)送同步播放指令;或者所述語(yǔ)音服務(wù)器判斷緩存的歌曲數(shù)據(jù)是否大于或等于預(yù)先設(shè)置的混音閾值,當(dāng)判斷結(jié)果為是時(shí),向所述flash流媒體播放器發(fā)送攜帶指示有播放時(shí)間的同步播放指令;步驟S25、所述flash流媒體播放器在接收到所述同步播放指令后,播放所點(diǎn)的歌曲。
3.根據(jù)權(quán)利要求2所述的網(wǎng)頁(yè)聊天室的放歌方法,其特征在于,當(dāng)嵌入網(wǎng)頁(yè)的聊天客戶端設(shè)置有所述flash流媒體播放器的操作權(quán)限顯示窗口時(shí),還包括所述語(yǔ)音服務(wù)器或 flash流媒體播放器還將能改變?cè)撚脩魴?quán)限的控制指令發(fā)送給所述聊天客戶端;且所述步驟S21之前還包括步驟S20、所述flash流媒體播放器接收用戶的放歌請(qǐng)求,與嵌入聊天室網(wǎng)頁(yè)中的聊天客戶端建立通信連接并獲取放歌權(quán)限,如果權(quán)限開(kāi)放,則建立與所述語(yǔ)音服務(wù)器之間的TCP 連接,以便以RTMP協(xié)議開(kāi)啟與該語(yǔ)音服務(wù)器之間的信令和數(shù)據(jù)交互。
4.根據(jù)權(quán)利要求2或3所述的網(wǎng)頁(yè)聊天室的放歌方法,其特征在于,所述語(yǔ)音服務(wù)器在接收上傳歌曲的過(guò)程中,還包括自動(dòng)清除已播放過(guò)的歌曲數(shù)據(jù);以及定時(shí)檢測(cè)當(dāng)前緩存的歌曲數(shù)據(jù)幀的播放時(shí)長(zhǎng),判斷該時(shí)長(zhǎng)是否小于其預(yù)先設(shè)置的可用緩存的存儲(chǔ)時(shí)長(zhǎng),如果是,指令flash流媒體播放器繼續(xù)上傳,如果否,則指令flash流媒體播放器中止上傳;以及當(dāng)檢測(cè)到當(dāng)前已緩存數(shù)據(jù)幀的播放時(shí)長(zhǎng)與該可用緩存的存儲(chǔ)時(shí)長(zhǎng)之間的差值小于某一閾值時(shí),指令所述flash流媒體播放器加速上傳。
5.根據(jù)權(quán)利要求2或3所述的網(wǎng)頁(yè)聊天室的放歌方法,其特征在于,還包括所述語(yǔ)音服務(wù)器在接收到所點(diǎn)歌曲的每一幀數(shù)據(jù)之后,計(jì)算該幀數(shù)據(jù)的等待時(shí)長(zhǎng),判斷該時(shí)長(zhǎng)是否不大于其預(yù)先設(shè)置的可用緩存的存儲(chǔ)時(shí)長(zhǎng),如果判斷結(jié)果為否,則丟棄該數(shù)據(jù)幀。
6.根據(jù)權(quán)利要求1所述的網(wǎng)頁(yè)聊天室的放歌方法,其特征在于,所述flash流媒體播放器捕獲的用戶請(qǐng)求還包括歌曲暫停請(qǐng)求、切歌請(qǐng)求、刪除歌曲請(qǐng)求及關(guān)閉請(qǐng)求;其中當(dāng)接收到所述flash流媒體播放器的切歌或刪歌請(qǐng)求后,所述語(yǔ)音服務(wù)器清空被切或被刪歌曲的緩沖數(shù)據(jù)幀,當(dāng)用戶執(zhí)行關(guān)閉flash流媒體播放器操作后,語(yǔ)音服務(wù)器清空該用戶的所上傳歌曲的所有緩沖數(shù)據(jù),以及當(dāng)用戶關(guān)閉聊天室網(wǎng)頁(yè)之后,所述語(yǔ)音服務(wù)器清空該用戶的所有緩沖數(shù)據(jù)。
7.根據(jù)權(quán)利要求2或3所述的網(wǎng)頁(yè)聊天室的放歌方法,其特征在于,所述flash流媒體播放器在上傳所點(diǎn)的歌曲所對(duì)應(yīng)的數(shù)據(jù)幀的過(guò)程中,還包括計(jì)算當(dāng)前上傳數(shù)據(jù)幀需要的播放時(shí)長(zhǎng)與已經(jīng)播放過(guò)的時(shí)長(zhǎng)的差值;根據(jù)累計(jì)的暫停次數(shù)修正該差值;計(jì)算修正后的差值是否大于預(yù)先設(shè)置的某一臨界值,如果是,中止當(dāng)前數(shù)據(jù)幀的上傳。
8.根據(jù)權(quán)利要求1所述的網(wǎng)頁(yè)聊天室的放歌方法,其特征在于,所述步驟S2包括步驟S210、flash流媒體播放器將用戶的播放請(qǐng)求發(fā)送給語(yǔ)音服務(wù)器以獲取播放許可;步驟S211、獲得播放許可后,所述flash流媒體播放器將所點(diǎn)的歌曲以fIv格式上傳至語(yǔ)音服務(wù)器;步驟S212、所述語(yǔ)音服務(wù)器將所點(diǎn)的歌曲作為一路音頻輸入源參與聊天室的混音,同時(shí)將所點(diǎn)的歌曲與聊天室中其它用戶的音頻數(shù)據(jù)混音后回傳給上傳用戶所在的聊天客戶端或flash流媒體播放器,以供其與聊天室其它用戶的聊天客戶端同步播放所點(diǎn)歌曲。
9.一種flash流媒體播放器,其特征在于,包括通信模塊,用于建立與語(yǔ)音服務(wù)器之間的通信連接;執(zhí)行模塊,用于在所述通信模塊建立與語(yǔ)音服務(wù)器的通信連接后,將由嵌入聊天室網(wǎng)頁(yè)中的可執(zhí)行代碼捕獲的用戶請(qǐng)求發(fā)送給所述語(yǔ)音服務(wù)器,以及根據(jù)所述語(yǔ)音服務(wù)器下發(fā)的控制指令處理用戶點(diǎn)播的第三方歌曲。
10.根據(jù)權(quán)利要求9所述的flash流媒體播放器,其特征在于,所述執(zhí)行模塊包括依次建立通信連接的第一至第四執(zhí)行單元,其中第一執(zhí)行單元,用于獲取用戶點(diǎn)播的歌曲,將該歌曲封裝成swf格式以待播放,并將解析出的歌曲的頭部信息顯示在播放列表中;第二執(zhí)行單元,用于向語(yǔ)音服務(wù)器發(fā)送用戶的播放請(qǐng)求以獲取播放許可;第三執(zhí)行單元,用于在獲取播放許可后,將所點(diǎn)的歌曲通過(guò)獨(dú)立于麥上數(shù)據(jù)的上傳通道以flv格式上傳至語(yǔ)音服務(wù)器,以供所述語(yǔ)音服務(wù)器將所點(diǎn)的歌曲作為一路音頻輸入源參與聊天室的混音;第四執(zhí)行單元,用于監(jiān)聽(tīng)所述語(yǔ)音服務(wù)器發(fā)送的同步播放指令,并在接收到所述同步播放指令后,播放所點(diǎn)的歌曲。
11.根據(jù)權(quán)利要求10所述的flash流媒體播放器,其特征在于,所述執(zhí)行模塊還包括第五執(zhí)行單元,用于接收用戶的放歌請(qǐng)求,向嵌入聊天室網(wǎng)頁(yè)中的聊天客戶端建立通信連接并獲取放歌權(quán)限,如果權(quán)限開(kāi)放,則使令所述通信模塊建立與所述語(yǔ)音服務(wù)器之間的TCP 連接,以便第一至第四執(zhí)行單元以RTMP協(xié)議開(kāi)啟與該語(yǔ)音服務(wù)器之間的信令和數(shù)據(jù)交互。
12.根據(jù)權(quán)利要求9至11任一所述的flash流媒體播放器,其特征在于,所述第三執(zhí)行單元還用于計(jì)算當(dāng)前上傳數(shù)據(jù)幀需要的播放時(shí)長(zhǎng)與已經(jīng)播放過(guò)的時(shí)長(zhǎng)的差值,根據(jù)累計(jì)的暫停次數(shù)修正該差值,計(jì)算修正后的差值是否大于預(yù)先設(shè)置的某一臨界值,如果是,中止當(dāng)前數(shù)據(jù)幀的上傳。
13.根據(jù)權(quán)利要求9至11所述的flash流媒體播放器,其特征在于,所述通信模塊還用于將能改變?cè)撚脩魴?quán)限的控制指令發(fā)送給嵌入網(wǎng)頁(yè)的聊天客戶端,以供其修改該用戶的顯示權(quán)限。
14.根據(jù)權(quán)利要求9至11所述的flash流媒體播放器,其特征在于,所述執(zhí)行模塊包括第六執(zhí)行單元,用于將用戶的播放請(qǐng)求發(fā)送給語(yǔ)音服務(wù)器以獲取播放許可; 第七執(zhí)行單元,用于獲得播放許可后,將所點(diǎn)的歌曲以flv格式上傳至語(yǔ)音服務(wù)器,以供所述語(yǔ)音服務(wù)器將所點(diǎn)的歌曲作為一路音頻輸入源參與聊天室的混音,同時(shí)供所述語(yǔ)音服務(wù)器將所點(diǎn)的歌曲與聊天室中其它用戶的音頻數(shù)據(jù)混音后回傳給上傳用戶的聊天客戶端或所述flash流媒體播放器,進(jìn)而使該聊天客戶端或所述flash流媒體播放器與聊天室其它用戶的聊天客戶端同步播放所點(diǎn)歌曲。
15.根據(jù)權(quán)利要求9所述的flash流媒體播放器,其特征在于,包括相互建立通信連接的下述功能模塊PlayerModule模塊為該flash應(yīng)用最高層,用于處理用戶界面的顯示和特效,接收用戶操作,同時(shí)接收語(yǔ)音服務(wù)器所返回的RTMP命令;Mp3Socket模塊用于處理與語(yǔ)音服務(wù)器之間的音頻數(shù)據(jù)發(fā)送以及出現(xiàn)異常情況的網(wǎng)絡(luò)重連處理;Mp3List模塊其為歌曲管理器集合,用來(lái)處理用戶添加、刪除和改變播放模式等動(dòng)作后對(duì)歌曲各種狀態(tài)、排序管理和維護(hù);Music模塊用于保存加載后的每一首歌曲,處理歌曲信息的解析,Mp3數(shù)據(jù)幀信息,播放狀態(tài)和進(jìn)度等音樂(lè)信息;Mp3Upl0ader模塊用于負(fù)責(zé)管理歌曲上傳過(guò)程,激活上傳或停止上傳,實(shí)時(shí)監(jiān)控歌曲上傳和本地播放的同步情況,監(jiān)控和管理已發(fā)送的數(shù)據(jù)量;Mp3Flv模塊用于歌曲解析的底層處理,主要將Mp3轉(zhuǎn)換為flv格式。當(dāng)歌曲解析為 flv成功,并且語(yǔ)音服務(wù)器返回指令允許上傳后,Mp3flv就通知Mp3S0Cket開(kāi)始發(fā)送數(shù)據(jù); Mp3Swf模塊用于歌曲解析的底層處理,主要將Mp3轉(zhuǎn)換為Swf格式并播放音樂(lè)。
16.一種語(yǔ)音服務(wù)器,其特征在于,包括通信模塊,用于建立與flash流媒體播放器之間的通信連接; 語(yǔ)音處理模塊,用于在所述通信模塊建立與flash流媒體播放器之間的通信連接后,接收所述flash流媒體播放器的用戶請(qǐng)求,根據(jù)所述用戶請(qǐng)求下發(fā)控制指令以供所述 flash流媒體播放器處理用戶點(diǎn)播的第三方歌曲。
17.根據(jù)權(quán)利要求16所述的語(yǔ)音服務(wù)器,其特征在于,所述語(yǔ)音處理模塊包括緩存、混音單元、第一或第二同步播放單元以及以下第二至第四處理單元中的任意一種或任意組合第二處理單元,用于在接收到所述flash流媒體播放器的切歌或刪歌請(qǐng)求后,清空被切或被刪歌曲的緩沖數(shù)據(jù)幀,當(dāng)接收到關(guān)閉flash流媒體播放器請(qǐng)求后,清空該用戶的所上傳歌曲的所有緩沖數(shù)據(jù),以及在獲取到用戶關(guān)閉聊天室網(wǎng)頁(yè)之后,清空該用戶的所有緩沖數(shù)據(jù);第三處理單元,用于在接收上傳歌曲的過(guò)程中,定時(shí)檢測(cè)已緩存的歌曲數(shù)據(jù)幀的播放時(shí)長(zhǎng),判斷該時(shí)長(zhǎng)是否小于其預(yù)先設(shè)置的可用緩存的存儲(chǔ)時(shí)長(zhǎng),如果是,指令flash流媒體播放器繼續(xù)上傳,如果否,則指令flash流媒體播放器中止上傳;以及當(dāng)已緩存數(shù)據(jù)幀的播放時(shí)長(zhǎng)與該可用緩存的存儲(chǔ)時(shí)長(zhǎng)之間的差值小于某一閾值時(shí),指令所述flash流媒體播放器加速上傳;第四處理單元,用于在接收到所點(diǎn)歌曲的每一幀數(shù)據(jù)之后,計(jì)算該幀數(shù)據(jù)的等待時(shí)長(zhǎng), 判斷該時(shí)長(zhǎng)是否不大于其預(yù)先設(shè)置的可用緩存的存儲(chǔ)時(shí)長(zhǎng),如果判斷結(jié)果為否,則丟棄該數(shù)據(jù)幀;混音單元,用于將緩存中flash流媒體播放器所上傳的歌曲作為一路音頻輸入源參與聊天室的混音;第一同步播放單元,用于向該聊天室的其它用戶分發(fā)攜帶歌曲信息的混音數(shù)據(jù)的同時(shí),向所述flash流媒體播放器發(fā)送同步播放指令;第二同步播放單元,用于判斷緩存的歌曲數(shù)據(jù)是否大于或等于預(yù)先設(shè)置的混音閾值, 當(dāng)判斷結(jié)果為是時(shí),向flash流媒體播放器發(fā)送攜帶指示有播放時(shí)間的同步播放指令。
18. 一種網(wǎng)頁(yè)聊天室系統(tǒng),包括瀏覽器,其特征在于,還包括Web服務(wù)器集群和flash流媒體播放器,所述Web服務(wù)器集群至少由網(wǎng)頁(yè)內(nèi)容服務(wù)器和語(yǔ)音服務(wù)器組成;所述網(wǎng)頁(yè)內(nèi)容服務(wù)器上存放有對(duì)應(yīng)一聊天室的置標(biāo)語(yǔ)言文件,該置標(biāo)語(yǔ)言文件嵌入有flash流媒體播放器及其可執(zhí)行代碼;其中所述瀏覽器,用于在用戶進(jìn)入所述聊天室后,調(diào)用所述flash流媒體播放器處理用戶的放歌操作;所述flash流媒體播放器,用于建立與所述語(yǔ)音服務(wù)器之間的通信連接,將由所述可執(zhí)行代碼捕獲的用戶請(qǐng)求發(fā)送給所述語(yǔ)音服務(wù)器;以及所述語(yǔ)音服務(wù)器,用于建立與flash流媒體播放器之間的通信連接,接收所述flash流媒體播放器的用戶請(qǐng)求,根據(jù)所述用戶請(qǐng)求下發(fā)控制指令以供所述flash流媒體播放器處理用戶點(diǎn)播的第三方歌曲。
全文摘要
本發(fā)明公開(kāi)一種網(wǎng)頁(yè)聊天室的放歌方法、裝置及系統(tǒng),以豐富聊天室的功能并解決現(xiàn)有的網(wǎng)頁(yè)聊天室交互性差的問(wèn)題。該方法包括開(kāi)發(fā)人員搭建Web服務(wù)器集群,將flash流媒體播放器及其可執(zhí)行代碼嵌入對(duì)應(yīng)一聊天室的置標(biāo)語(yǔ)言文件中并存放于網(wǎng)頁(yè)內(nèi)容服務(wù)器上;在用戶以瀏覽器進(jìn)入聊天室后,瀏覽器調(diào)用flash流媒體播放器處理用戶的放歌操作;其中放歌操作的處理至少包括flash流媒體播放器建立與語(yǔ)音服務(wù)器之間的通信連接,flash流媒體播放器將由可執(zhí)行代碼捕獲的用戶請(qǐng)求發(fā)送給語(yǔ)音服務(wù)器,以及根據(jù)語(yǔ)音服務(wù)器下發(fā)的控制指令處理用戶點(diǎn)播的第三方歌曲。
文檔編號(hào)H04L12/58GK102497423SQ201110411309
公開(kāi)日2012年6月13日 申請(qǐng)日期2011年12月12日 優(yōu)先權(quán)日2011年11月10日
發(fā)明者周平, 晏利平, 李曉鵬, 楊曉東, 潘年華, 王偉, 王海, 羅光喜, 胡海, 黃國(guó)宏 申請(qǐng)人:貴陽(yáng)朗瑪信息技術(shù)股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
桦甸市| 青冈县| 固原市| 色达县| 内丘县| 彩票| 宣恩县| 眉山市| 孝义市| 和林格尔县| 开封县| 东辽县| 黑龙江省| 红河县| 绥中县| 疏勒县| 曲麻莱县| 宁蒗| 射洪县| 剑阁县| 苏尼特右旗| 河东区| 宜春市| 双流县| 麻城市| 娄烦县| 萨嘎县| 涟水县| 禹州市| 湄潭县| 赫章县| 景宁| 安岳县| 苍梧县| 兰溪市| 肇东市| 玛纳斯县| 建德市| 吉林省| 班戈县| 乾安县|