專利名稱:傳輸用于實(shí)現(xiàn)網(wǎng)絡(luò)卡拉ok的數(shù)據(jù)的方法、系統(tǒng)和客戶端的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)應(yīng)用技術(shù)領(lǐng)域,尤其涉及一種傳輸用于實(shí)現(xiàn)網(wǎng)絡(luò)卡拉 OK的數(shù)據(jù)的方法、系統(tǒng)和裝置。
背景技術(shù):
卡拉OK是一種廣為流行的大眾娛樂方式。人們通常選擇固定的卡拉 OK歌廳,集中在包廂或大廳內(nèi),通過VCD、 DVD或局域網(wǎng)等形式伴奏唱歌。
如今,隨著互聯(lián)網(wǎng)的快速發(fā)展,網(wǎng)絡(luò)卡拉OK應(yīng)運(yùn)而生,它通過互聯(lián)網(wǎng) 通信技術(shù),使得分散在各個(gè)地方的網(wǎng)友可以協(xié)同唱歌娛樂。具體來說,網(wǎng)絡(luò) 卡拉OK系統(tǒng)通過點(diǎn)對(duì)點(diǎn)(P2P)網(wǎng)絡(luò)通信技術(shù)來實(shí)現(xiàn)卡拉OK視頻和音頻 數(shù)據(jù)的傳送。
下面,首先對(duì)P2P網(wǎng)絡(luò)通信技術(shù)進(jìn)行介紹。
P2P網(wǎng)絡(luò)通信技術(shù)是客戶/服務(wù)器(Client/Server, C/S )模式網(wǎng)絡(luò)通信技 術(shù)的重要補(bǔ)充,目前在互聯(lián)網(wǎng)上的應(yīng)用日益廣泛。與C/S網(wǎng)絡(luò)不同,P2P網(wǎng) 絡(luò)是一種分布式網(wǎng)絡(luò)。P2P網(wǎng)絡(luò)中的用戶共享彼此的計(jì)算機(jī)所擁有的部分資 源,例如共享彼此計(jì)算機(jī)的處理能力、存儲(chǔ)能力、網(wǎng)絡(luò)連接能力、打印機(jī)和 文件等。這些共享資源能夠通過P2P網(wǎng)絡(luò)直接被P2P網(wǎng)絡(luò)中的其他用戶訪 問而無需經(jīng)過中間實(shí)體,這也是P2P網(wǎng)絡(luò)名稱的由來。P2P網(wǎng)絡(luò)中的每個(gè)用 戶既可以是網(wǎng)絡(luò)資源的提供者(Server),還可以是網(wǎng)絡(luò)資源的獲取者 (Client),因此,P2P網(wǎng)絡(luò)的各個(gè)用戶之間是對(duì)等的關(guān)系。P2P網(wǎng)絡(luò)通信技 術(shù)充分利用了網(wǎng)絡(luò)邊緣的大量計(jì)算機(jī)資源,即充分利用了分散在各個(gè)網(wǎng)絡(luò)用 戶中的存儲(chǔ)空間、CPU時(shí)間、信息內(nèi)容等多種網(wǎng)絡(luò)資源,從而有效降低了集中式服務(wù)器的負(fù)載,提高了網(wǎng)絡(luò)服務(wù)的可用性。
P2P網(wǎng)絡(luò)通信技術(shù)的一個(gè)重要應(yīng)用是傳輸視頻流媒體文件,這樣的P2P 網(wǎng)絡(luò)系統(tǒng)可以簡(jiǎn)稱為P2P視頻系統(tǒng)。P2P視頻系統(tǒng)通常包括索引服務(wù)器、種 子服務(wù)器和網(wǎng)絡(luò)用戶客戶端,其中的索引服務(wù)器用于維護(hù)種子索引,即用于 維護(hù)網(wǎng)絡(luò)中的資源與在線網(wǎng)絡(luò)用戶的映射關(guān)系,種子服務(wù)器用于向網(wǎng)絡(luò)用戶 提供視頻內(nèi)容,在線網(wǎng)絡(luò)用戶可以從種子服務(wù)器中獲取視頻內(nèi)容,當(dāng)其獲取
在線網(wǎng)絡(luò)用戶正是P2P數(shù)據(jù)傳輸?shù)膮⑴c者和受益者。
按照視頻流媒體傳輸模式的不同,P2P視頻系統(tǒng)可以分為P2P直播系統(tǒng) 和P2P點(diǎn)播系統(tǒng)兩大類,下面分別予以介紹。
P 2 P直播系統(tǒng)采用的是高可擴(kuò)展性和高可靠性的網(wǎng)狀多播協(xié)議。P 2 P直 播系統(tǒng)包括用于產(chǎn)生視頻流媒體的節(jié)目源服務(wù)器、種子服務(wù)器、索引服務(wù)器 和網(wǎng)絡(luò)用戶客戶端。節(jié)目源服務(wù)器用于向種子服務(wù)器輸出視頻流媒體文件。 網(wǎng)絡(luò)用戶在進(jìn)行直播操作時(shí),首先向索引服務(wù)器請(qǐng)求種子信息,根據(jù)索引服 務(wù)器返回的種子信息,向相關(guān)種子請(qǐng)求視頻流媒體文件。其中,網(wǎng)絡(luò)用戶向 索引服務(wù)器發(fā)送的請(qǐng)求信息中攜帶有請(qǐng)求觀看的直播節(jié)目的頻道信息,索引 服務(wù)器返回的種子信息中包括種子服務(wù)器的信息和當(dāng)前正在觀看該頻道節(jié) 目的在線網(wǎng)絡(luò)用戶信息,當(dāng)網(wǎng)絡(luò)用戶請(qǐng)求直播內(nèi)容成功后,該網(wǎng)絡(luò)用戶也可 以成為種子,向其他網(wǎng)絡(luò)用戶提供該視頻流媒體文件。
P2P直播系統(tǒng)向用戶提供的是一種類似于電視的等待觀看服務(wù)模式。與 P2P直播系統(tǒng)不同,P2P點(diǎn)播系統(tǒng)提供的是一種隨意拖動(dòng)觀看的點(diǎn)播體驗(yàn)。
P2P點(diǎn)播系統(tǒng)包括內(nèi)容服務(wù)器、種子服務(wù)器、索引服務(wù)器和網(wǎng)絡(luò)用戶。 P2P點(diǎn)播系統(tǒng)的交互模式如下網(wǎng)絡(luò)用戶在獲取點(diǎn)播服務(wù)時(shí),首先向索引服 務(wù)器請(qǐng)求種子信息,根據(jù)索引服務(wù)器返回的種子信息,向相關(guān)種子請(qǐng)求視頻 流媒體文件。其中,索引服務(wù)器返回的種子信息中包括種子服務(wù)器的信息和 存儲(chǔ)有該視頻流媒體文件的在線網(wǎng)絡(luò)用戶信息,當(dāng)網(wǎng)絡(luò)用戶請(qǐng)求直播內(nèi)容成 功后,該網(wǎng)絡(luò)用戶也可以成為種子,向其他網(wǎng)絡(luò)用戶提供該視頻流媒體文件??梢奝2P直播系統(tǒng)和P2P點(diǎn)播系統(tǒng)的不同在于,P2P點(diǎn)播系統(tǒng)中,只有 種子服務(wù)器和觀看同一頻道內(nèi)容的網(wǎng)絡(luò)用戶之間才能相互提供服務(wù),而在
P2P點(diǎn)播系統(tǒng)中,只要網(wǎng)絡(luò)用戶的計(jì)算機(jī)中存儲(chǔ)有相應(yīng)的視頻流媒體文件, 無論該網(wǎng)絡(luò)用戶是否正在觀看該視頻流媒體文件,其都可以向其他P2P網(wǎng)絡(luò) 用戶提供服務(wù)。相應(yīng)地,在P2P直播系統(tǒng)中,網(wǎng)絡(luò)用戶向索引服務(wù)器發(fā)送的 請(qǐng)求消息中需要攜帶頻道標(biāo)識(shí)等頻道信息,而在P2P點(diǎn)播系統(tǒng)中,網(wǎng)絡(luò)用戶 向索引服務(wù)器發(fā)送的請(qǐng)求消息中需要攜帶請(qǐng)求的視頻流媒體文件標(biāo)識(shí)。 目前的網(wǎng)絡(luò)卡拉OK系統(tǒng)釆用的是P2P直播系統(tǒng)來實(shí)現(xiàn)的。 圖l是現(xiàn)有技術(shù)中采用P2P直播系統(tǒng)實(shí)現(xiàn)的網(wǎng)絡(luò)卡拉OK點(diǎn)唱系統(tǒng)組成 示意圖。
如圖l所示,該系統(tǒng)包括作為歌唱者的網(wǎng)絡(luò)用戶所在的客戶端(下文 簡(jiǎn)稱歌唱者客戶端)101、作為收聽者的網(wǎng)絡(luò)用戶所在的客戶端(下文簡(jiǎn)稱 聽眾客戶端)102、應(yīng)用服務(wù)器103和索引服務(wù)器104。
應(yīng)用服務(wù)器103,用于主動(dòng)或者才艮據(jù)客戶端請(qǐng)求創(chuàng)建網(wǎng)絡(luò)卡拉OK包房; 維護(hù)每個(gè)網(wǎng)絡(luò)卡拉OK包房內(nèi)的排麥操作;根據(jù)客戶端請(qǐng)求或者該應(yīng)用服務(wù)器 103自身的設(shè)置添加和/或刪除網(wǎng)絡(luò)卡拉OK包房內(nèi)的網(wǎng)絡(luò)用戶;接收歌唱者客 戶端101發(fā)送的文件信息更新數(shù)據(jù)包,根據(jù)該文件信息更新數(shù)據(jù)包展示當(dāng)前包 房內(nèi)的網(wǎng)絡(luò)用戶列表和網(wǎng)絡(luò)卡拉OK文件;接收聽眾客戶端302請(qǐng)求包房信息 的消息,向該聽眾客戶端302返回該包房的文件信息更新數(shù)據(jù)包。
其中,網(wǎng)絡(luò)卡拉OK文件由歌唱者客戶端101上報(bào)給應(yīng)用服務(wù)器103,所 述文件信息更新數(shù)據(jù)包中攜帶有歌唱者網(wǎng)絡(luò)用戶的標(biāo)識(shí)和網(wǎng)絡(luò)卡拉OK文件的 凄t據(jù)包標(biāo)識(shí)。
歌唱者客戶端101,用于實(shí)時(shí)采集網(wǎng)絡(luò)用戶的歌聲和當(dāng)前正在播放的 MTV視頻文件,打包形成網(wǎng)絡(luò)卡拉OK文件數(shù)據(jù)包,向應(yīng)用服務(wù)器103上 傳該網(wǎng)絡(luò)卡拉OK文件數(shù)據(jù)包以及文件信息更新數(shù)據(jù)包,向索引服務(wù)器104 上報(bào)網(wǎng)絡(luò)卡拉OK文件信息。
聽眾客戶端102,用于向索引服務(wù)器104發(fā)送獲取網(wǎng)絡(luò)卡拉OK文件的請(qǐng)求消息,接收索引服務(wù)器104返回的網(wǎng)絡(luò)卡拉OK文件種子列表,即peer 信息列表,該peer信息列表中列出了能夠作為種子提供網(wǎng)絡(luò)卡拉OK丈件的 網(wǎng)絡(luò)用戶的標(biāo)識(shí)信息,這些網(wǎng)絡(luò)用戶與當(dāng)前請(qǐng)求網(wǎng)絡(luò)卡拉OK文件的網(wǎng)絡(luò)用 戶在同一個(gè)網(wǎng)絡(luò)卡4立OK包房內(nèi)。
聽眾客戶端102,從peer信息列表中選擇種子,向選擇的種子發(fā)送獲取 網(wǎng)絡(luò)卡拉OK文件的請(qǐng)求消息,接收該種子返回的網(wǎng)絡(luò)卡拉OK文件數(shù)據(jù)包 并播放該數(shù)據(jù)包;向索引服務(wù)器104上報(bào)聽眾客戶端102內(nèi)存儲(chǔ)的網(wǎng)絡(luò)卡拉 OK文件信息。
索引服務(wù)器104,接收歌唱者客戶端101和聽眾客戶端102上報(bào)的網(wǎng)絡(luò) 卡拉OK文件信息,維護(hù)網(wǎng)絡(luò)卡拉OK文件種子列表,根據(jù)聽眾客戶端102 的請(qǐng)求返回網(wǎng)絡(luò)卡拉OK文件種子列表。
由上述技術(shù)方案可見,現(xiàn)有通過P2P直播系統(tǒng)實(shí)現(xiàn)的網(wǎng)絡(luò)卡拉OK點(diǎn)唱 系統(tǒng)中,歌唱者客戶端101采集歌唱者的歌聲和當(dāng)前播放的MTV視頻文件, 將采集到的音頻數(shù)據(jù)和視頻數(shù)據(jù)一 同打包成網(wǎng)絡(luò)卡拉OK文件數(shù)據(jù)包發(fā)給應(yīng) 用服務(wù)器103、以及本包房內(nèi)的聽眾客戶端102。由于網(wǎng)絡(luò)卡拉OK文件中 含有大量的視頻數(shù)據(jù),傳輸視頻數(shù)據(jù)所占用的帶寬較大,因此,現(xiàn)有的網(wǎng)絡(luò) 卡拉OK系統(tǒng)中歌唱者客戶端101傳輸網(wǎng)絡(luò)卡拉OK文件耗費(fèi)的帶寬資源較 大,而且,由于聽眾客戶端只能從與其在同一網(wǎng)絡(luò)卡拉OK包房的歌唱者客 戶端和其他聽眾客戶端處獲取網(wǎng)絡(luò)卡拉OK文件,因此,能夠提供網(wǎng)絡(luò)卡拉 OK文件的網(wǎng)絡(luò)資源較少。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實(shí)施例的目的在于提供一種傳輸用于實(shí)現(xiàn)網(wǎng)絡(luò)卡拉 OK的數(shù)據(jù)的方法、系統(tǒng)和裝置,以節(jié)省傳輸用于實(shí)現(xiàn)網(wǎng)絡(luò)卡拉OK的數(shù)據(jù) 所需的傳輸帶寬,并提高對(duì)網(wǎng)絡(luò)資源的利用率。
為達(dá)到上述目的,本發(fā)明實(shí)施例的技術(shù)方案具體是這樣實(shí)現(xiàn)的 一種傳輸用于實(shí)現(xiàn)網(wǎng)絡(luò)卡拉OK的數(shù)據(jù)的方法,所述用于實(shí)現(xiàn)網(wǎng)絡(luò)卡拉
9OK的數(shù)據(jù)包括歌唱流和伴唱文件,該方法包括
歌唱者客戶端采集歌聲形成歌唱流,向網(wǎng)絡(luò)側(cè)上報(bào)歌唱流信息和伴唱文件
4呂息5
網(wǎng)絡(luò)側(cè)根據(jù)接收的歌唱流信息以點(diǎn)對(duì)點(diǎn)P2P直播方式向聽眾客戶端下發(fā)歌 唱流、根據(jù)接收的伴唱文件信息以P2P點(diǎn)播方式向聽眾客戶端下發(fā)伴唱文件。
一種傳輸用于實(shí)現(xiàn)網(wǎng)絡(luò)卡拉OK的數(shù)據(jù)的系統(tǒng),該系統(tǒng)包括歌唱者客戶端、 網(wǎng)絡(luò)側(cè)和聽眾客戶端;
所述歌唱者客戶端,采集歌聲形成歌唱流,向網(wǎng)絡(luò)側(cè)上報(bào)歌唱流信息和伴 唱文件信息;
所述網(wǎng)絡(luò)側(cè),根據(jù)接收的歌唱流信息以點(diǎn)對(duì)點(diǎn)P2P直播方式向聽眾客戶端 下發(fā)歌唱流、根據(jù)接收的伴唱文件信息以P2P點(diǎn)播方式向聽眾客戶端下發(fā)伴唱 文件;
所述聽眾客戶端,接收歌唱流和伴唱文件。 一種客戶端,包括歌唱模塊和收聽模塊;
所述歌唱模塊,采集歌聲形成歌唱流,向網(wǎng)絡(luò)側(cè)上報(bào)歌唱流信息和伴唱文 件信息;
所述收聽模塊,以P2P直播方式從網(wǎng)絡(luò)側(cè)獲取歌唱流,以P2P點(diǎn)播方式從 網(wǎng)絡(luò)側(cè)獲取伴唱文件。
由上述技術(shù)方案可見,本發(fā)明在傳輸用于實(shí)現(xiàn)網(wǎng)絡(luò)卡拉OK的數(shù)據(jù)時(shí),將 用于實(shí)現(xiàn)網(wǎng)絡(luò)卡拉OK的數(shù)據(jù)劃分為歌唱流和伴唱文件兩部分分別傳輸,其中, 網(wǎng)絡(luò)側(cè)以P2P直播方式下發(fā)歌唱流,以P2P點(diǎn)播方式下發(fā)伴唱文件,這樣,由 現(xiàn)有的P2P直播方式和P2P點(diǎn)播方式可知,聽眾客戶端獲取歌唱流和伴唱文件 時(shí),歌唱者客戶端以及其他存儲(chǔ)有該歌唱流的聽眾客戶端只需要通過P2P直播 方式向所述聽眾客戶端傳輸歌唱流,而伴唱文件則可以通過P2P點(diǎn)播方式從當(dāng) 前存儲(chǔ)有所述伴唱文件的所有內(nèi)容服務(wù)器和在線客戶端中獲得。由于歌唱者客 戶端以及其他存儲(chǔ)有該歌唱流的聽眾客戶端只需要通過P2P直播方式向所述聽 眾客戶端傳輸歌唱流,該歌唱流是音頻文件,與現(xiàn)有技術(shù)中含有大量視頻數(shù)據(jù)
10的網(wǎng)絡(luò)卡拉OK文件相比,其所需的傳輸帶寬大大減小,因此,能夠節(jié)省傳輸 帶寬,另一方面,由于伴唱文件不僅可以從當(dāng)前包房的歌唱者客戶端和聽眾客 戶端獲取,還可以從其他存儲(chǔ)有該伴唱文件的內(nèi)容服務(wù)器和在線客戶端中獲取, 能夠提供該伴唱文件的網(wǎng)絡(luò)資源很豐富,因此,提高了網(wǎng)絡(luò)資源的利用率。
圖l是現(xiàn)有技術(shù)中采用P2P直播系統(tǒng)實(shí)現(xiàn)的網(wǎng)絡(luò)卡拉OK點(diǎn)唱系統(tǒng)組成
示意圖。
圖2是本發(fā)明傳輸用于實(shí)現(xiàn)網(wǎng)絡(luò)卡拉OK的數(shù)據(jù)的方法流程圖。 圖3是本發(fā)明的網(wǎng)絡(luò)卡拉OK系統(tǒng)組成示意圖。 圖4是網(wǎng)絡(luò)卡拉OK系統(tǒng)傳輸歌唱流和伴唱文件的方法流程圖。 圖5是本發(fā)明歌唱者客戶端301側(cè)生成并分發(fā)攜帶有時(shí)間戳的歌唱流的流 程示意圖。
圖6是本發(fā)明聽眾客戶端302側(cè)根據(jù)歌唱流中記錄時(shí)間戳控制歌唱流和伴 唱文件播放進(jìn)度的流程示意圖。
圖7是本發(fā)明提供的客戶端實(shí)施例結(jié)構(gòu)圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉 實(shí)施例,對(duì)本發(fā)明進(jìn)一步詳細(xì)說明。
本發(fā)明在傳輸用于實(shí)現(xiàn)網(wǎng)絡(luò)卡拉OK的數(shù)據(jù)時(shí),首先將用于實(shí)現(xiàn)網(wǎng)絡(luò)卡拉 OK的數(shù)據(jù)分為歌唱流和伴唱文件兩部分,并對(duì)這兩部分文件分別以不同的方 式獨(dú)立傳輸,即,以P2P直播方式傳輸歌唱流,以P2P點(diǎn)播方式傳輸伴唱文件, 由于單獨(dú)傳輸歌唱流占用的帶寬和單獨(dú)傳輸伴唱文件占用的帶寬均小于傳輸由 歌聲和當(dāng)前伴唱文件共同形成的網(wǎng)絡(luò)卡拉OK文件的帶寬,因此能夠節(jié)省網(wǎng)絡(luò) 帶寬,由于伴唱文件是以P2P點(diǎn)播方式傳輸?shù)?,因此,能夠提供該伴唱文件?網(wǎng)絡(luò)資源不僅包括當(dāng)前網(wǎng)絡(luò)卡拉OK包房內(nèi)的歌唱者客戶端和聽眾客戶端,還包括其他存儲(chǔ)有該伴唱文件的內(nèi)容服務(wù)器和在線客戶端,從而提高了網(wǎng)絡(luò)資源 利用率。
圖2是本發(fā)明傳輸用于實(shí)現(xiàn)網(wǎng)絡(luò)卡拉OK的數(shù)據(jù)的方法流程圖,如圖2所 示,該方法包4舌
步驟201,歌唱者客戶端采集歌聲形成歌唱流并緩存。
本步驟中,歌唱者客戶端通過麥克風(fēng)等音頻設(shè)備采集歌唱者的歌聲,形成 歌唱流。該歌聲文件由多個(gè)歌聲文件數(shù)據(jù)包組成,每個(gè)數(shù)據(jù)包都有相應(yīng)的數(shù)據(jù) 包序列號(hào),表示采集歌聲形成各個(gè)數(shù)據(jù)包的先后順序。
該歌唱流是音頻文件,占用的存儲(chǔ)空間較小,在傳輸時(shí)占用的帶寬也較小。
本步驟中緩存歌唱流的時(shí)間可以根據(jù)網(wǎng)絡(luò)卡拉OK系統(tǒng)的性能要求而定, 如果需要較高的實(shí)時(shí)性和較小的存儲(chǔ)空間,則該緩存時(shí)間可以設(shè)置的較小,反 之可以設(shè)置的較長。
步驟202,歌唱者客戶端向網(wǎng)絡(luò)側(cè)上報(bào)歌唱流信息和伴唱文件信息。
本步驟中,歌唱者客戶端向網(wǎng)絡(luò)側(cè)上報(bào)的歌唱流信息包括歌唱者客戶端標(biāo) 識(shí)、當(dāng)前演唱的歌曲標(biāo)識(shí)和演唱進(jìn)度標(biāo)識(shí);伴唱文件信息包括伴唱文件標(biāo)識(shí)。
步驟203,網(wǎng)絡(luò)側(cè)根據(jù)接收的歌唱流信息以P2P直播方式向聽眾客戶端下 發(fā)歌唱流、根據(jù)接收的伴唱文件信息以P2P點(diǎn)播方式向聽眾客戶端下發(fā)伴唱文 件。
下面結(jié)合具體的網(wǎng)絡(luò)卡拉OK系統(tǒng)說明本發(fā)明傳輸用于實(shí)現(xiàn)網(wǎng)絡(luò)卡拉OK 的數(shù)據(jù)的方法。
圖3是本發(fā)明的網(wǎng)絡(luò)卡拉OK系統(tǒng)組成示意圖。
如圖3所示,該系統(tǒng)包括歌唱者客戶端301、聽眾客戶端302、應(yīng)用服務(wù)器 303、索引服務(wù)器304、內(nèi)容服務(wù)器305、中轉(zhuǎn)服務(wù)器306和其他存儲(chǔ)有伴唱文 件的在線客戶端307,并且該系統(tǒng)的上述組成部分以P2P方式實(shí)現(xiàn)網(wǎng)絡(luò)互聯(lián)。 對(duì)于任一需要獲取歌唱流和/或伴唱文件的上述組成部分而言,其網(wǎng)絡(luò)側(cè)包括該 網(wǎng)絡(luò)卡拉OK系統(tǒng)中所有的其他組成部分。例如,如果某一聽眾客戶端302需 要獲取伴唱文件,則其網(wǎng)絡(luò)側(cè)包括除該聽眾客戶端302以外的聽眾客戶端302、歌唱者客戶端301、應(yīng)用服務(wù)器303、索引服務(wù)器304、內(nèi)容服務(wù)器305、中轉(zhuǎn) 服務(wù)器306和其他存儲(chǔ)有伴唱文件的在線客戶端307,該網(wǎng)絡(luò)側(cè)用于以P2P點(diǎn) 播方式為其下發(fā)伴唱文件。
圖3中的歌唱者客戶端301和聽眾客戶端302是從客戶端當(dāng)前充當(dāng)?shù)慕巧?角度為其命名的,實(shí)際上,網(wǎng)絡(luò)卡拉OK包房內(nèi)的每個(gè)客戶端都既具備歌唱者 客戶端301的結(jié)構(gòu),又具備聽眾客戶端302的結(jié)構(gòu)。
下面,首先從傳輸網(wǎng)絡(luò)卡拉OK文件的流程出發(fā),對(duì)圖3所示的網(wǎng)絡(luò)卡拉 OK系統(tǒng)傳輸歌唱流和伴唱文件的方法進(jìn)行介紹。
其中,圖3所示網(wǎng)絡(luò)卡拉OK系統(tǒng)是由應(yīng)用服務(wù)器303主動(dòng)或者根據(jù)客戶 端請(qǐng)求創(chuàng)建的,應(yīng)用服務(wù)器303用于對(duì)網(wǎng)絡(luò)卡拉OK系統(tǒng)進(jìn)行邏輯控制,例如, 進(jìn)行排麥處理、處理網(wǎng)絡(luò)用戶加入或者退出網(wǎng)絡(luò)卡拉OK包房的請(qǐng)求等,所述 排麥?zhǔn)侵赣删W(wǎng)絡(luò)卡拉OK系統(tǒng)中的各個(gè)客戶端輪流擁有演唱權(quán)或者說網(wǎng)絡(luò)卡拉 OK包房控制權(quán)。
圖4是網(wǎng)絡(luò)卡拉OK系統(tǒng)傳輸歌唱流和伴唱文件的方法流程圖,如圖4所 示,該方法包4舌
步驟401,歌唱者客戶端301實(shí)時(shí)采集歌聲文件并緩存,并向應(yīng)用服務(wù)器 303發(fā)送歌唱流更新數(shù)據(jù)包,向索引服務(wù)器304上報(bào)歌唱流信息和伴唱文件信 息。
本步驟中,歌唱者客戶端301使用的伴唱文件可以是自己制作的伴唱文件 也可以是現(xiàn)有的MTV文件等音頻文件或視頻文件。
歌唱者客戶端301通過圖3中的消息0向索引服務(wù)器304上報(bào)歌唱流信息 和伴唱文件信息。
步驟402,聽眾客戶端302從應(yīng)用服務(wù)器303獲取歌唱流更新數(shù)據(jù)包。 本步驟中的歌唱流數(shù)據(jù)包中攜帶了歌唱者客戶端301標(biāo)識(shí)、歌唱曲目標(biāo)識(shí)、
歌唱流數(shù)據(jù)包序列號(hào)和伴唱文件標(biāo)識(shí)、伴唱文件數(shù)據(jù)包序列號(hào)。
步驟403,聽眾客戶端302根據(jù)從應(yīng)用服務(wù)器303獲取的歌唱流更新數(shù)據(jù)
包,向索引服務(wù)器304發(fā)送獲取歌唱流種子列表和伴唱文件種子列表的請(qǐng)求消息,即圖3中的請(qǐng)求消息1。
本步驟中,當(dāng)歌唱流種子列表和伴唱文件種子列表維護(hù)在同 一個(gè)索引服務(wù)
器304上時(shí),獲取歌唱流種子列表和伴唱文件種子列表的請(qǐng)求消息1是一條請(qǐng) 求消息;當(dāng)歌唱流種子列表和伴唱文件種子列表維護(hù)在不同的索引服務(wù)器304 上時(shí),獲取歌唱流種子列表和伴唱文件種子列表的請(qǐng)求消息1是兩條請(qǐng)求消息, 其中,獲取歌唱流種子列表的請(qǐng)求消息發(fā)往維護(hù)歌唱流種子列表的第一索引服 務(wù)器304,獲取伴唱文件種子列表的請(qǐng)求消息發(fā)往維護(hù)伴唱文件種子列表的第 二索引服務(wù)器304。
步驟404,索引服務(wù)器304通過圖3中的消息2向聽眾客戶端302返回歌 唱流種子列表和伴唱文件種子列表。
索引服務(wù)器304根據(jù)歌唱者客戶端301和聽眾客戶端302上報(bào)的歌唱流信 息維護(hù)有P2P歌唱流直播列表,根據(jù)歌唱者客戶端301、聽眾客戶端302、內(nèi) 容服務(wù)器305以及其他在線客戶端307上報(bào)的伴唱文件信息維護(hù)有P2P伴唱文 件點(diǎn)播列表。其中的歌唱流種子列表可以是P2P歌唱流直播列表的一部分或者 全部,伴唱文件種子列表也可以是P2P伴唱文件直播列表的一部分或者全部。
步驟405,聽眾客戶端302從歌唱流種子列表中選擇種子獲取歌唱流,從 伴唱文件種子列表中選擇種子獲取伴唱文件。
歌唱流種子列表中的種子是當(dāng)前網(wǎng)絡(luò)卡拉OK包房內(nèi)的歌唱者客戶端301 和/或聽眾客戶端302,歌唱流種子列表中的種子除了包括當(dāng)前網(wǎng)絡(luò)卡拉OK包 房內(nèi)的歌唱者客戶端301和/或聽眾客戶端302外,還可以包括內(nèi)容服務(wù)器305 和/或其他在線客戶端307。
本步驟中,聽眾客戶端302從歌唱流種子列表中選擇種子,通過圖3中的 消息3a向選擇的種子發(fā)送獲取歌唱流信息的請(qǐng)求,相應(yīng)種子通過圖3中的消息 4a向聽眾客戶端302返回歌唱流;聽眾客戶端302從伴唱文件種子列表中選擇 種子,通過圖3中的消息3b向選擇的種子發(fā)送獲取伴唱文件信息的請(qǐng)求,相應(yīng) 種子通過圖3中的消息4b向聽眾客戶端302返回伴唱文件。
其中,消息3a中攜帶有歌唱者客戶端301標(biāo)識(shí)、歌唱曲目標(biāo)識(shí)和歌唱流數(shù)據(jù)包片段標(biāo)識(shí),消息3b中攜帶有伴唱文件標(biāo)識(shí)和伴唱文件數(shù)據(jù)包片段標(biāo)識(shí)。
下面,從網(wǎng)絡(luò)卡拉OK系統(tǒng)各個(gè)組成部分的具體組成結(jié)構(gòu)及功能角度出發(fā), 結(jié)合圖3所示系統(tǒng)及其傳輸歌唱流和伴唱文件的方法予以說明
應(yīng)用服務(wù)器303,用于主動(dòng)或者根據(jù)客戶端請(qǐng)求創(chuàng)建網(wǎng)絡(luò)卡拉OK包房, 維護(hù)每個(gè)網(wǎng)絡(luò)卡拉OK包房內(nèi)的排麥操作,根據(jù)客戶端請(qǐng)求或者該應(yīng)用服務(wù)器 303自身的設(shè)置進(jìn)行添加和/或刪除網(wǎng)絡(luò)卡拉OK包房內(nèi)的網(wǎng)絡(luò)用戶的操作,接 收歌唱者客戶端301發(fā)送的網(wǎng)絡(luò)卡拉OK文件信息更新數(shù)據(jù)包,接收聽眾客戶 端302請(qǐng)求包房信息的消息,向該聽眾客戶端302返回該包房的網(wǎng)絡(luò)卡拉OK 文件信息更新^:據(jù)包。
其中,所述的網(wǎng)絡(luò)卡拉OK文件信息更新數(shù)據(jù)包中攜帶有歌唱者客戶端301 的標(biāo)識(shí)、當(dāng)前伴唱文件的標(biāo)識(shí)、歌唱流數(shù)據(jù)包序列號(hào)信息和伴唱文件數(shù)據(jù)包序 列號(hào)信息。
發(fā)送所述網(wǎng)絡(luò)卡拉OK文件信息更新數(shù)據(jù)包的時(shí)機(jī)包括:歌唱者客戶端301 得到排麥指示、即獲得演唱權(quán)或者說網(wǎng)絡(luò)卡拉OK包房控制權(quán)時(shí),以及獲得網(wǎng) 絡(luò)卡拉OK包房控制權(quán)的歌唱者客戶端301進(jìn)行定時(shí)發(fā)送所述網(wǎng)絡(luò)卡拉OK文 件信息更新數(shù)據(jù)包的周期已到時(shí)。所述定時(shí)發(fā)送所述網(wǎng)絡(luò)卡拉OK文件信息更 新數(shù)據(jù)包的周期可以設(shè)置為ls左右,從而保證聽眾客戶端302根據(jù)從應(yīng)用服務(wù) 器301處獲得的網(wǎng)絡(luò)卡拉OK文件信息更新數(shù)據(jù)包觀看網(wǎng)絡(luò)卡拉OK的實(shí)時(shí)性。
聽眾客戶端302,用于向應(yīng)用服務(wù)器303發(fā)送請(qǐng)求包房信息的消息,接收 應(yīng)用服務(wù)器303返回的網(wǎng)絡(luò)卡拉OK文件信息更新數(shù)據(jù)包,根據(jù)該更新數(shù)據(jù)包 中攜帶的歌唱者網(wǎng)絡(luò)用戶標(biāo)識(shí)、當(dāng)前伴唱文件的標(biāo)識(shí)、歌唱流數(shù)據(jù)包序列號(hào)信 息和伴唱文件數(shù)據(jù)包序列號(hào)信息向索引服務(wù)器304發(fā)送荻取卡拉OK歌唱流的 請(qǐng)求消息,該請(qǐng)求消息可以是一條攜帶有歌唱者網(wǎng)絡(luò)用戶標(biāo)識(shí)、當(dāng)前伴唱文件 的標(biāo)識(shí)、歌唱流數(shù)據(jù)包序列號(hào)信息和伴唱文件數(shù)據(jù)包序列號(hào)信息的請(qǐng)求消息, 也可以是兩條請(qǐng)求消息,其中 一條是攜帶有歌唱者網(wǎng)絡(luò)用戶標(biāo)識(shí)和歌唱流數(shù)據(jù) 包序列號(hào)信息的歌唱流種子列表請(qǐng)求消息,另 一條是攜帶有當(dāng)前伴唱文件的標(biāo) 識(shí)和伴唱文件數(shù)據(jù)包序列號(hào)信息的伴唱文件種子列表請(qǐng)求消息。聽眾客戶端
15302接收索引服務(wù)器305下發(fā)的歌唱流種子列表和伴唱文件種子列表,從所述歌唱流種子列表中選取歌唱流種子獲取歌唱流,從所述伴唱文件種子列表中選取伴唱文件種子獲取伴唱文件。
歌唱者客戶端301,實(shí)時(shí)采集歌聲形成歌聲文件并緩存該歌聲文件,向應(yīng)用服務(wù)器303上報(bào)歌唱流更新數(shù)據(jù)包,向索引服務(wù)器304上報(bào)歌唱流信息。
索引服務(wù)器304,接收歌唱流信息,維護(hù)所述歌唱流信息對(duì)應(yīng)的歌唱流P2P直播列表,接收伴唱文件信息,維護(hù)與所述伴唱文件信息對(duì)應(yīng)的伴唱文件P2P點(diǎn)播列表;接收聽眾客戶端302獲取卡拉OK歌唱流信息的請(qǐng)求消息,根據(jù)所述歌唱流P2P直播列表向聽眾客戶端302返回歌唱流種子列表、根據(jù)所述伴唱文件P2P點(diǎn)播列表向聽眾客戶端302返回伴唱文件種子列表。
索引服務(wù)器304根據(jù)歌唱流信息維護(hù)歌唱流P2P直播列表的具體方法包括索引服務(wù)器304接收客戶端上報(bào)的歌唱流信息,將存儲(chǔ)有與該歌唱流信息的客戶端標(biāo)識(shí)寫入所述歌唱流P2P直播列表,其中,上報(bào)歌唱流信息的客戶端包括卡拉OK包房內(nèi)的歌唱者客戶端301和聽眾客戶端302。
索引服務(wù)器304根據(jù)伴唱文件信息維護(hù)伴唱文件P2P點(diǎn)播列表的具體方法包括索引服務(wù)器304接收網(wǎng)絡(luò)卡拉OK包房內(nèi)的歌唱者客戶端301的伴唱文件信息,獲取存儲(chǔ)有與該伴唱文件信息對(duì)應(yīng)的伴唱文件的內(nèi)容服務(wù)器305的地址和在線客戶端地址,其中,所述的在線客戶端包括本網(wǎng)絡(luò)卡拉OK包房內(nèi)的
歌唱者客戶端301和聽眾客戶端302以及本網(wǎng)絡(luò)卡拉OK包房以外的在線客戶
二山禍。
其中,可以在一個(gè)索引服務(wù)器304上維護(hù)歌唱流P2P直播列表和伴唱文件P2P點(diǎn)播列表,并接收聽眾客戶端302獲取歌唱流信息的請(qǐng)求消息,返回相應(yīng)的歌唱流種子列表和伴唱文件種子列表;也可以在兩個(gè)索引服務(wù)器304上分別維護(hù)歌唱流P2P直播列表和伴唱文件P2P點(diǎn)播列表,聽眾客戶端302向維護(hù)有歌唱流P2P直播列表的第一索引服務(wù)器發(fā)送獲取歌唱流種子列表的請(qǐng)求消息,向維護(hù)有歌唱流P2P點(diǎn)播列表的第二索引服務(wù)器發(fā)送獲取伴唱文件種子列表的請(qǐng)求消息,第一索引服務(wù)器向聽眾客戶端302返回歌唱流種子列表,第二索引服務(wù)器向聽眾客戶端302返回伴唱文件種子列表。
為了保證能夠盡量同步獲得歌唱流和伴唱文件,優(yōu)選地,聽眾客戶端302 同步向第 一 索引服務(wù)器發(fā)送獲取歌唱流種子列表的請(qǐng)求消息、向第二索引服務(wù) 器發(fā)送獲取伴唱文件種子列表的請(qǐng)求消息。
聽眾客戶端302,從索引服務(wù)器返回的歌唱流種子列表中選擇歌唱流種子 獲取歌唱流,從索引服務(wù)器返回的伴唱文件種子列表中選擇伴唱文件種子獲取 伴唱文件。
其中,歌唱流種子列表中的歌唱流種子是網(wǎng)絡(luò)卡拉OK包房內(nèi)的歌唱者客 戶端和/或聽眾客戶端,伴唱文件種子列表中的伴唱文件種子可以是存儲(chǔ)有相應(yīng) 伴唱文件的在線客戶端,也可以是存儲(chǔ)有該伴唱文件的內(nèi)容服務(wù)器305。其中, 內(nèi)容服務(wù)器305可以是單獨(dú)布置的服務(wù)器,也可以是現(xiàn)有的H丁TP服務(wù)器等。
在圖3所示系統(tǒng)中設(shè)置中轉(zhuǎn)服務(wù)器306是為了進(jìn)一步提高聽眾客戶端302 獲取歌唱流的速度,因此,中轉(zhuǎn)服務(wù)器306在圖3所示系統(tǒng)中并非必需。
歌唱者客戶端301將歌唱流上傳至中轉(zhuǎn)服務(wù)器306,中轉(zhuǎn)服務(wù)器306向索 引服務(wù)器304上報(bào)自身存儲(chǔ)的歌唱流信息,索引服務(wù)器304根據(jù)中轉(zhuǎn)服務(wù)器306 上報(bào)的歌唱流信息,將中轉(zhuǎn)服務(wù)器306寫入相應(yīng)的歌唱流P2P直播列表中,貝'J, 索引服務(wù)器304根據(jù)歌唱流P2P直播列表形成歌唱流種子列表并將該歌唱流種 子列表下發(fā)給聽眾客戶端302后,聽眾客戶端302即可選擇該中轉(zhuǎn)服務(wù)器306 作為種子從中下載歌唱流。
通過設(shè)置中轉(zhuǎn)服務(wù)器306,可以提高傳輸歌唱流的速度。其中,中轉(zhuǎn)服務(wù) 器306可以只設(shè)置為一個(gè),也可以設(shè)置為多個(gè),當(dāng)設(shè)置為多個(gè)時(shí),各個(gè)中轉(zhuǎn)服 務(wù)器306之間以內(nèi)網(wǎng)互聯(lián),這樣可以進(jìn)一步提高傳輸歌唱流的速度。
由于網(wǎng)絡(luò)卡拉OK中聽眾收聽的歌聲質(zhì)量對(duì)用戶體驗(yàn)的影響較大,為了進(jìn) 一步提高圖3所示系統(tǒng)傳輸歌唱流的質(zhì)量,本發(fā)明提出,在獲取歌唱流時(shí),不 從歌唱者客戶端301獲取伴唱文件,而從內(nèi)容服務(wù)器305或者歌唱者客戶端301 以外的其他客戶端獲取所述伴唱文件,從而保證歌唱者客戶端301所擁有的網(wǎng) 絡(luò)帶寬可以盡量多地用來傳輸歌唱流。
17具體地,可以從網(wǎng)絡(luò)側(cè)實(shí)現(xiàn)不從歌唱者客戶端301獲取伴唱文件,也可以
從客戶端側(cè)實(shí)現(xiàn)不從歌唱者客戶端301獲取伴唱文件。
當(dāng)從網(wǎng)絡(luò)側(cè)實(shí)現(xiàn)不從歌唱者客戶端301獲取伴唱文件時(shí),索引服務(wù)器305 將除歌唱者客戶端以外的、存儲(chǔ)有所述伴唱文件的在線客戶端作為伴唱文件種 子寫入所述伴唱文件種子列表。
當(dāng)從客戶端側(cè)實(shí)現(xiàn)不從歌唱者客戶端301獲取伴唱文件時(shí),聽眾客戶端302 獲取歌唱者客戶端301標(biāo)識(shí),根據(jù)該標(biāo)識(shí)從所述伴唱文件種子列表中選擇除所 述歌唱者客戶端以外的種子獲取伴唱文件。其中,聽眾客戶端302可以從應(yīng)用 服務(wù)器303處獲取歌唱者客戶端301標(biāo)識(shí)。
上文所述向索引服務(wù)器305上報(bào)的歌唱流信息通常包括歌唱者客戶端標(biāo) 識(shí)、當(dāng)前演唱的歌曲標(biāo)識(shí)和演唱進(jìn)度標(biāo)識(shí)、伴唱文件信息通常包括伴唱文件標(biāo) 識(shí)。
在圖3所示系統(tǒng)中,歌唱者客戶端301從其網(wǎng)絡(luò)側(cè)獲取伴唱文件, 一面播 放伴唱文件, 一面采集歌聲文件,將采集的歌聲文件以P2P直播方式發(fā)往該歌 唱者客戶端301所在網(wǎng)絡(luò)包房內(nèi)的其他客戶端(即聽眾客戶端302)。聽眾客 戶端302 —面以P2P直4番方式/人當(dāng)前包房內(nèi)的客戶端獲取歌唱流, 一面以P2P 點(diǎn)播方式從所有存儲(chǔ)有相應(yīng)伴唱文件的內(nèi)容服務(wù)器和在線客戶端中獲取伴唱文 件。在聽眾客戶端302側(cè),歌唱流和伴唱文件的傳輸是并行的,為了使聽眾的 試聽體驗(yàn)與歌唱者演唱的實(shí)際效果相同,在聽眾客戶端302播放歌唱流和伴唱 文件時(shí),還需要考慮控制歌唱流和伴唱文件在聽眾客戶端302側(cè)的播放進(jìn)度與 在歌唱客戶端301側(cè)的播放進(jìn)度相同。
因此,進(jìn)一步地,本發(fā)明還提出,通過在歌唱流中攜帶時(shí)間戳來控制歌唱 流和伴唱文件的播放進(jìn)度,使得聽眾客戶端302收聽到的卡拉OK效果與真實(shí) 的卡拉OK效果相同。
具體地,歌唱者客戶端301在歌唱流中攜帶時(shí)間戳,該時(shí)間戳記錄了伴唱 文件的播放進(jìn)度。聽眾客戶端302接收歌唱流和伴唱文件后,根據(jù)歌唱流中攜 帶的時(shí)間戳控制歌唱流和伴唱文件的播放進(jìn)度。歌唱者客戶端301在歌唱流中攜帶時(shí)間戳的具體方法是,在每個(gè)歌唱流數(shù)
據(jù)包中攜帶時(shí)間戳,該時(shí)間戳中記錄的時(shí)間是采集該歌唱流數(shù)據(jù)包時(shí)伴唱文件
播放到的時(shí)間進(jìn)度,例如當(dāng)前伴唱文件播放到第l分28秒,則當(dāng)前采集形成的 歌唱流數(shù)據(jù)包中記錄的時(shí)間戳顯示的時(shí)間即為第1分28秒。每個(gè)歌唱流數(shù)據(jù)包 都有相應(yīng)的數(shù)據(jù)包序列號(hào),該數(shù)據(jù)包序列號(hào)表示歌唱流數(shù)據(jù)包形成的先后順序。
聽眾客戶端302以接收歌唱流數(shù)據(jù)包的形式接收歌唱流、以接收伴唱文件 數(shù)據(jù)包的形式接收伴唱文件,其中的歌唱流數(shù)據(jù)包和伴唱文件數(shù)據(jù)包都有相應(yīng) 的序列號(hào)。聽眾客戶端302在播放歌唱流和伴唱文件以形成卡拉OK效果時(shí), 根據(jù)歌唱流數(shù)據(jù)包的序列號(hào)依次播放各個(gè)歌唱流數(shù)據(jù)包,根據(jù)每個(gè)歌唱流數(shù)據(jù) 包中的時(shí)間戳選擇相應(yīng)的伴唱文件數(shù)據(jù)包予以播放,例如,如果時(shí)間戳顯示的 時(shí)間是第1分28秒,則播放第1分28秒對(duì)應(yīng)的伴唱文件數(shù)據(jù)包。
通過在歌唱流數(shù)據(jù)包中攜帶時(shí)間戳來控制歌唱流和伴唱文件的播放進(jìn)度, 不僅可以實(shí)現(xiàn)連續(xù)的網(wǎng)絡(luò)卡拉OK播放,當(dāng)歌唱者出現(xiàn)暫停、拖動(dòng)等情形時(shí), 也可以實(shí)現(xiàn)相應(yīng)的卡拉OK效果。
具體地,如果出現(xiàn)暫停情況,則歌唱者客戶端301接收到暫停命令后,將 采集的歌唱流數(shù)據(jù)包中攜帶的時(shí)間戳保持不變,直至接收到繼續(xù)播放的命令; 接收到拖動(dòng)命令后,將采集的歌唱流數(shù)據(jù)包中攜帶的時(shí)間戳設(shè)置為拖動(dòng)后播放 的伴唱文件片4殳對(duì)應(yīng)的播放進(jìn)度。例如,如果將伴唱文件從第l分28秒拖動(dòng)至 2分43秒,則歌唱者客戶端301接收拖動(dòng)完成的命令后,如果在第2分43秒 采集了歌聲文件數(shù)據(jù)包,則在該歌聲文件數(shù)據(jù)包中寫入的時(shí)間戳信息為第l分 28秒和第2分43秒。
下面分別從歌唱者客戶端301的角度和聽眾客戶端302的角度說明通過時(shí) 間戳控制歌唱流播放進(jìn)度和伴唱文件播放進(jìn)度的具體方法。
圖5是本發(fā)明歌唱者客戶端301側(cè)生成并分發(fā)攜帶有時(shí)間戳的歌唱流的流 程示意圖,如圖5所示,該流程包括如下步驟
步驟1:在聽眾客戶端302側(cè)獲取伴唱文件。
本步驟中,該伴唱文件可以是預(yù)先存儲(chǔ)在聽眾客戶端302側(cè)的音頻文件或者M(jìn)TV等視頻文件,也可以是聽眾客戶端302側(cè)通過P2P點(diǎn)播等方式從其網(wǎng)
絡(luò)側(cè)獲取的音頻文件或者M(jìn)TV等視頻文件。
步驟2 步驟3:歌唱者客戶端301—面播放伴唱文件, 一面采集歌聲。 步驟4:歌唱者客戶端301將采集的歌聲形成歌唱流,并在該歌唱流中攜
帶時(shí)間戳。
本步驟中,歌唱者客戶端301采集歌聲,并將其實(shí)時(shí)編碼為流媒體的形式, 形成歌唱流數(shù)據(jù)包,并在該歌唱流數(shù)據(jù)包中寫入時(shí)間戳、按照歌唱流數(shù)據(jù)包形 成的先后順序?yàn)楦鱾€(gè)歌唱流數(shù)據(jù)包依次賦予數(shù)據(jù)包序列號(hào)。
本步驟中,寫入歌唱流數(shù)據(jù)包的時(shí)間戳是采集得到該歌唱流數(shù)據(jù)包中的起 始歌唱音頻數(shù)據(jù)時(shí)伴唱文件的播放進(jìn)度,例如,采集形成第5個(gè)歌唱流數(shù)據(jù)包 完畢后,開始采集第6個(gè)歌唱流數(shù)據(jù)包時(shí),伴唱文件的播放進(jìn)度是播放到第1 分15秒,則在第6個(gè)歌唱流數(shù)據(jù)包中寫入的時(shí)間戳應(yīng)為第1分15秒。
本步驟寫入時(shí)間戳的方法支持暫停。具體地,歌唱者客戶端301接收到暫 停命令后,記錄接收到該暫停命令時(shí)伴唱文件的播放進(jìn)度,并在接收到繼續(xù)播 放的命令后,將本次暫停持續(xù)的時(shí)間與接收到該暫停命令時(shí)伴唱文件的播放進(jìn) 度對(duì)應(yīng)存儲(chǔ)。
例如,在伴唱文件播放到第1分15秒時(shí)收到暫停命令,并在2分鐘后收到 繼續(xù)播放的命令,則歌唱者客戶端301將第1分15秒和2分鐘對(duì)應(yīng)存儲(chǔ)。其中, 歌唱者客戶端301可以通過計(jì)時(shí)器記錄暫停命令持續(xù)的時(shí)間。
本步驟寫入時(shí)間戳的方法支持拖動(dòng)。具體地,歌唱者客戶端301接收到拖 動(dòng)的命令后,記錄接收到該拖動(dòng)命令時(shí)伴唱文件的播放進(jìn)度、以及接收到停止 拖動(dòng)的命令時(shí)伴唱文件的播放進(jìn)度。
例如,在伴唱文件播放到第1分15秒時(shí)收到拖動(dòng)命令,在將伴唱文件的播 放進(jìn)度拖動(dòng)到第2分23秒時(shí)接收到停止拖動(dòng)的命令,則歌唱者客戶端301將第 1分15秒和第2分23秒對(duì)應(yīng)存儲(chǔ)。
關(guān)于聽眾客戶端301如何根據(jù)時(shí)間戳控制歌唱流和伴唱文件的播放進(jìn)度, 詳見圖6相關(guān)說明。
20步驟5:歌唱者客戶端301將歌唱流數(shù)據(jù)包以P2P直播方式發(fā)往該歌唱者 客戶端301所在P2P直播網(wǎng)絡(luò)中。
本步驟中,歌唱者客戶端301所在包房網(wǎng)絡(luò)是P2P網(wǎng)絡(luò)。歌唱者客戶端301 接收聽眾客戶端302的請(qǐng)求,將歌唱流數(shù)據(jù)包發(fā)給聽眾客戶端302。當(dāng)網(wǎng)絡(luò)卡 拉OK系統(tǒng)中包括中轉(zhuǎn)服務(wù)器306時(shí),歌唱者客戶端301還可以將歌唱流上傳 至中轉(zhuǎn)服務(wù)器306。
圖6是本發(fā)明聽眾客戶端302側(cè)根據(jù)歌唱流中記錄時(shí)間戳控制歌唱流和伴 唱文件播放進(jìn)度的流程示意圖,如圖6所示,該流程包括
步驟1:聽眾客戶端302以P2P直播方式獲得歌唱流。
本步驟中,聽眾客戶端302獲得歌唱流的具體方法請(qǐng)見圖3中關(guān)于聽眾客 戶端302的"^兌明。
步驟2:聽眾客戶端302對(duì)獲得的歌唱流數(shù)椐包進(jìn)行解碼,獲得該數(shù)據(jù)包 中的時(shí)間戳信息。
步驟3:聽眾客戶端302實(shí)時(shí)播放解碼的歌唱流數(shù)據(jù)包。
步驟4:聽眾客戶端302根據(jù)步驟2中獲得的時(shí)間戳信息,采用P2P點(diǎn)播 方式獲得相應(yīng)的伴唱文件lt據(jù)包。
本步驟中,聽眾客戶端302采用P2P點(diǎn)播方式獲得相應(yīng)的伴唱文件數(shù)據(jù)包 的具體方法參見圖3中關(guān)于聽眾客戶端302的說明。
步驟5:聽眾客戶端302根據(jù)時(shí)間戳信息實(shí)時(shí)播放伴唱文件數(shù)據(jù)包。
圖6所示流程中的步驟3和步驟5之間實(shí)際上沒有做到完全同步,其中伴 唱文件的播放滯后于歌唱流的播放,但是在聽眾客戶端302下行帶寬足夠的情 況下,這種滯后持續(xù)時(shí)間很短, 一般不會(huì)影響聽眾的視聽感受,所以是允許的。 作為一種替換方式,圖6中的步驟3和步驟4可以互換位置,即,聽眾客戶端 302在歌唱流和伴唱文件均準(zhǔn)備好以后,根據(jù)歌唱流中的時(shí)間戳信息控制歌唱 流和伴唱文件的播放進(jìn)度。
聽眾客戶端302根據(jù)歌唱流中的時(shí)間戳信息控制歌唱流和伴唱文件的播放 進(jìn)度時(shí),支持暫停和拖動(dòng)。頁
繼續(xù)圖5步驟3中的例子,如果伴唱文件數(shù)據(jù)包中對(duì)應(yīng)存儲(chǔ)有第1分15 秒和2分鐘來表示暫停信息,則聽眾客戶端302提取該伴唱文件數(shù)據(jù)包中的時(shí) 間戳信息第1分15秒和2分鐘,將伴唱文件在第1分15秒處暫停2分鐘后, 與該伴唱文件數(shù)據(jù)包同步播放,從而實(shí)現(xiàn)暫停效果。如果伴唱文件數(shù)據(jù)包中對(duì) 應(yīng)存儲(chǔ)有第l分15秒和第2分23秒來表示拖動(dòng)信息,則聽眾客戶端302提取 該伴唱文件數(shù)據(jù)包中的時(shí)間戳信息第1分15秒和第2分23秒,在同步播放歌 唱流的同時(shí),在伴唱文件播放到第第1分15秒后,直接從該伴唱文件的第2 分23秒處繼續(xù)播放該伴唱文件。
在聽眾客戶端302下行帶寬不足的情況下,聽眾客戶端302無法實(shí)現(xiàn)同步 下載歌唱流和伴唱文件,這種情況下,優(yōu)先傳輸歌唱流。這是因?yàn)椋诼牨娍?戶端302播放歌唱流和伴唱文件時(shí),其歌唱流和伴唱文件的播放進(jìn)度需要根據(jù) 歌唱流中的時(shí)間戳來控制,因此,如果在收到歌唱流時(shí),伴唱文件還未下載完 畢,可以僅播放歌唱流,當(dāng)然,也可以待伴唱文件下載完畢后,根據(jù)歌唱流中 的時(shí)間戳控制歌唱流和伴唱文件的播放進(jìn)度。
下面給出圖3所示網(wǎng)絡(luò)卡拉OK系統(tǒng)中的索引服務(wù)器304的實(shí)施例和客戶 端實(shí)施例。其中,圖3中的歌唱者客戶端301和聽眾客戶端302是從客戶端當(dāng) 前充當(dāng)?shù)慕巧嵌葹槠涿?,?shí)際上,網(wǎng)絡(luò)卡拉OK包房內(nèi)的每個(gè)客戶端都 既具備歌唱者客戶端301的結(jié)構(gòu),又具備聽眾客戶端302的結(jié)構(gòu)。
圖7是本發(fā)明提供的客戶端實(shí)施例結(jié)構(gòu)圖,如圖7所示,該客戶端包括歌 唱模塊701和收聽模塊702。
歌唱模塊701,釆集歌聲形成歌唱流,向網(wǎng)絡(luò)側(cè)上報(bào)歌唱流信息和伴唱文 件信息。
收聽模塊702,以P2P直播方式從網(wǎng)絡(luò)側(cè)獲取歌唱流,以P2P點(diǎn)播方式從 網(wǎng)絡(luò)側(cè)獲取伴唱文件。
歌唱模塊701還可進(jìn)一步用于,通過時(shí)間戳在歌唱流中記錄伴唱文件的播 放進(jìn)度。
收聽模塊702還可進(jìn)一步用于,根據(jù)歌唱流中的時(shí)間戳控制歌唱流和伴唱
22文件的播放進(jìn)度。
收聽模塊702還可用于,獲取當(dāng)前歌唱者客戶端標(biāo)識(shí)以及網(wǎng)絡(luò)側(cè)根據(jù)與所 述歌唱流信息對(duì)應(yīng)的P2P直播列表得到的歌唱流種子列表,根據(jù)該標(biāo)識(shí)從所述 伴唱文件種子列表中選擇除所述歌唱者客戶端以外的種子獲取伴唱文件;獲取 網(wǎng)絡(luò)側(cè)根據(jù)與所述伴唱文件信息對(duì)應(yīng)的P2P點(diǎn)播列表得到的伴唱文件種子列 表,從所述伴唱文件種子列表中選擇伴唱文件種子獲取伴唱文件。
由于本發(fā)明將用于實(shí)現(xiàn)網(wǎng)絡(luò)卡拉OK的數(shù)據(jù)分為歌唱流和伴唱文件兩部 分,其中的歌唱流是音頻文件,且該兩部分文件分別獨(dú)立傳輸,即歌唱流以 P2P直播方式傳輸,伴唱文件以P2P點(diǎn)播方式傳輸,網(wǎng)絡(luò)卡拉OK包房內(nèi)的 客戶端無需在同 一時(shí)刻傳輸既含有音頻數(shù)據(jù)又含有大量視頻數(shù)據(jù)的網(wǎng)絡(luò)卡 拉OK文件,因此能夠節(jié)省網(wǎng)絡(luò)帶寬,并且,由于以P2P點(diǎn)播方式獲得伴唱 文件,因此不僅網(wǎng)絡(luò)卡拉OK包房內(nèi)的客戶端可以提供伴唱文件,其他內(nèi)容 服務(wù)器和在線客戶端也可以提供伴唱文件,提高了網(wǎng)絡(luò)資源利用率。
另外,當(dāng)在歌唱流中加入表示伴唱文件播放進(jìn)度的時(shí)間戳,并根據(jù)該時(shí) 間戳控制歌唱流和伴唱文件的播放進(jìn)度時(shí),能夠?qū)崿F(xiàn)同步播放歌唱流和伴唱 文件、真實(shí)再現(xiàn)歌唱者的卡拉OK效果,提高用戶體驗(yàn)。
以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù) 范圍,凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等, 均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種傳輸用于實(shí)現(xiàn)網(wǎng)絡(luò)卡拉OK的數(shù)據(jù)的方法,其特征在于,所述用于實(shí)現(xiàn)網(wǎng)絡(luò)卡拉OK的數(shù)據(jù)包括歌唱流和伴唱文件,該方法包括歌唱者客戶端采集歌聲形成歌唱流,向網(wǎng)絡(luò)側(cè)上報(bào)歌唱流信息和伴唱文件信息;網(wǎng)絡(luò)側(cè)根據(jù)接收的歌唱流信息以點(diǎn)對(duì)點(diǎn)P2P直播方式向聽眾客戶端下發(fā)歌唱流、根據(jù)接收的伴唱文件信息以P2P點(diǎn)播方式向聽眾客戶端下發(fā)伴唱文件。
2、 如權(quán)利要求l所述的方法,其特征在于,該方法進(jìn)一步包括歌唱者客戶端向中轉(zhuǎn)服務(wù)器上傳所述歌唱流,中轉(zhuǎn)服務(wù)器向所述網(wǎng)絡(luò)側(cè)上 報(bào)歌唱流信息。
3、 如權(quán)利要求1或2所述的方法,其特征在于,所述網(wǎng)絡(luò)側(cè)根據(jù)接收的歌 唱流信息以P2P直播方式向聽眾客戶端下發(fā)歌唱流、根據(jù)接收的伴唱文件信息 以P2P點(diǎn)播方式向聽眾客戶端下發(fā)伴唱文件包括網(wǎng)絡(luò)側(cè)根據(jù)接收的歌唱流信息形成與該歌唱流信息對(duì)應(yīng)的P2P直播列表, 根據(jù)接收的伴唱文件信息形成與該伴唱文件信息對(duì)應(yīng)的P2P點(diǎn)播列表;網(wǎng)絡(luò)側(cè)接收聽眾客戶端獲取用于實(shí)現(xiàn)網(wǎng)絡(luò)卡拉OK的數(shù)據(jù)的請(qǐng)求消息,根 據(jù)與所述歌唱流信息對(duì)應(yīng)的P2P直播列表向所述聽眾客戶端下發(fā)歌唱流種子列 表,根據(jù)與所述伴唱文件信息對(duì)應(yīng)的P2P點(diǎn)播列表向所述聽眾客戶端下發(fā)伴唱 文件種子列表;聽眾客戶端從所述歌唱流種子列表中選擇種子獲取歌唱流,從所述伴唱文 件種子列表中選擇種子獲取伴唱文件。
4、 如權(quán)利要求3所述的方法,其特征在于,根據(jù)與所述歌唱流信息對(duì)應(yīng)的P2P直播列表向所述聽眾客戶端下發(fā)歌唱流 種子列表包括將所述歌唱流信息對(duì)應(yīng)的P2P直播列表作為所述歌唱流種子列表下發(fā)給所 述聽眾客戶端;根據(jù)與所述伴唱文件信息對(duì)應(yīng)的P2P點(diǎn)播列表向所述聽眾客戶端下發(fā)伴唱 文件種子列表包括將所述伴唱文件信息對(duì)應(yīng)的P2P點(diǎn)播列表作為所述伴唱文件種子列表下發(fā) 給所述聽眾客戶端;從所述伴唱文件種子列表中選擇種子獲取伴唱文件包括聽眾客戶端獲取當(dāng)前歌唱者客戶端標(biāo)識(shí),根據(jù)該標(biāo)識(shí)從所述伴唱文件種子 列表中選擇除所述歌唱者客戶端以外的種子獲取伴唱文件。
5、 如權(quán)利要求3所述的方法,其特征在于,根據(jù)與所述伴唱文件信息對(duì)應(yīng) 的P2P點(diǎn)播列表向所述聽眾客戶端下發(fā)伴唱文件種子列表包括將除歌唱者客戶端以外的、存儲(chǔ)有所述伴唱文件的在線客戶端作為伴唱文 件種子寫入所述伴唱文件種子列表。
6、 如權(quán)利要求1或2所述的方法,其特征在于,該方法進(jìn)一步包括 歌唱者客戶端通過時(shí)間戳在歌唱流中記錄伴唱文件的播放進(jìn)度;聽眾客戶端接收歌唱流和伴唱文件,根據(jù)歌唱流中的時(shí)間戳控制歌唱流和 伴唱文件的播放進(jìn)度。
7、 如權(quán)利要求6所述的方法,其特征在于,所述根據(jù)歌唱流中的時(shí)間戳控 制伴唱文件的播放進(jìn)度包括如果聽眾客戶端沒有接收到所述歌唱流中的時(shí)間戳對(duì)應(yīng)的伴唱文件片斷, 則聽眾客戶端僅播放所述歌唱流。
8、 如權(quán)利要求1所述的方法,其特征在于,所述歌唱流信息包括歌唱者客戶端標(biāo)識(shí)、當(dāng)前演唱的歌曲標(biāo)識(shí)和演唱進(jìn)度 標(biāo)識(shí);所述伴唱文件信息包括伴唱文件標(biāo)識(shí)。
9、 一種傳輸用于實(shí)現(xiàn)網(wǎng)絡(luò)卡拉OK的數(shù)據(jù)的系統(tǒng),其特征在于,該系統(tǒng)包 括歌唱者客戶端、網(wǎng)絡(luò)側(cè)和聽眾客戶端;所述歌唱者客戶端,采集歌聲形成歌唱流,向網(wǎng)絡(luò)側(cè)上報(bào)歌唱流信息和伴 唱文件信息;所述網(wǎng)絡(luò)側(cè),根據(jù)接收的歌唱流信息以點(diǎn)對(duì)點(diǎn)P2P直播方式向聽眾客戶端下發(fā)歌唱流、根據(jù)接收的伴唱文件信息以P2P點(diǎn)播方式向聽眾客戶端下發(fā)伴唱文件;所述聽眾客戶端,接收歌唱流和伴唱文件。
10、 如權(quán)利要求9所述的系統(tǒng),其特征在于,該系統(tǒng)進(jìn)一步包括中轉(zhuǎn)服務(wù)器;所述歌唱者客戶端進(jìn)一步用于,向所述中轉(zhuǎn)服務(wù)器上傳所述歌唱流; 所述中轉(zhuǎn)服務(wù)器用于,向所述網(wǎng)絡(luò)側(cè)上報(bào)歌唱流信息。
11、 如權(quán)利要求IO所述的系統(tǒng),其特征在于,所述網(wǎng)絡(luò)側(cè)包括索引服務(wù)器、 歌唱流種子和伴唱文件種子;所述向網(wǎng)絡(luò)側(cè)上報(bào)歌唱流信息和伴唱文件信息為向索引服務(wù)器上報(bào)歌唱 流信息和伴唱文件信息;所述索引服務(wù)器,接收聽眾客戶端獲取用于實(shí)現(xiàn)網(wǎng)絡(luò)卡拉OK的數(shù)據(jù)對(duì)應(yīng) 種子列表的請(qǐng)求消息,根據(jù)與所述歌唱流信息對(duì)應(yīng)的P2P直播列表向所述聽眾 客戶端下發(fā)歌唱流種子列表,根據(jù)與所述伴唱文件信息對(duì)應(yīng)的P2P點(diǎn)播列表向 所述聽眾客戶端下發(fā)伴唱文件種子列表;所述歌唱流種子,根據(jù)聽眾客戶端獲取歌唱流的請(qǐng)求消息,向所述聽眾客 戶端下發(fā)歌唱流;所述伴唱文件種子,根據(jù)聽眾客戶端獲取伴唱文件的請(qǐng)求消息,向所述聽 眾客戶端下發(fā)伴唱文件;所述聽眾客戶端,向所述索引服務(wù)器發(fā)送獲取用于實(shí)現(xiàn)網(wǎng)絡(luò)卡拉OK的數(shù) 據(jù)的請(qǐng)求消息,接收索引服務(wù)器返回的歌唱流種子列表和伴唱文件種子列表, 從所述歌唱流種子列表中選擇歌唱流種子,向所述歌唱流種子發(fā)送獲取歌唱流 的請(qǐng)求消息,從所述伴唱文件種子列表中選擇伴唱文件種子,向所述伴唱文件 種子發(fā)送獲取伴唱文件的請(qǐng)求消息,接收所述歌唱流種子下發(fā)的歌唱流和所述 伴唱文件種子下發(fā)的伴唱文件。
12、 如權(quán)利要求11所述的系統(tǒng),其特征在于,所述歌唱流種子包括歌唱者客戶端、聽眾客戶端和中轉(zhuǎn)服務(wù)器;所述伴唱文件種子包括存儲(chǔ)有該伴唱文件 的內(nèi)容服務(wù)器和在線客戶端。
13、 如權(quán)利要求11所述的系統(tǒng),其特征在于,所述歌唱者客戶端進(jìn)一步用于,通過時(shí)間戳在歌唱流中記錄伴唱文件的播 放進(jìn)度;所述聽眾客戶端進(jìn)一步用于,根據(jù)歌唱流中的時(shí)間戳控制歌唱流和伴唱文 件的播放進(jìn)度。
14、 一種客戶端,其特征在于,包括歌唱模塊和收聽模塊; 所述歌唱4莫塊,采集歌聲形成歌唱流,向網(wǎng)絡(luò)側(cè)上報(bào)歌唱流信息和伴唱文件信息;所述收聽模塊,以P2P直播方式從網(wǎng)絡(luò)側(cè)獲取歌唱流,以P2P點(diǎn)播方式從 網(wǎng)絡(luò)側(cè)獲取伴唱文件。
15、 如權(quán)利要求14所述的客戶端,其特征在于,所述歌唱模塊進(jìn)一步用于,通過時(shí)間戳在歌唱流中記錄伴唱文件的播放進(jìn)度;所述收聽模塊進(jìn)一步用于,根據(jù)歌唱流中的時(shí)間戳控制歌唱流和伴唱文件 的播放進(jìn)度。
16、 如權(quán)利要求14所述的客戶端,其特征在于,所述收聽模塊,獲取當(dāng)前歌唱者客戶端標(biāo)識(shí)以及網(wǎng)絡(luò)側(cè)根據(jù)與所述歌唱流 信息對(duì)應(yīng)的P2P直播列表得到的歌唱流種子列表,從所述歌唱流種子列表中選 擇歌唱流種子獲取歌唱流;獲取網(wǎng)絡(luò)側(cè)根據(jù)與所述伴唱文件信息對(duì)應(yīng)的P2P點(diǎn) 播列表得到的伴唱文件種子列表,根據(jù)該標(biāo)識(shí)從所述伴唱文件種子列表中選擇 除所述歌唱者客戶端以外的種子獲取伴唱文件。
全文摘要
本發(fā)明實(shí)施例公開了一種傳輸用于實(shí)現(xiàn)網(wǎng)絡(luò)卡拉OK的數(shù)據(jù)的方法、系統(tǒng)和客戶端,所述用于實(shí)現(xiàn)網(wǎng)絡(luò)卡拉OK的數(shù)據(jù)包括歌唱流和伴唱文件。該方法包括歌唱者客戶端采集歌聲形成歌唱流,向網(wǎng)絡(luò)側(cè)上報(bào)歌唱流信息和伴唱文件信息;網(wǎng)絡(luò)側(cè)根據(jù)接收的歌唱流信息以點(diǎn)對(duì)點(diǎn)P2P直播方式向聽眾客戶端下發(fā)歌唱流、根據(jù)接收的伴唱文件信息以P2P點(diǎn)播方式向聽眾客戶端下發(fā)伴唱文件??蛻舳税ǜ璩K,采集歌聲形成歌唱流,向網(wǎng)絡(luò)側(cè)上報(bào)歌唱流信息和伴唱文件信息;收聽模,以P2P直播方式從網(wǎng)絡(luò)側(cè)獲取歌唱流,以P2P點(diǎn)播方式從網(wǎng)絡(luò)側(cè)獲取伴唱文件。應(yīng)用本發(fā)明能夠節(jié)省傳輸用于實(shí)現(xiàn)網(wǎng)絡(luò)卡拉OK的數(shù)據(jù)所需的傳輸帶寬,并提高對(duì)網(wǎng)絡(luò)資源的利用率。
文檔編號(hào)H04L12/18GK101483536SQ20091000566
公開日2009年7月15日 申請(qǐng)日期2009年2月10日 優(yōu)先權(quán)日2009年2月10日
發(fā)明者王志華, 鵬 胡 申請(qǐng)人:騰訊科技(深圳)有限公司