專利名稱:播放流媒體的方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及移動通信技術(shù)領(lǐng)域,具體而言,涉及一種播放流媒體的方法、裝置及系統(tǒng)。
背景技術(shù):
在超文本標(biāo)記語言HTML5標(biāo)準(zhǔn)越來越普及的情況下,不少音視頻內(nèi)容提供商開始在移動平臺上面使用HTML5的video/audio標(biāo)準(zhǔn)來提供自己的內(nèi)容。其中不少廠商使用的是蘋果公司提供的HTTP Live Streaming方案,然而,蘋果公司提供的HTTP LiveStreaming方案只能夠在ipad/iphone平臺進行播放,即使別的平臺的用戶為訪問設(shè)定網(wǎng)頁而把自己瀏覽器的用戶代理設(shè)置為iphone/ipad,仍然會由于格式不支持而導(dǎo)致播放失敗。
圖I是根據(jù)現(xiàn)有技術(shù)的Apple HTTP Live Streaming媒體播放方案的流程圖。如圖I所示,Apple HTTP Live Streaming媒體播放方案包括如下步驟(I)通過音視頻輸入設(shè)備輸入音視頻,音視頻設(shè)備可能是視頻采集卡或者其他的錄入設(shè)備。(2)通過服務(wù)器中的媒體編碼器執(zhí)行音頻視頻的壓縮,然后通過流分段器將壓縮后的音頻視頻分割成小的文件片段(即.ts文件)。(3)在分發(fā)服務(wù)器上存放索引文件(即Index file)以及.ts文件,索引文件及.ts文件的存放位置由URL指向,外界不關(guān)心具體的絕對路徑。(4)用戶通過客戶端獲取音頻視頻文件,客戶端可以是手機或者個人計算機等終端設(shè)備。由上可見,分發(fā)的時候,采用的是“Index file”加上一組.ts文件的方式。其中Index file就是〈video〉或者〈audio〉標(biāo)簽的src屬性或者source標(biāo)簽指向的文件,在Apple HTTP Live Streaming方案中索引文件的后綴名通常為〃· m3u8〃。根據(jù)Apple官方的文檔描述,.ts文件存放的編碼信息是MPEG-2格式的,而有一些網(wǎng)站(如http://www.qiyi. com)在ts流內(nèi)存放的是AVC (h264編碼)。從理論上來講,在多數(shù)Android手機的自帶媒體播放器中是可以播放MPEG-2以及AVC格式的文件的,但是由于Android系統(tǒng)自帶的媒體播放器無法正確解析.m3u8文件的列表格式,所以用戶在使用Andro i d手機播放App I eHTTP Live Streaming方案的視頻時會出現(xiàn)播放失敗的情況。針對相關(guān)技術(shù)中非Apple用戶客戶端不能解析Apple HTTP Live Streaming媒體播放方案中M3U8文件的列表格式,因而不能享受播放服務(wù)的相關(guān)技術(shù)問題,尚未提出有效的解決方案。
發(fā)明內(nèi)容
針對相關(guān)技術(shù)的非Apple用戶客戶端由于不能解析Apple HTTP Live Streaming媒體播放方案中M3U8文件的列表格式,因而不能播放M3U8文件的問題,本發(fā)明的主要目的在于提供一種播放流媒體的方法、裝置及系統(tǒng)以解決上述問題。為了實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了一種播放流媒體的方法,該方法包括獲取用戶用于播放流媒體文件的播放請求;根據(jù)播放請求從服務(wù)器下載與流媒體對應(yīng)的M3U8文件,其中,M3U8文件包含有媒體文件的URL信息;解析M3U8文件,獲取M3U8文件中的一條或多條URL信息;根據(jù)獲取到的各個URL信息調(diào)用播放器播放每條URL信息所對應(yīng)的媒體文件。進一步地,從服務(wù)器上獲取與各個URL信息所對應(yīng)的媒體文件;播放媒體文件。進一步地,獲取用戶訪問網(wǎng)頁的訪問請求;根據(jù)訪問請求解析網(wǎng)頁的HTML,獲取video標(biāo)簽或audio標(biāo)簽及video標(biāo)簽或audio標(biāo)簽指向的鏈接地址;判斷與鏈接地址所對應(yīng)的第一文件是否是M3U8文件,其中,如果是,則標(biāo)記第一文件為M3U8文件,以供用戶播放;如果不是,則用戶直接播放第一文件。
進一步地,根據(jù)鏈接地址的后綴判斷URL的MME類型是否是M3U8,其中,如果MIME類型是M3U8,則確定第一文件是M3U8文件;如果MME類型不是M3U8,則確定第一文件不是M3U8文件。進一步地,判斷客戶端是否存在M3U8文件,其中,如果客戶端不存在M3U8文件,則從服務(wù)器下載M3U8文件;如果客戶端存在M3U8文件,則進入解析M3U8文件的步驟。為了實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了一種播放流媒體的裝置,該裝置包括第一獲取模塊,用于獲取用戶用于播放流媒體文件的播放請求;第一下載模塊,用于根據(jù)播放請求從服務(wù)器下載與流媒體對應(yīng)的M3U8文件;第一解析模塊,用于解析M3U8文件,獲取M3U8文件中的一條或多條URL信息;第一播放模塊,用于根據(jù)獲取到的各個URL信息播放每條URL信息所對應(yīng)的媒體文件。進一步地,所述第一播放模塊包括第二獲取模塊,用于從服務(wù)器上獲取與各個URL信息所對應(yīng)的媒體文件;第二播放模塊,用于播放媒體文件。進一步地,所述裝置還包括第三獲取模塊,用于獲取用戶訪問網(wǎng)頁的訪問請求;第二解析模塊,用于根據(jù)訪問請求解析網(wǎng)頁的HTML,以獲取video標(biāo)簽或audio標(biāo)簽及video標(biāo)簽或audio標(biāo)簽指向的鏈接地址;第二判斷模塊,用于判斷與鏈接地址所對應(yīng)的第一文件是否是M3U8文件;第一標(biāo)記模塊,用于在所述第二判斷模塊判斷出第一文件是M3U8文件時,標(biāo)記第一文件為M3U8文件,以供用戶播放;第三播放模塊,用于在所述第二判斷模塊判斷出第一文件不是M3U8文件時,直接播放第一文件。進一步地,所述第二判斷模塊包括第三判斷模塊,用于根據(jù)鏈接地址的后綴判斷URL的MME類型是否是M3U8,其中,如果MME類型是M3U8,則確定第一文件是M3U8文件,如果MME類型不是M3U8,則確定第一文件不是M3U8文件。根據(jù)本發(fā)明的另一個方面,提供了一種播放流媒體的系統(tǒng),該系統(tǒng)包括瀏覽器,用于根據(jù)用戶播放流媒體的播放請求從服務(wù)器下載與流媒體對應(yīng)的M3U8文件,然后解析M3U8文件,獲取M3U8文件中的一條或多條URL信息,再根據(jù)獲取到的各個URL信息調(diào)用播放器播放每條URL信息所對應(yīng)的媒體文件。通過本發(fā)明,非Apple用戶客戶端通過從服務(wù)器上下載M3U8文件,并對下載到的M3U8文件進行解析,從而可以獲取到需要播放的媒體文件在該M3U8文件中保存的URL信息,然后根據(jù)獲取到的URL信息來調(diào)用播放器播放每個URL信息所對應(yīng)的媒體文件,解決了現(xiàn)有技術(shù)中非Apple用戶客戶端不能解析Apple HTTP Live Streaming媒體播放方案中M3U8文件的列表格式,因而不能支持Apple HTTP Live Streaming播放方案的問題,從而實現(xiàn)了非Apple用戶客戶端對Apple HTTP Live Streaming播放方案的支持。
構(gòu)成本申請的一部分的說明書附圖用來提供對本發(fā)明的進一步理解,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中圖I是根據(jù)本發(fā)明的現(xiàn)有技術(shù)的Apple HTTP Live Streaming媒體播放方案的流程圖;圖2是根據(jù)本發(fā)明的實施例的播放流媒體的方法的流程圖;圖3是根據(jù)圖2所示的實施例的播放流媒體的方法的業(yè)務(wù)流程圖; 圖4是根據(jù)圖3所示的實施例的播放流媒體的方法的業(yè)務(wù)需求圖;圖5是根據(jù)本發(fā)明的實施例的播放流媒體的裝置的結(jié)構(gòu)示意圖;以及圖6是根據(jù)圖5所示的實施例的播放流媒體的裝置的結(jié)構(gòu)示意圖。
具體實施例方式需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結(jié)合實施例來詳細說明本發(fā)明。圖2是根據(jù)本發(fā)明的實施例的播放流媒體的方法的流程圖。如圖2所示根據(jù)本發(fā)明的播放流媒體的方法包括如下步驟步驟S101,獲取用戶用于播放流媒體的播放請求。步驟S103,根據(jù)播放請求從服務(wù)器下載與流媒體對應(yīng)的M3U8文件,其中,M3U8文件包含有媒體文件的URL信息。步驟S105,解析M3U8文件,獲取M3U8文件中的一條或多條URL信息。步驟S107,根據(jù)獲取到的各個URL信息調(diào)用播放器播放每條URL信息所對應(yīng)的媒體文件。優(yōu)選地,在本申請的上述實施例中,根據(jù)獲取到的各個URL信息來播放每條URL信息所對應(yīng)的媒體文件的步驟還包括從服務(wù)器上獲取與各個媒體文件的URL信息所對應(yīng)的媒體文件;然后播放媒體文件。在本發(fā)明的播放流媒體的方法實施例中,非Apple用戶客戶端根據(jù)播放流媒體的請求,通過從服務(wù)器上下載與流媒體對應(yīng)的M3U8文件,并對下載到的M3U8文件進行解析,從而可以獲取到需要播放的媒體文件在該M3U8文件中保存的鏈接地址,然后通過媒體文件的鏈接地址(即URL信息)來訪問服務(wù)器,在獲取到該M3U8文件中保存的鏈接地址之后,可以通過下載該鏈接地址對應(yīng)的媒體文件并交由系統(tǒng)媒體播放器來播放,或者從服務(wù)器上獲取并播放該URL信息對應(yīng)的媒體文件,解決了現(xiàn)有技術(shù)中非Apple用戶客戶端不能解析Apple HTTPLive Streaming媒體播放方案中M3U8文件的列表格式,因而不能支持AppleHTTP Live Streaming播放方案的問題,從而實現(xiàn)了非Apple系列智能手機對Apple HTTPLive Streaming播放方案的支持。根據(jù)本申請的上述實施例,在獲取用戶用于播放M3U8文件的播放請求之前,該方法還可以包括獲取用戶訪問網(wǎng)頁的訪問請求;根據(jù)訪問請求解析網(wǎng)頁的HTML,獲取video標(biāo)簽或audio標(biāo)簽及video標(biāo)簽或audio標(biāo)簽指向的鏈接地址;然后,判斷與鏈接地址所對應(yīng)的第一文件是否是M3U8文件,其中,如果是,則標(biāo)記第一文件為M3U8文件,以供用戶播放;如果不是,則用戶直接播放該文件。在本發(fā)明的上述實施例中,判斷與鏈接地址所對應(yīng)的第一文件是否是M3U8文件的步驟還可以包括根據(jù)鏈接地址的后綴判斷URL的多媒體文件格式MME的類型是否是M3U8,其中,如果MME類型是M3U8,則確定第一文件是M3U8文件;如果MME類型不是M3U8,則確定第一文件不是M3U8文件。具體地,通過video標(biāo)簽或audio標(biāo)簽的SCR屬性判斷MIME類型是不是M3U8格式的文件。優(yōu)選地,MME類型通過對URL的后綴查表得到,通常把后綴m3u或者m3u8的文件當(dāng)作M3U8格式的文件。根據(jù)本發(fā)明的播放流媒體的方法,在根據(jù)播放請求從服務(wù)器下載M3U8文件之前,該方法還可以包括判斷客戶端是否存在M3U8文件,其中,如果客戶端不存在M3U8文件,則 從服務(wù)器下載M3U8文件;如果客戶端存在M3U8文件,則進入解析M3U8文件的流程。優(yōu)選地,根據(jù)訪問請求解析網(wǎng)頁的HTML,以獲取video標(biāo)簽或audio標(biāo)簽的步驟還包括如果沒有獲取到video標(biāo)簽或audio標(biāo)簽,則當(dāng)前頁面不包含音視頻文件,退出播放功能。根據(jù)本申請的上述實施例,播放流媒體的方法包括如下步驟(I)用戶通過客戶端中的手機瀏覽器訪問一個支持播放Apple HTTP LiveStreaming格式的網(wǎng)址。其中,在訪問某些網(wǎng)站之前,需要把瀏覽器偽裝成iphone的瀏覽器(即設(shè)置手機瀏覽器的user-agent為iphone瀏覽器的user-agent字符串)。(2 )從訪問的頁面發(fā)現(xiàn)視頻。具體地,在瀏覽器內(nèi)對訪問頁面的HTML進行解析,發(fā)現(xiàn)video標(biāo)簽或audio標(biāo)簽及其對應(yīng)的URL信息,則確定該頁面存在音視頻文件;如果未發(fā)現(xiàn)video或audio標(biāo)簽,則該頁面沒有音視頻文件,客戶端退出播放功能。(3)根據(jù)上述步驟中發(fā)現(xiàn)的音視頻文件的URL來判定該URL指向的文件是否是AppleHTTP Live Streaming的內(nèi)容源,判定成立則進入(4)中Apple HTTP Live Streaming的處理流程;判定不成立,則進入普通媒體文件的播放流程。優(yōu)選地,根據(jù)上述URL中文件名的后綴判定該URL指向的文件是否是Apple HTTP Live Streaming的內(nèi)容源。(4)標(biāo)記播放該音視頻需要使用Apple HTTP Live Streaming的播放方式。特別地,在HTML的video標(biāo)簽或audio標(biāo)簽內(nèi)嵌入M3U8文件的情況下,直到video或audio的播放動作被觸發(fā),才進入播放流程。(5)訪問頁面上的video對象或audio對象,當(dāng)播放動作被觸發(fā)以后,先判斷是否已經(jīng)下載和保存了 M3U8文件,若沒有下載過M3U8文件,則下載并且解析出M3U8文件對應(yīng)的播放列表,并將M3U8文件保存,若已經(jīng)下載和解析了 M3U8文件,則進行當(dāng)前媒體片段的播放。其中,每次播放下一個媒體文件的時候都從索引文件(即M3U8文件)獲取媒體文件的URL,保存下載到的M3U8文件就可以避免每次播放媒體文件都重新下載M3U8文件。優(yōu)選地,媒體文件可以是TS文件。圖3是根據(jù)圖2所示的實施例的播放流媒體的方法的業(yè)務(wù)流程圖。具體的,如圖3所示,本申請在客戶端與服務(wù)器之間實現(xiàn)的播放流媒體的業(yè)務(wù)流程實施例包括如下步驟首先,客戶端獲取用戶發(fā)送的播放流媒體的請求。具體地,該步驟可以通過以下方法實現(xiàn)用戶通過點擊瀏覽器中的界面向瀏覽器發(fā)送播放請求,瀏覽器接收到用戶輸入的播放請求,向服務(wù)器發(fā)送該播放請求。然后,客戶端判斷是否已經(jīng)下載了與流媒體對應(yīng)的M3U8文件,如果沒有下載則從服務(wù)器下載M3U8文件,并且解析出媒體文件的URL信息,如果已經(jīng)下載,則進入下一步流程。接著,通過客戶端上的瀏覽器來獲取所解析出的當(dāng)前播放的媒體文件的URL信息,并根據(jù)該媒體文件的URL信息從服務(wù)器查詢得到對應(yīng)的媒體文件。最后,通過客戶端上的瀏覽器來調(diào)用媒體播放器,從而播放服務(wù)器上的媒體文件??蛻舳藢3U8文件循環(huán)進行上述步驟的操作,以完成對整個頁面M3U8文件的下載、解析,用于供用戶播放。圖4是根據(jù)圖3所示的實施例的播放流媒體的方法的業(yè)務(wù)需求圖。具體的,如圖4所示,根據(jù)本申請的客戶端上所實現(xiàn)的播放流媒體的業(yè)務(wù)流程實現(xiàn)方法,瀏覽器對象和播放對象的調(diào)用順序包括如下步驟(I)用戶客戶端調(diào)用播放函數(shù),向服務(wù)器發(fā)送播放流媒體的請求。具體操作方法如上述對圖3描述中的客戶端獲取用戶發(fā)送的播放請求的步驟。(2)瀏覽器判斷是否需要下載與流媒體對應(yīng)的M3U8文件,其中,如果沒有下載該M3U8文件,則需要下載M3U8文件,如果客戶端已經(jīng)存儲有該M3U8文件,則不需要重復(fù)下載。具體地,在執(zhí)行上述步驟S103之前,瀏覽器判斷是否需要下載M3U8文件,根據(jù)判斷結(jié)果對該M3U8文件進行相應(yīng)的處理,即如果沒有下載該M3U8文件,則下載M3U8文件,如果客戶端已經(jīng)存儲有該M3U8文件,則無需重復(fù)下載。(3 )解析下載到的M3U8文件。(4)通過上步驟中的解析過程,從而獲取媒體文件的URL信息,該URL信息對應(yīng)可以實現(xiàn)播放的媒體文件。具體地,通過步驟(3)和(4)可以實現(xiàn)圖2所示的步驟S105。 (5)瀏覽器調(diào)用播放器,播放當(dāng)前URL信息對應(yīng)的媒體文件。具體地,根據(jù)本申請的上述實施例,用戶使用Android系統(tǒng)自帶的瀏覽器,切換到iPhone的User-Agent (即在瀏覽器里設(shè)置瀏覽器標(biāo)識為iPhone),然后訪問http://www.qiyi. com,會出現(xiàn)視頻播放失敗情況。在使用本申請的播放流媒體的方法的瀏覽器時進行同樣的User-Agent設(shè)置,然后訪問http://www. qiyi. com,會出現(xiàn)播放界面,播放頁面提示用戶在加載視頻,然后開始播放。其中,客戶端瀏覽器的播放界面優(yōu)選是全屏的播放界面。之所以有這樣的區(qū)別,是因為Android系統(tǒng)自帶的瀏覽器會得到一個M3U8文件(即索引文件)的鏈接地址,并且嘗試把這個文件當(dāng)作媒體文件來進行播放,由于Android系統(tǒng)自帶的瀏覽器無法解析M3U8文件,就會播放失敗。然而,采用本申請的播放流媒體的方法的瀏覽器,會判斷訪問到的音視頻文件是否是M3U8文件。具體地,客戶端可以根據(jù)該鏈接地址(即URL信息)中含有m3u8字樣判斷該文件是M3U8格式文件,客戶端可以根據(jù)該鏈接地址的video/audio標(biāo)簽傳遞的codec為application/x-mpeg判斷該音視頻文件是M3U8文件。如果判定上述鏈接地址是M3U8格式,根據(jù)本申請的上述實施例,客戶端的瀏覽器會對前述鏈接地址指向的M3U8文件進行下載及解析,從而可以根據(jù)解析到M3U8中的媒體文件的URL信息(鏈接地址信息)調(diào)用播放器播放URL信息對應(yīng)的媒體文件。具體地,在M3U8文件中,每一行都是一個單位,這些單位可以是URL,也可以是“#EXTINF”或者“#EXTM3U”,其中,“#EXTM3U”是文件頭,表明這個文件類型,“#EXTINF”用于表示緊跟著一行有效URL所指向媒體文件的播放時長。對于“#EXTINF”或者“#EXTM3U”這兩個參數(shù),客戶端在解析的時候不關(guān)心,在判斷文件頭有效以后,就循環(huán)地解析出非“#”號開始的行,當(dāng)作媒體文件的URL存放起來,以供用戶播放。需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。圖5是根據(jù)本發(fā)明的實施例的播放流媒體的裝置的結(jié)構(gòu)示意圖。圖6是根據(jù)圖5所示的實施例的播放流媒體的裝置的結(jié)構(gòu)示意圖。如圖5和圖6所示,本申請的播放流媒 體的裝置包括第一獲取模塊10、第一下載模塊30、第一解析模塊50和第一播放模塊70。具體地,第一獲取模塊10,用于獲取用戶用于播放流媒體文件的播放請求;第一下載模塊30,用于根據(jù)播放請求從服務(wù)器下載與流媒體對應(yīng)的M3U8文件;第一解析模塊50,用于解析M3U8文件,以獲取M3U8文件中的一條或多條URL信息;第一播放模塊70,用于根據(jù)獲取到的各個URL信息來播放每條URL信息所對應(yīng)的媒體文件。其中,第一獲取模塊10、第一下載模塊30以及第一解析模塊50可以優(yōu)選安裝在客戶端的瀏覽器中,第一播放模塊70可以優(yōu)選安裝在播放器中。優(yōu)選地,在本申請的上述實施例中,第一播放模塊70還可以包括第二獲取模塊701,用于從服務(wù)器上獲取與各個URL信息所對應(yīng)的媒體文件;第二播放模塊703,用于播放媒體文件。根據(jù)本申請的播放流媒體的裝置,通過采用第一獲取模塊、第一下載模塊、第一解析模塊和第一播放模塊,使得非Apple用戶客戶端根據(jù)播放流媒體的請求從服務(wù)器上下載與流媒體對應(yīng)的M3U8文件,并對下載到的M3U8文件進行解析,從而可以獲取到需要播放的媒體文件在該M3U8文件中保存的鏈接地址,然后通過媒體文件的鏈接地址(即URL信息)來訪問服務(wù)器,在獲取到該M3U8文件中保存的鏈接地址之后,可以通過下載該鏈接地址對應(yīng)的媒體文件并交由系統(tǒng)媒體播放器來播放,或者從服務(wù)器上獲取并播放該URL信息對應(yīng)的媒體文件,解決了現(xiàn)有技術(shù)中非Apple用戶客戶端由于不能解析AppleHTTP Live Streaming媒體播放方案中M3U8文件的列表格式,因而不能支持Apple HTTPLive Streaming播放方案的問題,從而實現(xiàn)了非Apple系列智能手機對Apple HTTP LiveStreaming播放方案的支持。在本發(fā)明的播放流媒體的裝置實施例中,該裝置還可以包括第一判斷模塊,用于判斷客戶端是否存在M3U8文件;第二下載模塊,用于下載M3U8文件。其中,如果客戶端不存在M3U8文件,則直接進入解析模塊,進入解析M3U8文件的流程。在本申請的上述實施例中,該裝置還可以包括第三獲取模塊,用于獲取用戶訪問網(wǎng)頁的訪問請求;第二解析模塊,用于根據(jù)訪問請求解析網(wǎng)頁的HTML,以獲取video標(biāo)簽或audio標(biāo)簽及video標(biāo)簽或audio標(biāo)簽指向的鏈接地址;第二判斷模塊,用于判斷與鏈接地址所對應(yīng)的第一文件是否是M3U8文件;第一標(biāo)記模塊,用于在所述第二判斷模塊判斷出第一文件是M3U8文件時,標(biāo)記第一文件為M3U8文件,以供用戶播放;第三播放模塊,用于在所述第二判斷模塊判斷出第一文件不是M3U8文件時,直接播放第一文件。
在本發(fā)明的播放流媒體的裝置實施例中,該裝置還可以包括第一判斷模塊,用于判斷客戶端是否存在M3U8文件;第二下載模塊,用于下載M3U8文件。其中,如果客戶端不存在M3U8文件,則直接進入解析模塊,進入解析M3U8文件的流程。優(yōu)選地,第二判斷模塊還可以包括第三判斷模塊,用于根據(jù)鏈接地址的后綴判斷URL的MME類型是否是M3U8,其中,如果MME類型是M3U8,則確定第一文件是M3U8文件,如果MME類型不是M3U8,則確定第一文件不是M3U8文件。根據(jù)本申請的播放流媒體的系統(tǒng)實施例,該系統(tǒng)包括瀏覽器,用于根據(jù)用戶播放流媒體的播放請求從服務(wù)器下載與流媒體對應(yīng)的M3U8文件,然后解析M3U8文件以獲取M3U8文件中的一條或多條URL信息,再根據(jù)獲取到的各個URL信息來調(diào)用播放器以播放每條URL信息所對應(yīng)的媒體文件。根據(jù)本申請?zhí)峁┑牟シ帕髅襟w的系統(tǒng),通過安裝在系統(tǒng)上的瀏覽器根據(jù)用戶播放流媒體的播放請求從服務(wù)器下載與流媒體對應(yīng)的M3U8文件,然后解析M3U8文件以獲取M3U8文件中的一條或多條URL信息,再根據(jù)獲取到的各個URL信息來調(diào)用播放器以播放每條URL信息所對應(yīng)的媒體文件,解決了現(xiàn)有技術(shù)中非Apple用戶客戶端不能解析AppleHTTP Live Streaming媒體播放方案中M3U8文件的列表格式,因而不能支持Apple HTTPLive Streaming播放方案的問題,從而實現(xiàn)了非Apple系列智能手機對Apple HTTP LiveStreaming播放方案的支持。從以上的描述中,可以看出,本發(fā)明上述的實施例實現(xiàn)了如下技術(shù)效果通過對 M3U8文件的下載和解析,把得到的真實的媒體文件的URL信息交由系統(tǒng)媒體播放器來播放,解決了現(xiàn)有技術(shù)中非Apple用戶客戶端不能解析M3U8文件的列表格式,不能播放M3U8文件的問題,從而實現(xiàn)了非Apple系列智能手機對Apple HTTP Live Streaming播放方案的支持。在非Apple系列手機的內(nèi)置媒體播放器不支持Apple HTTP Live Streaming格式(M3U8文件)的前提下,應(yīng)用本申請的方法及裝置,把識別M3U8文件的過程放到瀏覽器中處理,通過在客戶端下載并解析M3U8文件,然后把解析M3U8文件后獲取到的媒體文件的鏈接地址傳遞給媒體播放器,根據(jù)媒體文件的鏈接地址來播放媒體文件,進而實現(xiàn)了在非Apple平臺支持Apple HTTP Live Streaming格式的流媒體播放的功能。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種播放流媒體的方法,其特征在于,包括 獲取用戶用于播放流媒體的播放請求; 根據(jù)所述播放請求從服務(wù)器下載與所述流媒體對應(yīng)的M3U8文件,其中,所述M3U8文件包含有媒體文件的URL信息; 解析所述M3U8文件,獲取所述M3U8文件中的一條或多條URL信息; 根據(jù)獲取到的各個所述URL信息調(diào)用播放器播放每條URL信息所對應(yīng)的所述媒體文件。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,根據(jù)獲取到的各個URL信息調(diào)用播放器播放每條URL信息所對應(yīng)的媒體文件的步驟包括 從所述服務(wù)器上獲取與所述各個URL信息所對應(yīng)的媒體文件; 播放所述媒體文件。
3.根據(jù)權(quán)利要求I或2所述的方法,其特征在于,在獲取用戶用于播放流媒體的播放請求之前,所述方法還包括 獲取用戶訪問網(wǎng)頁的訪問請求; 根據(jù)所述訪問請求解析所述網(wǎng)頁的HTML,獲取video標(biāo)簽或audio標(biāo)簽及所述video標(biāo)簽或audio標(biāo)簽指向的鏈接地址; 判斷與所述鏈接地址所對應(yīng)的第一文件是否是M3U8文件,其中, 如果是,則標(biāo)記所述第一文件為M3U8文件,以供用戶播放; 如果不是,則直接播放第一文件。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,判斷與鏈接地址所對應(yīng)的第一文件是否是M3U8文件的步驟包括 根據(jù)所述鏈接地址的后綴判斷所述URL的MME類型是否是M3U8,其中, 如果所述MME類型是M3U8,則確定所述第一文件是M3U8文件; 如果所述MME類型不是M3U8,則確定所述第一文件不是M3U8文件。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在根據(jù)所述播放請求從服務(wù)器下載所述流媒體對應(yīng)的M3U8文件之前,所述方法還包括 判斷客戶端是否存在所述M3U8文件,其中, 如果所述客戶端不存在所述M3U8文件,則從所述服務(wù)器下載所述M3U8文件; 如果所述客戶端存在所述M3U8文件,則進入解析所述M3U8文件的步驟。
6.一種播放流媒體的裝置,其特征在于,包括 第一獲取模塊,用于獲取用戶用于播放流媒體的播放請求; 第一下載模塊,用于根據(jù)所述播放請求從服務(wù)器下載與所述流媒體對應(yīng)的M3U8文件; 第一解析模塊,用于解析所述M3U8文件,獲取所述M3U8文件中的一條或多條URL信息; 第一播放模塊,用于根據(jù)獲取到的各個所述URL信息播放每條URL信息所對應(yīng)的媒體文件。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述第一播放模塊包括 第二獲取模塊,用于從所述服務(wù)器上獲取與所述各個URL信息所對應(yīng)的媒體文件; 第二播放模塊,用于播放所述媒體文件。
8.根據(jù)權(quán)利要求6或7所述的裝置,其特征在于,所述裝置還包括 第三獲取模塊,用于獲取用戶訪問網(wǎng)頁的訪問請求; 第二解析模塊,用于根據(jù)所述訪問請求解析所述網(wǎng)頁的HTML,獲取video標(biāo)簽或audio標(biāo)簽及所述video標(biāo)簽或audio標(biāo)簽指向的鏈接地址; 第二判斷模塊,用于判斷與所述鏈接地址所對應(yīng)的第一文件是否是M3U8文件; 第一標(biāo)記模塊,用于在所述第二判斷模塊判斷出第一文件是M3U8文件時,標(biāo)記所述第一文件為M3U8文件,以供用戶播放; 第三播放模塊,用于在所述第二判斷模塊判斷出第一文件不是M3U8文件時,直接播放第一文件。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述第二判斷模塊包括 第三判斷模塊,用于根據(jù)所述鏈接地址的后綴判斷所述URL的MME類型是否是M3U8,其中,如果所述MME類型是M3U8,則確定所述第一文件是M3U8文件,如果所述MME類型不是M3U8,則確定所述第一文件不是M3U8文件。
10.一種播放流媒體的系統(tǒng),其特征在于,包括 瀏覽器,用于根據(jù)用戶播放流媒體的播放請求從服務(wù)器下載與所述流媒體對應(yīng)的M3U8文件,然后解析所述M3U8文件,獲取所述M3U8文件中的一條或多條URL信息,再根據(jù)獲取到的各個所述URL信息調(diào)用播放器播放每條URL信息所對應(yīng)的所述媒體文件。
全文摘要
本發(fā)明提供了一種播放流媒體的方法、裝置及系統(tǒng),其中,該方法包括獲取用戶用于播放流媒體文件的播放請求;根據(jù)播放請求從服務(wù)器下載與流媒體對應(yīng)的M3U8文件,其中,M3U8文件包含有媒體文件的URL信息;解析M3U8文件,獲取M3U8文件中的一條或多條URL信息;根據(jù)獲取到的各個URL信息調(diào)用播放器播放每條URL信息所對應(yīng)的媒體文件。通過本發(fā)明能夠解決現(xiàn)有技術(shù)中非Apple用戶客戶端不能播放M3U8文件的問題,從而實現(xiàn)了非Apple系列智能手機對Apple HTTP Live Streaming播放方案的支持。
文檔編號H04N21/858GK102843614SQ20121026556
公開日2012年12月26日 申請日期2012年7月27日 優(yōu)先權(quán)日2012年7月27日
發(fā)明者梁捷, 俞永福, 何小鵬, 朱順炎, 勞永超 申請人:優(yōu)視科技有限公司