本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種媒體播放方法及裝置。
背景技術(shù):
隨著移動互聯(lián)網(wǎng)的迅猛發(fā)展,OTT(Over The Top)技術(shù)的推廣以及各種智能終端設(shè)備的出現(xiàn),通過手機(jī)、掌上電腦、機(jī)頂盒等視頻終端在線收看視頻,成為人們越來越普遍的休閑娛樂方式。
Android OTT機(jī)頂盒的音視頻播放功能大都是基于安卓的多媒體框架實(shí)現(xiàn)的。安卓多媒體框架原聲的播放器主要有MidiFile、StagefrightPlayer、NuPlayer。MidiFile Player主要負(fù)責(zé)midi音頻文件的播放,StagefrightPlayer主要用來播放本地文件,NuPlayer主要用來網(wǎng)絡(luò)文件播放,包括超文本傳輸協(xié)議(HyperText Transfer Protocol,簡稱為HTTP)LiveSource和實(shí)時流傳輸協(xié)議(Real Time Streaming Protocol,簡稱為RTSP)Source兩個source,目前主要支持RTSP和http這兩種協(xié)議文件的播放。
而交互式網(wǎng)絡(luò)電視(Internet Protocol Television,簡稱為IPTV)機(jī)頂盒發(fā)展到現(xiàn)在已經(jīng)比較成熟了,對應(yīng)播放器支持的傳輸協(xié)議比較完善:網(wǎng)絡(luò)組管理協(xié)議(Internet Group Management Protocol,簡稱為IGMP)、RTSP、HTTP、和實(shí)時傳輸協(xié)議(Real-time Transport Protocol,簡稱為RTP)等協(xié)議都支持。另外,IPTV上支持的前向糾錯碼(Forward Error Correction簡稱FEC)、自動誤差矯正(Automatic Error Request,簡稱為ARQ)恢復(fù),頻道快切(fast channel change,簡稱為FCC)、組播和時移相互切換等功能,目前安卓多媒體框架上原生的播放器都是不支持的。
針對相關(guān)技術(shù)中,安卓系統(tǒng)里不支持IPTV播放器來播放媒體的問題,尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述技術(shù)問題,本發(fā)明提供了一種媒體播放方法及裝置。
根據(jù)本發(fā)明的一個方面,提供了一種媒體播放方法,包括:獲取安卓系統(tǒng)中待播放的媒體;根據(jù)所述安卓系統(tǒng)中擴(kuò)展的交互式網(wǎng)絡(luò)電視IPTV播放器來播放所述待播放的媒體。
優(yōu)選地,根據(jù)所述安卓系統(tǒng)中擴(kuò)展的交互式網(wǎng)絡(luò)電視IPTV播放器來播放所述待播放的媒體之前,所述方法還包括:在所述安卓系統(tǒng)的播放器中擴(kuò)充一個指定類,其中,該指定類用于支持IPTV播放器的播放器功能。
優(yōu)選地,根據(jù)所述IPTV播放器來播放所述安卓系統(tǒng)中待播放的媒體,包括:
獲取所述待播放的媒體的統(tǒng)一資源定位符URL;根據(jù)所述URL判斷所述待播放的視頻是否需要所述IPTV播放器播放;如果是,則根據(jù)所述IPTV播放器來播放所述安卓系統(tǒng)中待播放的媒體。
優(yōu)選地,根據(jù)所述IPTV播放器來播放所述安卓系統(tǒng)中待播放的媒體之前,還包括:獲取所述待播放的媒體的播放數(shù)據(jù);對所述播放數(shù)據(jù)進(jìn)行播放預(yù)處理。
優(yōu)選地,對所述播放數(shù)據(jù)進(jìn)行播放預(yù)處理之后,還包括:
將經(jīng)過播放預(yù)處理后的播放數(shù)據(jù)發(fā)送至解碼器,其中,該解碼器根據(jù)所述經(jīng)過播放預(yù)處理后的播放數(shù)據(jù)進(jìn)行媒體播放。
優(yōu)選地,所述播放預(yù)處理包括:前向糾錯FEC、頻道快切FCC。
根據(jù)本發(fā)明的另一個方面,還提供了一種媒體播放裝置,包括:第一獲取模塊,用于獲取安卓系統(tǒng)中待播放的媒體;播放模塊,與所述獲取模塊連接,用于根據(jù)所述安卓系統(tǒng)中擴(kuò)展的交互式網(wǎng)絡(luò)電視IPTV播放器來播放所述待播放的媒體。
優(yōu)選地,所述裝置還包括:擴(kuò)充模塊,與所述播放模塊連接,用于在安卓系統(tǒng)的播放器中擴(kuò)充一個指定類,其中,該指定類用于支持交互式網(wǎng)絡(luò)電視IPTV播放器的播放器功能。
優(yōu)選地,所述播放模塊,包括:獲取單元,用于獲取所述待播放的媒體的統(tǒng)一資源定位符URL;判斷單元,用于根據(jù)所述URL判斷所述待播放的視頻是否需要所述IPTV播放器播放;播放單元,用于在需要所述IPTV播放器播放時,根據(jù)所述IPTV播放器來播放所述安卓系統(tǒng)中待播放的媒體。
優(yōu)選地,所述裝置,還包括:第二獲取模塊,用于獲取所述待播放的媒體的播放數(shù)據(jù);
預(yù)處理模塊,與所述第二獲取模塊連接,用于對所述播放數(shù)據(jù)進(jìn)行播放預(yù)處理。
通過本發(fā)明,通過根據(jù)安卓系統(tǒng)中擴(kuò)展的IPTV播放器來播放待播放的視頻的技術(shù)方案,解決了相關(guān)技術(shù)中,安卓系統(tǒng)里不支持IPTV播放器來播放媒體的問題,提出了一種將IPTV播放器快速融合到安卓多媒體框架的方法,擴(kuò)充安卓多媒體框架的協(xié)議支持和數(shù)據(jù)質(zhì)量恢復(fù)功能。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
圖1為根據(jù)本發(fā)明實(shí)施例的媒體播放方法的流程圖;
圖2為根據(jù)本發(fā)明實(shí)施例的媒體播放裝置的結(jié)構(gòu)框圖;
圖3為根據(jù)本發(fā)明實(shí)施例的媒體播放裝置的另一結(jié)構(gòu)框圖;
圖4為根據(jù)本發(fā)明實(shí)施例的媒體播放裝置的又一結(jié)構(gòu)框圖;
圖5為現(xiàn)有技術(shù)中的安卓多媒體框架框圖;
圖6為根據(jù)本發(fā)明優(yōu)選實(shí)施例一的IPTV播放器的結(jié)構(gòu)框圖。
具體實(shí)施方式
下文中將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互組合。
本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
在本發(fā)明實(shí)施例中,還提供了一種媒體播放方法,圖1為根據(jù)本發(fā)明實(shí)施例的媒體播放方法的流程圖,如圖1所示,包括以下步驟:
步驟S102,獲取安卓系統(tǒng)中待播放的媒體;
步驟S104,根據(jù)上述安卓系統(tǒng)中擴(kuò)展的IPTV播放器來播放所述待播放的媒體。
通過上述各個步驟,通過根據(jù)安卓系統(tǒng)中擴(kuò)展的IPTV播放器來播放待播放的視頻的技術(shù)方案的技術(shù)方案,解決了相關(guān)技術(shù)中,安卓系統(tǒng)里自帶的播放器支持的協(xié)議有限進(jìn)而無法支持IPTV媒體播放的問題,提出了一種將IPTV播放器快速融合到安卓多媒體框架的方法,擴(kuò)充安卓多媒體框架的協(xié)議支持和數(shù)據(jù)質(zhì)量恢復(fù)功能。
可選地,根據(jù)所述安卓系統(tǒng)中擴(kuò)展的交互式網(wǎng)絡(luò)電視IPTV播放器來播放所述待播放的媒體之前,上述方法還包括:在安卓系統(tǒng)的播放器中擴(kuò)充一個指定類,其中,該指定類用于支持IPTV播放器的播放器功能。
步驟S104的實(shí)現(xiàn)方式是多種的,在本發(fā)明實(shí)施例的一個可選示例中,可以通過以下方案實(shí)現(xiàn):獲取上述待播放的媒體的統(tǒng)一資源定位符URL;根據(jù)上述URL判斷上述待播放的視頻是否需要上述IPTV播放器播放;如果是,則根據(jù)上述IPTV播放器來播放上述安卓系統(tǒng)中待播放的媒體,像igmp://,http://,rtsp://這種格式的URL,會優(yōu)先選擇IPTV播放器播放。
在根據(jù)IPTV播放器來播放上述安卓系統(tǒng)中待播放的媒體之前,還可以執(zhí)行以下技術(shù)方案:獲取待播放的媒體的播放數(shù)據(jù);對播放數(shù)據(jù)進(jìn)行播放預(yù)處理,將經(jīng)過播放預(yù)處理后的播放數(shù)據(jù)發(fā)送至解碼器,其中,該解碼器根據(jù)經(jīng)過播放預(yù)處理后的播放數(shù)據(jù)進(jìn)行媒體播放,在本發(fā) 明實(shí)施例中,上述播放預(yù)處理包括:前向糾錯FEC、頻道快切FCC。
需要說明的是,對于前述的各方法實(shí)施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動作和模塊并不一定是本發(fā)明所必需的。
在本實(shí)施例中還提供了一種媒體播放裝置,用于實(shí)現(xiàn)上述實(shí)施例及優(yōu)選實(shí)施方式,已經(jīng)進(jìn)行過說明的不再贅述,下面對該裝置中涉及到的模塊進(jìn)行說明。如以下所使用的,術(shù)語“模塊”可以實(shí)現(xiàn)預(yù)定功能的軟件和/或硬件的組合。盡管以下實(shí)施例所描述的裝置較佳地以軟件來實(shí)現(xiàn),但是硬件,或者軟件和硬件的組合的實(shí)現(xiàn)也是可能并被構(gòu)想的。圖2為根據(jù)本發(fā)明實(shí)施例的媒體播放裝置的結(jié)構(gòu)框圖。如圖2所示,該裝置包括:
第一獲取模塊20,用于獲取安卓系統(tǒng)中待播放的媒體;
播放模塊22,與第一獲取模塊20連接,用于根據(jù)所述安卓系統(tǒng)中擴(kuò)展的交互式網(wǎng)絡(luò)電視IPTV播放器來播放所述待播放的媒體。
通過上述各個模塊的綜合應(yīng)用,通過根據(jù)安卓系統(tǒng)中擴(kuò)展的IPTV播放器來播放待播放的視頻的技術(shù)方案的技術(shù)方案的技術(shù)方案,解決了相關(guān)技術(shù)中,安卓系統(tǒng)里自帶的播放器支持的協(xié)議有限進(jìn)而無法支持IPTV媒體播放的問題,提出了一種將IPTV播放器快速融合到安卓多媒體框架的方法,擴(kuò)充安卓多媒體框架的協(xié)議支持和數(shù)據(jù)質(zhì)量恢復(fù)功能。
在一個可選示例中,圖3為根據(jù)本發(fā)明實(shí)施例的媒體播放裝置的另一結(jié)構(gòu)框圖,如圖3所示,上述裝置還包括:擴(kuò)充模塊24,與上述播放模塊22連接,用于在安卓系統(tǒng)的播放器中擴(kuò)充一個指定類,其中,該指定類用于支持交互式網(wǎng)絡(luò)電視IPTV播放器的播放器功能。
為了更好的實(shí)現(xiàn)播放模塊22的功能,如圖3所示,播放模塊22還可以包括:
獲取單元220,用于獲取待播放的媒體的統(tǒng)一資源定位符URL;判斷單元222,與獲取單元220連接,用于根據(jù)URL判斷上述待播放的視頻是否需要IPTV播放器播放;播放單元224,與判斷單元222連接,用于在需要IPTV播放器播放時,根據(jù)IPTV播放器來播放上述安卓系統(tǒng)中待播放的媒體。
圖4為根據(jù)本發(fā)明實(shí)施例的媒體播放裝置的又一結(jié)構(gòu)框圖,如圖4所示,上述裝置,還包括:第二獲取模塊26,用于獲取待播放的媒體的播放數(shù)據(jù);預(yù)處理模塊28,與第二獲取模塊26連接,用于對播放數(shù)據(jù)進(jìn)行播放預(yù)處理,上述裝置,還包括:發(fā)送模塊30,與預(yù)處理模塊28連接,用于將經(jīng)過播放預(yù)處理后的播放數(shù)據(jù)發(fā)送至解碼器,其中,該解碼器根據(jù)上述經(jīng)過播放預(yù)處理后的播放數(shù)據(jù)進(jìn)行媒體播放。
在本發(fā)明實(shí)施例中,上述預(yù)處理模塊的播放預(yù)處理包括:前向糾錯FEC、頻道快切FCC。
為了更好的理解上述媒體播放過程,以下結(jié)合優(yōu)選實(shí)施例對上述技術(shù)方案進(jìn)行說明,如下所述:
優(yōu)選實(shí)施例一
本發(fā)明優(yōu)選實(shí)施例一能盡量復(fù)用IPTV播放器的系統(tǒng)框架和代碼,完成OTT機(jī)頂盒對IPTV功能的支持,縮短軟件開發(fā)周期。
首先,簡單介紹一下安卓多媒體框架的核心MediaPlayer,如圖5所示,在各個庫中,libmedia.so位于核心的位置,它對上層的提供的接口主要是MediaPlayer類,類libmedia_jni.so通過調(diào)用MediaPlayer類提供對JAVA的接口,并且實(shí)現(xiàn)了android.media.MediaPlayer類。
libmediaplayerservice.so是Media的服務(wù)器,它通過繼承l(wèi)ibmedia.so的類實(shí)現(xiàn)服務(wù)器的功能,而libmedia.so中的另外一部分內(nèi)容則通過進(jìn)程間通訊和libmediaplayerservice.so進(jìn)行通訊。libmediaplayerservice.so的真正功能通過調(diào)用StageFrighterPlayer來完成。
基于安卓原生框架的播放命令時序:建立數(shù)據(jù)源(setdatasource)、準(zhǔn)備(prepare)、開始(start)、停止(stop)。
本發(fā)明優(yōu)選實(shí)施例一的大致流程如下:
1、在MediaPlayer中擴(kuò)充一個IptvAgent類(相當(dāng)于上述實(shí)施例中的指定類),與Nuplayer和stagefright平級,用來支持IPTV播放器的功能,這個IptvAgent充當(dāng)一個播放器代理的角色,如圖6所示,IptvAgent和安卓原生播放器,與播放器控制模塊之間通過事件反饋的形式完成交互過程,這里IptvAgent可以充當(dāng)一個播放器代理的角色。
2、在setdatasource階段,根據(jù)URL區(qū)分,對適合的節(jié)目選擇IptvAgent進(jìn)行播放。
3、在IptvAgent中完成安卓多媒體框架播放接口和IPTV播放器的對外接口的轉(zhuǎn)換與對接。
4、在IptvAgent中完成IPTV播放器上報事件和安卓多媒體框架標(biāo)準(zhǔn)事件的轉(zhuǎn)換。
優(yōu)選實(shí)施例二
步驟1:IPTV播放器可以是一個獨(dú)立的進(jìn)程,也可以以一個動態(tài)庫方式存在;
步驟2:安裝包(APK)下發(fā)播放消息,setdadatasource接口中攜帶的是一個組播地址;
步驟3:在libmediaplayerservice.so中根據(jù)url,選擇IptvAgent播放器進(jìn)行播放;
步驟4:IptvAgent發(fā)送播放消息給IPTV播放器,真正進(jìn)行媒體播放,具備FEC、FCC等功能;
步驟5:IPTV播放器下載數(shù)據(jù),進(jìn)行數(shù)據(jù)預(yù)處理(比如FEC,F(xiàn)CC等);
步驟6:IPTV播放器將數(shù)據(jù)送給解碼器進(jìn)行播放。
需要說明的是,上述步驟的順序并不用來限定本發(fā)明優(yōu)選實(shí)施例一的任何順序,只是用來解釋本發(fā)明優(yōu)選實(shí)施例一所涉及到的技術(shù)方案。
綜上所述,本發(fā)明實(shí)施例達(dá)到了以下技術(shù)效果:解決了相關(guān)技術(shù)中,安卓系統(tǒng)里自帶的 播放器支持的協(xié)議有限進(jìn)而無法支持IPTV媒體播放的問題,提出了一種將IPTV播放器快速融合到安卓多媒體框架的方法,擴(kuò)充安卓多媒體框架的協(xié)議支持和數(shù)據(jù)質(zhì)量恢復(fù)功能。
在另外一個實(shí)施例中,還提供了一種軟件,該軟件用于執(zhí)行上述實(shí)施例及優(yōu)選實(shí)施方式中描述的技術(shù)方案。
在另外一個實(shí)施例中,還提供了一種存儲介質(zhì),該存儲介質(zhì)中存儲有上述軟件,該存儲介質(zhì)包括但不限于:光盤、軟盤、硬盤、可擦寫存儲器等。
需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的對象在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實(shí)現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。