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