一種多人網(wǎng)絡音頻會話方法及系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及多人音頻會話技術領域,更具體地說,涉及一種多人網(wǎng)絡音頻會話方法及系統(tǒng)。
【背景技術】
[0002]多人音頻會話系統(tǒng)是一個多對多的網(wǎng)絡會話系統(tǒng),隨著網(wǎng)絡技術的的迅速發(fā)展,多人音頻會話系統(tǒng)得到了廣泛的應用和發(fā)展。為實現(xiàn)多人音頻會議或多人音頻聊天,主要有以下幾種方式:
[0003]1)硬件實現(xiàn)音頻混音:通過硬件進行音頻混音處理,然后進行中轉(zhuǎn)服務分發(fā),該種方式成本高,并且硬件混音的路數(shù)被限制,不能進行相應的擴展處理;2)軟件實現(xiàn)音頻混音:通過軟件實現(xiàn)音頻混音處理,再進行中轉(zhuǎn)服務分發(fā),該種方式成本低,用戶可以通過程序控制混音的路數(shù)和方式,但技術實現(xiàn)難度大,處理效率低;3)不混音分發(fā)實現(xiàn)方式:該方式不進行混音,把收到的數(shù)據(jù)直接發(fā)送出去,成本低,對開發(fā)人員的要求較低,但是對帶寬的要求較高;4)不混音不分發(fā)實現(xiàn)方式:該方式需要客戶端根據(jù)房間的人數(shù)進行多次數(shù)據(jù)上傳,服務器只進行簡單的中轉(zhuǎn)處理即可,效率低下。
[0004]而現(xiàn)有多人網(wǎng)絡音頻會話方法主要是通過軟件實現(xiàn)音頻混音,但在進行多路混音時會出現(xiàn)效率低下,帶來很大的帶寬壓力,而且不能及時把用戶上傳上來的音頻數(shù)據(jù)轉(zhuǎn)發(fā)出去。
【發(fā)明內(nèi)容】
[0005]本發(fā)明要解決的技術問題在于,針對現(xiàn)有技術的上述網(wǎng)絡帶寬壓力大且不能及時把用戶上傳的音頻數(shù)據(jù)轉(zhuǎn)發(fā)出去的缺陷,提供一種多人網(wǎng)絡音頻會話方法及系統(tǒng)。
[0006]本發(fā)明解決其技術問題所采用的技術方案是:構造一種多人網(wǎng)絡音頻會話方法,包括如下步驟:
[0007]S1、同一音頻會話房間內(nèi)的多個客戶端通過房間信令服務器建立會話連接,房間信令服務器將接收到的所述音頻會話房間的信息存儲于后臺數(shù)據(jù)庫,并通知控制服務器和中轉(zhuǎn)服務器獲取所述音頻會話房間的信息;
[0008]S2、每一所述客戶端分別發(fā)送相應的控制信息至控制服務器,控制服務器將接收到的所述控制信息存儲于所述后臺數(shù)據(jù)庫,并通知中轉(zhuǎn)服務器獲取所述控制信息;
[0009]S3、每一所述客戶端分別發(fā)送音頻數(shù)據(jù)給中轉(zhuǎn)服務器,所述中轉(zhuǎn)服務器獲取所述后臺數(shù)據(jù)庫中存儲的音頻會話房間的信息和與該音頻會話房間的信息相對應的控制信息,并根據(jù)所述控制信息,把分配給每一客戶端的至少一路音頻數(shù)據(jù)進行混音處理后轉(zhuǎn)發(fā)給相應的客戶端。
[0010]在上述多人網(wǎng)絡音頻會話方法中,所述控制信息包括第一指令和第二指令,所述第一指令表示需求同一音頻會話房間內(nèi)的所述多個客戶端中的至少一個客戶端的音頻數(shù)據(jù);所述第二指令表示向同一音頻會話房間內(nèi)的所述多個客戶端中的至少一個客戶端屏蔽本端的音頻數(shù)據(jù),其中:與所述第一指令相比,所述第二指令具有最高優(yōu)先權。
[0011]在上述多人網(wǎng)絡音頻會話方法中,在所述步驟S3中,所述中轉(zhuǎn)服務器把分配給每一客戶端的至少一路音頻數(shù)據(jù)進行混音處理的步驟包括:
[0012]S21、將分配給每一客戶端的至少一路音頻數(shù)據(jù)中的每一路分別解碼成一一對應的解碼數(shù)據(jù);
[0013]S22、將解碼后的至少一路解碼數(shù)據(jù)分成一組或多組解碼數(shù)據(jù),每一組解碼數(shù)據(jù)分別進行混音處理成一路混音數(shù)據(jù);
[0014]S23、對每一路所述混音數(shù)據(jù)進行編碼壓縮。
[0015]在上述多人網(wǎng)絡音頻會話方法中,每一組解碼數(shù)據(jù)包括路數(shù)相同的至少一路解碼數(shù)據(jù)。
[0016]在上述多人網(wǎng)絡音頻會話方法中,所述步驟S1包括:
[0017]S11、由第一客戶端向房間信令服務器發(fā)出創(chuàng)建房間的請求指令,所述房間房間信令服務器接收到所述請求指令后創(chuàng)建音頻會話房間;
[0018]S12、所述房間信令服務器向所述第一客戶端請求參與會話的至少一個客戶端發(fā)起創(chuàng)建房間的通知,邀請參與會話的至少一個客戶端加入所述音頻會話房間;
[0019]S13、所述參與會話的至少一個客戶端分別發(fā)送應答指令至所述房間信令服務器,所述應答指令包括同意或拒絕;
[0020]S14、所述第一客戶端和同意參與會話的客戶端通過所述房間信令服務器建立會話連接。
[0021]還提供一種多人網(wǎng)絡音頻會話系統(tǒng),包括房間信令服務器、控制服務器、中轉(zhuǎn)服務器、后臺數(shù)據(jù)庫以及多個客戶端組,每一客戶端組包括位于同一音頻會話房間內(nèi)的通過房間信令服務器建立會話連接的多個客戶端,并由所述后臺數(shù)據(jù)庫存儲音頻會話房間的信息,所述多個客戶端分別與所述房間信令服務器、控制服務器和所述中轉(zhuǎn)服務器通過網(wǎng)絡連接,所述后臺數(shù)據(jù)庫分別與所述房間信令服務器、控制服務器和所述中轉(zhuǎn)服務器連接,所述房間信令服務器分別與所述控制服務器和所述中轉(zhuǎn)服務器的連接,所述控制服務器與所述中轉(zhuǎn)服務器連接;
[0022]所述控制服務器包括控制信息接收模塊和消息通知模塊,所述控制信息接收模塊用于接收同一音頻會話房間內(nèi)的多個客戶端發(fā)送的控制信息,并將所述控制信息存儲于所述后臺數(shù)據(jù)庫,所述消息通知模塊用于通知中轉(zhuǎn)服務器從所述后臺數(shù)據(jù)庫中獲取所述控制信息;
[0023]所述中轉(zhuǎn)服務器包括音頻數(shù)據(jù)接收模塊和音頻數(shù)據(jù)轉(zhuǎn)發(fā)模塊;
[0024]所述音頻數(shù)據(jù)接收模塊,用于接收同一音頻會話房間內(nèi)的多個客戶端發(fā)送的音頻數(shù)據(jù);
[0025]所述音頻數(shù)據(jù)轉(zhuǎn)發(fā)模塊,用于獲取所述后臺數(shù)據(jù)庫中存儲的音頻會話房間的信息和與該音頻會話房間的信息相對應的控制信息,并根據(jù)所述控制信息,把分配給每一客戶端的至少一路音頻數(shù)據(jù)進行混音處理后轉(zhuǎn)發(fā)給相應的客戶端。
[0026]在上述多人網(wǎng)絡音頻會話系統(tǒng)中,所述控制信息包括第一指令和第二指令,所述第一指令表示需求同一音頻會話房間內(nèi)的所述多個客戶端中的至少一個客戶端的音頻數(shù)據(jù);所述第二指令表示向同一音頻會話房間內(nèi)的所述多個客戶端中的至少一個客戶端屏蔽本端的音頻數(shù)據(jù),其中:與所述第一指令相比,所述第二指令具有最高優(yōu)先權。
[0027]在上述多人網(wǎng)絡音頻會話系統(tǒng)中,所述中轉(zhuǎn)服務器還包括解碼處理子模塊、分組子模塊、混音處理子模塊和編碼處理子模塊;
[0028]所述解碼處理子模塊,將分配給每一客戶端的至少一路音頻數(shù)據(jù)中的每一路分別解碼成一一對應的解碼數(shù)據(jù);
[0029]所述分組子模塊,將解碼后的至少一路解碼數(shù)據(jù)分成一組或多組解碼數(shù)據(jù);
[0030]所述混音處理子模塊,用于每一組解碼數(shù)據(jù)分別進行混音處理成一路混音數(shù)據(jù);
[0031]所述編碼處理子單元,用于對每一路所述混音數(shù)據(jù)進行編碼壓縮。
[0032]在上述多人網(wǎng)絡音頻會話系統(tǒng)中,所述房間信令服務器包括房間創(chuàng)建單元,每一客戶端包括會話發(fā)起單元和會話響應單元:
[0033]所述會話發(fā)起單元,用于向房間信令服務器發(fā)出創(chuàng)建房間的請求指令;
[0034]所述房間創(chuàng)建單元,用于根據(jù)接收到所述請求指令后創(chuàng)建音頻會話房間;
[0035]所述會話響應單元,用于發(fā)送應答指令至所述房間信令服務器,所述應答指令包括同意或拒絕。
[0036]實施本發(fā)明的多人網(wǎng)絡音頻會話方法及系統(tǒng),具有以下有益效果:通過房間信令服務器、控制服務器以及中轉(zhuǎn)服務器這三臺服務器分別獨立工作,并能夠根據(jù)每一客戶端的需求進行控制轉(zhuǎn)發(fā)音頻數(shù)據(jù),在房間信令服務器創(chuàng)建的同一音頻會話房間內(nèi)的多個客戶端建立會話連接后,再由控制服務器接收每一客戶端的控制信息并存儲在后臺數(shù)據(jù)庫中,中轉(zhuǎn)服務器則從后臺數(shù)據(jù)庫中獲取相應