一種支持組播流的媒體播放方法、裝置及機頂盒的制作方法
【技術領域】
[0001] 本發明涉及機頂盒的媒體播放技術,尤其涉及一種支持組播流的媒體播放方法、 裝置及機頂盒。
【背景技術】
[0002] 相關技術中,通過互聯網獲得媒體播放數據的機頂盒,尤其是基于安卓(Android) 系統的機頂盒,只限于支持超文本傳輸協議(Hyper Text Transfer Protocol,HTTP)、超文 本實時流傳輸協議(Http Live Streaming, HLS)、以及實時流協議(Real Time Streaming Protocol, RTSP)等幾項基本的協議,并不支持基于組播的互聯網組管理協議(Internet Group Management Protocol, IGMP)〇
[0003] 因此,在眾多媒體服務器發送組播流的業務環境下,為了廣泛地應用機頂盒,有必 要在機頂盒中增加對IGMP協議的支持,以使機頂盒實現支持組播流的媒體播放能力。
【發明內容】
[0004] 有鑒于此,本發明實施例期望提供一種支持組播流的媒體播放方法、裝置及機頂 盒,能夠使機頂盒實現支持組播流的媒體播放能力。
[0005] 為達到上述目的,本發明實施例的技術方案是這樣實現的:
[0006] 本發明實施例提供一種支持組播流的媒體播放方法,該方法包括:
[0007] 接收媒體資源請求;
[0008] 對所述媒體資源請求進行地址過濾解析,獲取解析結果;
[0009] 當所述解析結果為組播地址時,開啟組播接收開關;
[0010] 利用發送互聯網組管理協議報文請求的方式加入組播并接收組播數據;
[0011] 發送所述組播數據,以響應媒體資源請求。
[0012] 上述方案中,所述方法還包括:在接收媒體資源請求之前,預先設置組播接收開 關。
[0013] 上述方案中,所述預先設置組播接收開關包括:通過自定義的開關按鍵或者服務 的方式設置打開無線連接中接收組播數據的開關。
[0014] 上述方案中,所述利用發送互聯網組管理協議報文請求的方式加入組播并接收組 播數據包括:通過調用Java開發包所提供的基本類和第一子類的方式來實現加入組播并 接收組播數據。
[0015] 上述方案中,所述發送所述組播數據,以響應媒體資源請求包括:通過調用Java 開發包所提供的第二子類的方式來響應媒體資源請求。
[0016] 本發明實施例還提供一種支持組播流的媒體播放裝置,該裝置包括:請求接收模 塊、解析模塊、執行模塊、組播數據接收模塊、以及發送模塊;其中,
[0017] 所述請求接收模塊,用于接收媒體資源請求;
[0018] 所述解析模塊,用于對所述媒體資源請求進行地址過濾解析,獲取解析結果;
[0019] 所述執行模塊,用于當所述解析結果為組播地址時,開啟組播接收開關;
[0020] 所述組播數據接收模塊,用于利用發送互聯網組管理協議報文請求的方式加入組 播并接收組播數據;
[0021] 所述發送模塊,用于發送所述組播數據,以響應媒體資源請求。
[0022] 上述方案中,所述裝置還包括設置模塊;其中,
[0023] 所述設置模塊,用于預先設置組播接收開關。
[0024] 上述方案中,所述設置模塊用于,通過自定義的開關按鍵或者服務的方式設置打 開無線連接中接收組播數據的開關。
[0025] 上述方案中,所述組播數據接收模塊用于,通過調用Java開發包所提供的基本類 和第一子類的方式來實現加入組播并接收組播數據。
[0026] 上述方案中,所述發送模塊用于,通過調用Java開發包所提供的第二子類的方式 來響應媒體資源請求。
[0027] 本發明實施例又提供一種機頂盒,該機頂盒包括支持組播流的媒體播放裝置;其 中,
[0028] 所述支持組播流的媒體播放裝置用于,接收媒體資源請求;對所述媒體資源請求 進行地址過濾解析,獲取解析結果;當所述解析結果為組播地址時,開啟組播接收開關;利 用發送互聯網組管理協議報文請求的方式加入組播并接收組播數據;發送所述組播數據, 以響應媒體資源請求。
[0029] 上述方案中,所述支持組播流的媒體播放裝置還用于,在接收媒體資源請求之前, 預先設置組播接收開關。
[0030] 上述方案中,所述支持組播流的媒體播放裝置用于,通過自定義的開關按鍵或者 服務的方式設置打開無線連接中接收組播數據的開關。
[0031] 上述方案中,所述支持組播流的媒體播放裝置用于,通過調用Java開發包所提供 的基本類和第一子類的方式來實現加入組播并接收組播數據。
[0032] 上述方案中,所述支持組播流的媒體播放裝置用于,通過調用Java開發包所提供 的第二子類的方式來響應媒體資源請求。
[0033] 本發明實施例所提供的支持組播流的媒體播放方法、裝置及機頂盒,接收媒體資 源請求;對所述媒體資源請求進行地址過濾解析,獲取解析結果;當所述解析結果為組播 地址時,開啟組播接收開關;利用發送IGMP協議報文請求的方式加入組播并接收組播數 據;發送所述組播數據,以響應媒體資源請求。如此,在機頂盒中增加對IGMP協議的支持, 以使機頂盒實現支持組播流的媒體播放能力。
【附圖說明】
[0034] 圖1為本發明基于支持組播流的媒體播放的機頂盒的組網圖;
[0035] 圖2為本發明實施例支持組播流的媒體播放方法的實現流程示意圖;
[0036] 圖3為本發明實施例支持組播流的媒體播放裝置的組成結構示意圖。
【具體實施方式】
[0037] 在本發明實施例中,接收媒體資源請求;對所述媒體資源請求進行地址過濾解析, 獲取解析結果;當所述解析結果為組播地址時,開啟組播接收開關;利用發送IGMP協議報 文請求的方式加入組播并接收組播數據;發送所述組播數據,以響應媒體資源請求。
[0038] 下面結合附圖及具體實施例對本發明再作進一步詳細的說明。
[0039] 圖1是本發明基于支持組播流的媒體播放的機頂盒的組網圖,如圖1所示,路由器 連接媒體服務器,每個路由器可以與多個交換機連接,每個交換機也可以與多個機頂盒連 接。這里,機頂盒的網絡連接方式可以為無線連接方式,如無線保真(wifi)連接,或有線連 接方式,如以太網(ethernet)連接。
[0040] 如圖1所示,機頂盒、交換機、以及路由器之間包含有基于IGMP協議的報文交互, 具體包括IGMP report (報告)報文,IGMP query (查詢)報文,以及IGMP leave (離開) 報文;其中,機頂盒通過發送IGMP report報文發起一個連接請求,以加入到所要觀看節目 的組播組中;路由器周期性的發送IGMP query報文來查詢組播組情況,交換機接到IGMP query報文后,發送IGMP report報文到路由器,以使路由器通過IGMP report報文及時 獲知機頂盒是否已加入組播組,從而防止部分處于異常掉線狀態的機頂盒依然占用系統資 源;機頂盒通過向交換機發送IGMP leave報文的方式斷開連接,從而離開組播組。
[0041] 圖2為本發明實施例支持組播流的媒體播放方法的實現流程示意圖,如圖2所示, 本發明實施例支持組播流的媒體播放方法包括:
[0042] 步驟S100 :接收媒體資源請求;
[0043] 這里,當媒體播放器需要播放組播數據時,先通過HTTP方式向機頂盒發起媒體資 源請求。具體地,媒體服務器向機頂盒發送HTTP get請求消息,以發起媒體資源請求。
[0044] 步驟S101 :對所述媒體資源請求進行地址過濾解析,獲取解析結果;
[0045] 步驟S102 :當所述解析結果為組播地址時,開啟組播接收開關;
[0046] 這里,在本發明實施例實現步驟S100之前,需要預先設置組播接收開關。以機頂 盒的網絡連接方式為無線wifi連接為例,預先設置組播接收開關包括:通過自定義的開關 按鍵(apk)或者服務(service)的方式設置打開無線wifi連接中接收組播數據的開關,即 關閉無線wifi連接中固有的過濾組播包的能力。
[0047] 具體地,通過wifi Manager中的Multicast Lock來打開接收組播數據的開關:
[0048] wifi Manager
[0049] wifi Manage = (wifi Manager) get System Service (Context. WIFI_SERVICE);
[0050] multicast Lock = wifi Manager, create Multicast Lock ("multicast, test");
[0051] multicast Lock, acquire ();
[0052] 這里,需要說明的是,在設置組播接收開關過程中,需要在Manifest文件中加入 權限 android, permission. CHANGE_WIFI_MULTICAST_STATE。
[0053] 步驟S103 :利用發送IGMP報文請求的方式加入組播并接收組播數據;
[0054] 這里,所述利用發送互聯網組管理協議報文請求的方式加入組播并接收組播數據 包括:通過調用Java開發包所提供的基本類java. net. Datagram Socket和第一子類java-net. Multicast Socket 的方式來實現加入組播并接收組播數據。
[0055] 具體地,通過調用Java開發包所提供的基本類java. net. Datagram Socket和第 一子類java. net. Multicast Socket的方式來實現加入組播并接收組播數據包括:
[0056] Multicast Socket socket = new Multicast Socket (8032) ;//8032 為端口號
[0057] Inet Address address