本發(fā)明涉及直播視頻播放領(lǐng)域,具體涉及一種基于云端適配播放器的TV端播放直播視頻的方法及系統(tǒng)。
背景技術(shù):
在TV(television,電視機(jī))端播放直播視頻時(shí),常規(guī)的電視和機(jī)頂盒設(shè)備上難以持續(xù)正常播放直播視頻、或出現(xiàn)播放卡頓、聲音和畫(huà)面不同步等問(wèn)題,出現(xiàn)上述問(wèn)題的原因在于:
(1)TV端播放器的類(lèi)型眾多,TV端系統(tǒng)的自帶播放器、開(kāi)源第三方播放器和自主研發(fā)的播放器之間沒(méi)有良好的自動(dòng)適配機(jī)制,進(jìn)而導(dǎo)致播放器匹配錯(cuò)亂。
(2)當(dāng)TV端的設(shè)備進(jìn)行更新時(shí),播放器無(wú)法同步更新配置。
與此同時(shí),在TV端播放直播視頻時(shí),會(huì)出現(xiàn)繁多且復(fù)雜的播放模式,讓用戶(hù)自行嘗試調(diào)整,但是用戶(hù)難以將播放模式調(diào)整為最佳播放模式,進(jìn)而導(dǎo)致用戶(hù)體驗(yàn)較差。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明解決的技術(shù)問(wèn)題為:在播放直播視頻的過(guò)程中,快速適配TV端的播放器,進(jìn)而保證直播視頻的正常播放,不僅顯著提高了直播視頻的播放質(zhì)量,而且降低了單個(gè)TV端的適配研發(fā)資源成本。
為達(dá)到以上目的,本發(fā)明提供的基于云端適配播放器的TV端播放直播視頻的方法,包括以下步驟:
步驟A:服務(wù)端根據(jù)TV端的唯一設(shè)備標(biāo)識(shí),向TV端返回播放信息,TV端判斷當(dāng)前播放信息是否正確,若是,轉(zhuǎn)到步驟B;否則請(qǐng)求服務(wù)端返回默認(rèn)播放模式、并將默認(rèn)播放模式作為當(dāng)前播放模式,轉(zhuǎn)到步驟C;
步驟B:TV端判斷當(dāng)前播放信息中是否存在指定播放模式,若是,TV端根據(jù)指定播放模式播放直播視頻,結(jié)束;否則將當(dāng)前播放信息中的優(yōu)先播放模式作為當(dāng)前播放模式后,轉(zhuǎn)到步驟C;
步驟C:TV端根據(jù)當(dāng)前播放模式播放直播視頻,判斷是否播放異常,若是,轉(zhuǎn)到步驟D,否則TV端將當(dāng)前播放模式保存至本地,服務(wù)端將當(dāng)前播放模式設(shè)置為當(dāng)前TV端的的指定播放模式,結(jié)束;
步驟D:TV端在所述當(dāng)前播放信息中輪詢(xún)下一個(gè)播放模式,若下一個(gè)播放模式存在,則將下一個(gè)播放模式作為當(dāng)前播放模式后,重新執(zhí)行步驟C;若下一個(gè)播放模式不存在,則轉(zhuǎn)到步驟E;
步驟E:TV端向服務(wù)端發(fā)送播放異常消息,服務(wù)端對(duì)當(dāng)前TV端進(jìn)行異常標(biāo)記,結(jié)束。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
(1)與現(xiàn)有技術(shù)中沒(méi)有良好的自動(dòng)適配機(jī)制的TV端播放器相比,本發(fā)明在播放直播視頻的過(guò)程中,通過(guò)TV端匹配和輪詢(xún)播放模式的方式,實(shí)現(xiàn)快速適配TV端的播放器,進(jìn)而保證直播視頻的正常播放,不僅顯著提高了直播視頻的播放質(zhì)量,而且降低了單個(gè)TV端的適配研發(fā)資源成本。
與此同時(shí),本發(fā)明自動(dòng)適配TV端的播放器,進(jìn)而能夠自動(dòng)用最佳播放模式來(lái)播放直播視頻,用戶(hù)體驗(yàn)較好。
(2)本發(fā)明預(yù)先為主流的電視廠商和盒子廠商設(shè)置了TV設(shè)備播放模式信息數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)中包括電視廠商或盒子廠商的播放信息,播放信息能夠與TV端的設(shè)備進(jìn)行同步更新,以此實(shí)現(xiàn)TV端大數(shù)據(jù)壁壘。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例中的基于云端適配播放器的TV端播放直播視頻的方法流程圖。
具體實(shí)施方式
以下結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。
參見(jiàn)圖1所示,本發(fā)明實(shí)施例中的基于云端適配播放器的TV端播放直播視頻的方法,包括以下步驟:
S1:在服務(wù)端上預(yù)先配置TV Model Info數(shù)據(jù)庫(kù)(TV設(shè)備播放模式信息數(shù)據(jù)庫(kù)),該數(shù)據(jù)庫(kù)中包括每個(gè)主流的電視廠商(例如TCL、Hisense、ChangHong、Skyworth、XiaoMi、LeTV等)和盒子廠商的播放信息,播放信息包括Device Id(設(shè)備唯一標(biāo)識(shí))、TV Name(TV端設(shè)備型號(hào))、Andrid Version(Android版本號(hào))、App Version(應(yīng)用版本)、Play Model(播放模式)等基礎(chǔ)信息,Play Model包括初始播放模式和TV端正常運(yùn)行后保存的指定播放模式,初始播放模式包括優(yōu)先播放模式和其他播放模式。
例如TCL_RQ電視的TV Name為DX253C6ZX-tE16RV,Andrid Version為Android4.0系統(tǒng),App Version為Version1.7,指定播放模式和優(yōu)先播放模式均為系統(tǒng)播放器播放(例如IJK硬解播放器),其他播放模式為自主研發(fā)的播放器播放和第三方播放器播放。
S2:TV端上的直播APP啟動(dòng)時(shí),TV端在本地SharedPreference(本地儲(chǔ)存文件)中判斷是否存在播放模式,若是,則直接根據(jù)該播放模式播放直播視頻(讀取和初始化SharedPreference后播放),結(jié)束;否則轉(zhuǎn)到S3。
S3:TV端向服務(wù)端發(fā)起帶有當(dāng)前TV端的Device Id的http請(qǐng)求(即播放模式獲取請(qǐng)求);服務(wù)端在TV Model Info數(shù)據(jù)庫(kù)中確定與當(dāng)前TV端的Device Id對(duì)應(yīng)的播放信息后,向TV端返回當(dāng)前播放信息;TV端判斷當(dāng)前播放信息是否正確,若是,轉(zhuǎn)到S4;否則請(qǐng)求服務(wù)端返回默認(rèn)播放模式、并將默認(rèn)播放模式作為當(dāng)前播放模式,轉(zhuǎn)到S5。
S3中判斷當(dāng)前播放信息是否正確的具體流程為:
S301:獲取當(dāng)前TV端的Build.Brand信息(主板信息)和Build.Model信息(類(lèi)型信息),根據(jù)Build.Brand信息和Build.Model信息,確定當(dāng)前TV端的TV Name;
S302:通過(guò)Build.VERSION.SDK_INT(軟件工具開(kāi)發(fā)包的版本號(hào)),確定當(dāng)前TV端的Andrid Version;
S303:判斷所述當(dāng)前播放信息中的TV Name和Andrid Version,是否與當(dāng)前TV端的TV Name和Andrid Version相同,若是,則確定當(dāng)前播放信息與當(dāng)前TV端正確,否則確定當(dāng)前播放信息與當(dāng)前TV端錯(cuò)誤。
S4:TV端判斷當(dāng)前播放信息中是否存在指定播放模式,若是,TV端根據(jù)指定播放模式播放直播視頻,結(jié)束;否則TV端將當(dāng)前播放信息中的優(yōu)先播放模式作為當(dāng)前播放模式后,轉(zhuǎn)到S5。
S5:TV端根據(jù)當(dāng)前播放模式播放直播視頻,判斷是否播放異常(播放卡頓、聲音和畫(huà)面不同步等),若是,轉(zhuǎn)到S7,否則轉(zhuǎn)到S6。
S6:TV端將當(dāng)前播放模式保存至SharedPreference中(以后每次播放都從SharedPreference中讀取該播放模式播放);TV端向服務(wù)端發(fā)起帶有當(dāng)前播放模式的播放成功信息,服務(wù)端在TV Model Info數(shù)據(jù)庫(kù)中,將當(dāng)前播放模式設(shè)置為當(dāng)前TV端的的指定播放模式(以供其他型號(hào)相同的TV端播放時(shí)直接調(diào)用),結(jié)束。
S7:TV端輪詢(xún)下一個(gè)播放模式,若下一個(gè)播放模式存在,則將下一個(gè)播放模式作為當(dāng)前播放模式后,重新執(zhí)行S5;若下一個(gè)播放模式不存在,則轉(zhuǎn)到S8。
S7中下一個(gè)播放模式具體指:若當(dāng)前播放模式為默認(rèn)播放模式,則沒(méi)有下一個(gè)播放模式(即不存在);若當(dāng)前播放模式為優(yōu)先播放模式,則下一個(gè)播放模式為其他播放模式中的第一個(gè)。
S8:TV端向服務(wù)端發(fā)送帶有TV Name的播放異常消息,服務(wù)端在TV Model Info數(shù)據(jù)庫(kù)中與當(dāng)前TV Name對(duì)應(yīng)之處進(jìn)行異常標(biāo)記,結(jié)束。
本發(fā)明實(shí)施例中的實(shí)現(xiàn)上述方法的基于云端適配播放器的TV端播放直播視頻的系統(tǒng),包括設(shè)置于服務(wù)端上的播放模式信息數(shù)據(jù)庫(kù)創(chuàng)建模塊、播放模式下發(fā)模塊、播放模式保存模塊和異常標(biāo)記模塊;還包括設(shè)置于TV端上的本地播放模式判斷模塊、播放信息匹配模塊、指定播放模式判斷模塊、播放測(cè)試模塊和播放模式輪詢(xún)模塊。
服務(wù)端的播放模式信息數(shù)據(jù)庫(kù)創(chuàng)建模塊用于:創(chuàng)建播放模式信息數(shù)據(jù)庫(kù),播放模式信息數(shù)據(jù)庫(kù)中包括TV端的播放信息,播放信息包括TV端的Device Id、TV Name、Andrid Version、App Version和Play Model,Play Model包括初始播放模式和指定播放模式,初始播放模式包括優(yōu)先播放模式和其他播放模式。
TV端的本地播放模式判斷模塊用于:當(dāng)TV端上的直播APP啟動(dòng)時(shí),判斷是否存在儲(chǔ)存于本地的播放模式,若是,根據(jù)本地播放模式播放直播視頻;否則向播放信息匹配模塊發(fā)送工作信號(hào)。
TV端的播放信息匹配模塊用于:收到工作信號(hào)后,向服務(wù)端的播放模式下發(fā)模塊上傳TV端的唯一設(shè)備標(biāo)識(shí);收到播放模式下發(fā)模塊下發(fā)的播放信息(包括優(yōu)先播放模式和其他播放模式)后,判斷播放信息是否正確,若是,向指定播放模式判斷模塊發(fā)送指定判斷信息;否則向播放模式下發(fā)模塊返回匹配錯(cuò)誤信息;收到播放模式下發(fā)模塊返回的默認(rèn)播放模式后,將默認(rèn)播放模式作為當(dāng)前播放模式發(fā)送至播放測(cè)試模塊。
播放信息匹配模塊判斷播放信息是否正確的具體流程為:根據(jù)當(dāng)前TV端的主板信息和類(lèi)型信息,確定當(dāng)前TV端的TV Name;通過(guò)軟件工具開(kāi)發(fā)包的版本號(hào),確定當(dāng)前TV端的Andrid Version;判斷播放信息中的TV Name和Andrid Version,是否與當(dāng)前TV端的TV Name和Andrid Version相同,若是,則確定播放信息正確,否則確定播放信息錯(cuò)誤。
服務(wù)端的播放模式下發(fā)模塊用于:收到TV端的播放信息匹配模塊上傳的唯一設(shè)備標(biāo)識(shí)后,根據(jù)唯一設(shè)備標(biāo)識(shí),向播放信息匹配模塊下發(fā)播放信息;收到播放信息匹配模塊返回的匹配錯(cuò)誤信息后,向播放信息匹配模塊下發(fā)默認(rèn)播放模式。
TV端的指定播放模式判斷模塊用于:收到播放信息匹配模塊發(fā)送的指定判斷信息后,判斷播放信息匹配模塊收到的播放信息中,是否存在指定播放模式,若是,根據(jù)指定播放模式播放直播視頻;否則將播放信息中的優(yōu)先播放模式作為當(dāng)前播放模式、并發(fā)送至播放測(cè)試模塊;
TV端的播放測(cè)試模塊用于:收到當(dāng)前播放模式后,根據(jù)當(dāng)前播放模式播放直播視頻,判斷是否播放異常,若是,向播放模式輪詢(xún)模塊發(fā)送播放模式輪詢(xún)信息,否則將當(dāng)前播放模式進(jìn)行保存、并向服務(wù)端的播放模式保存模塊發(fā)送當(dāng)前播放模式;
服務(wù)端的播放模式保存模塊用于:收到TV端的播放測(cè)試模塊發(fā)送的當(dāng)前播放模式后,將當(dāng)前播放模式保存為當(dāng)前TV端的的指定播放模式;
TV端的播放模式輪詢(xún)模塊用于:收到播放測(cè)試模塊發(fā)送的播放模式輪詢(xún)信息后,在播放信息匹配模塊收到的播放信息中,輪詢(xún)下一個(gè)播放模式;下一個(gè)播放模式是指:若當(dāng)前播放模式為默認(rèn)播放模式,則下一個(gè)播放模式不存在;若當(dāng)前播放模式為優(yōu)先播放模式,則下一個(gè)播放模式為所述播放信息中輪詢(xún)到的第一個(gè)其他播放模式。若下一個(gè)播放模式存在,則將下一個(gè)播放模式作為當(dāng)前播放模式、并發(fā)送至播放測(cè)試模塊;若下一個(gè)播放模式不存在,則向服務(wù)端的異常標(biāo)記模塊發(fā)送播放異常信息;
服務(wù)端的異常標(biāo)記模塊用于:收到TV端的播放模式輪詢(xún)模塊發(fā)送的播放異常信息后,對(duì)當(dāng)前TV端進(jìn)行異常標(biāo)記。
進(jìn)一步,本發(fā)明不局限于上述實(shí)施方式,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也視為本發(fā)明的保護(hù)范圍之內(nèi)。本說(shuō)明書(shū)中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。