本發(fā)明涉及電視終端領(lǐng)域,尤其涉及一種電視終端的視頻顯示方法及系統(tǒng)。
背景技術(shù):
在手機(jī)上實(shí)現(xiàn)視頻旋轉(zhuǎn),因手機(jī)的寬高固定,通過(guò)Android原生方案即可實(shí)現(xiàn)橫豎屏切換,目前通過(guò)多屏互動(dòng)協(xié)議可以將手機(jī)上的視頻推送到電視上播放,在線(xiàn)視頻推送到電視時(shí),會(huì)橫向顯示推送視頻,由硬件解碼實(shí)現(xiàn),不需進(jìn)行旋轉(zhuǎn)與拉伸處理。但是,手機(jī)拍攝視頻可分為橫向拍攝和豎向拍攝兩種拍攝模式,拍攝后的視頻長(zhǎng)寬比與電視不對(duì)應(yīng),當(dāng)通過(guò)多屏互動(dòng)推送手機(jī)拍攝視頻到智能電視時(shí),會(huì)出現(xiàn)因無(wú)法按比例縮放出現(xiàn)旋轉(zhuǎn)后被拉伸的情況。
另外,目前市場(chǎng)上手機(jī)旋轉(zhuǎn)視頻,一般采用軟件解碼,獲取視頻中目標(biāo)物體的位置信息確定出縮放前像素值與旋轉(zhuǎn)后像素值間的函數(shù)關(guān)系后進(jìn)行復(fù)雜的縮放旋轉(zhuǎn)運(yùn)算。由于縮放算法的復(fù)雜,針對(duì)視頻源的分辨率進(jìn)行縮放時(shí),需針對(duì)每一幀進(jìn)行縮放嚴(yán)重消耗智能電視的CPU,經(jīng)常出現(xiàn)花屏,黑屏與卡頓等問(wèn)題。
因此,現(xiàn)有技術(shù)還有待于改進(jìn)和發(fā)展。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問(wèn)題在于,針對(duì)現(xiàn)有技術(shù)的上述缺陷,提供一種電視終端的視頻顯示方法及系統(tǒng),從而解決當(dāng)前將手機(jī)錄制的視頻推送到的智能電視顯示時(shí),視頻顯示比例與智能電視不匹配,導(dǎo)致視頻被拉伸變形;而采用軟件解碼時(shí),由于縮放算法復(fù)雜,嚴(yán)重消耗智能電視的CPU,易出現(xiàn)花屏、黑屏和卡頓的問(wèn)題。
本發(fā)明解決技術(shù)問(wèn)題所采用的技術(shù)方案如下:
一種電視終端的視頻顯示方法,包括:
B、當(dāng)電視終端的視頻播放器接收到移動(dòng)終端發(fā)送的視頻URL地址時(shí),解碼當(dāng)前視頻的視頻信息,獲取當(dāng)前視頻需要旋轉(zhuǎn)的角度;
C、電視終端根據(jù)所述旋轉(zhuǎn)角度,旋轉(zhuǎn)當(dāng)前視頻得到旋轉(zhuǎn)后的視頻;
D、電視終端調(diào)用視頻旋轉(zhuǎn)顯示處理算法設(shè)置視頻顯示區(qū)域大小,并控制視頻播放器在調(diào)整大小后的視頻顯示區(qū)域內(nèi)顯示旋轉(zhuǎn)后的視頻。
所述的電視終端的視頻顯示方法,其中,所述步驟B之前還包括:
A1、增加視頻播放器的消息回調(diào)類(lèi)監(jiān)聽(tīng)器注冊(cè)到電視終端的系統(tǒng)層,用于當(dāng)視頻播放器預(yù)加載完成時(shí),回調(diào)通知視頻播放器解碼的相關(guān)信息;
A2、增加視頻播放器的視頻大小改變監(jiān)聽(tīng)類(lèi)注冊(cè)到電視終端的系統(tǒng)層,用于當(dāng)視頻播放大小改變時(shí),回調(diào)通知視頻播放器調(diào)整顯示區(qū)域大小。
所述的電視終端的視頻顯示方法,其中,所述步驟B具體包括:
B1、接收用戶(hù)指令控制移動(dòng)終端通過(guò)多屏互動(dòng)協(xié)議發(fā)送視頻的URL地址給電視終端的視頻播放器;
B2、當(dāng)接收到所述視頻的URL地址時(shí),系統(tǒng)層以當(dāng)前視頻URL地址為視頻數(shù)據(jù)源,解碼當(dāng)前視頻的視頻信息;
B3、根據(jù)解碼的當(dāng)前視頻的視頻信息,獲取當(dāng)前視頻需要旋轉(zhuǎn)的角度。
所述的電視終端的視頻顯示方法,其中,所述步驟C具體包括:
C1、系統(tǒng)層根據(jù)所述旋轉(zhuǎn)角度,采用軟件解碼旋轉(zhuǎn)當(dāng)前視頻得到旋轉(zhuǎn)后的視頻;
C2、消息回調(diào)類(lèi)監(jiān)聽(tīng)器回調(diào)采用軟件解碼視頻通知給視頻播放器;
C3、當(dāng)視頻播放器收到消息回調(diào)類(lèi)監(jiān)聽(tīng)器回調(diào)的采用軟件解碼視頻通知后,保存一軟解標(biāo)志位;
C4、視頻大小改變監(jiān)聽(tīng)類(lèi)回調(diào)調(diào)整顯示區(qū)域大小通知給視頻播放器。
所述的電視終端的視頻顯示方法,其中,所述步驟D具體包括:
D1、當(dāng)視頻播放器接收到視頻大小改變監(jiān)聽(tīng)類(lèi)回調(diào)的調(diào)整顯示區(qū)域大小通知時(shí),檢測(cè)是否保存有軟解標(biāo)志位;
D2、當(dāng)保存有軟解標(biāo)志位時(shí),視頻播放器調(diào)用視頻旋轉(zhuǎn)顯示處理算法設(shè)置視頻顯示區(qū)域大小;
D3、在調(diào)整大小后的視頻顯示區(qū)域內(nèi)顯示旋轉(zhuǎn)后的視頻。
所述的電視終端的視頻顯示方法,其中,所述視頻旋轉(zhuǎn)顯示處理算法為:
獲取電視終端的寬高分辨率和移動(dòng)終端發(fā)送的視頻的寬高;
設(shè)電視終端的寬高分辨率分別為Wt和Ht,設(shè)移動(dòng)終端發(fā)送的視頻的寬高分別為Wp和Hp;設(shè)視頻顯示區(qū)域的大小應(yīng)調(diào)整到的寬高分別為Wt1和Ht1,當(dāng)視頻按電視終端的寬高比例縮放時(shí),Wt/Ht = Wp/Hp,當(dāng)視頻被旋轉(zhuǎn)90°或270°時(shí),則變?yōu)閃t/Ht =Hp/Wp,此時(shí)按公式推算得出視頻在電視終端上的寬為Wp=Ht * Hp/ Wt;按同比例縮放原則,將Ht替換為Hp,則視頻顯示區(qū)域的寬應(yīng)調(diào)整為Wt1=Wp=Hp*Hp/Wt;而視頻顯示區(qū)域的高應(yīng)調(diào)整為Ht1=Ht;
創(chuàng)建一個(gè)顯示區(qū)域布局對(duì)象將視頻顯示區(qū)域的寬高設(shè)置到布局,最后設(shè)置視頻顯示區(qū)域大小并居中顯示。
一種電視終端的視頻顯示系統(tǒng),包括:
視頻信息提取模塊,用于當(dāng)電視終端的視頻播放器接收到移動(dòng)終端發(fā)送的視頻URL地址時(shí),解碼當(dāng)前視頻的視頻信息,獲取當(dāng)前視頻需要旋轉(zhuǎn)的角度;
視頻旋轉(zhuǎn)模塊,用于根據(jù)所述旋轉(zhuǎn)角度,旋轉(zhuǎn)當(dāng)前視頻得到旋轉(zhuǎn)后的視頻;
顯示區(qū)域調(diào)整模塊,用于調(diào)用視頻旋轉(zhuǎn)顯示處理算法設(shè)置視頻顯示區(qū)域大小,并控制視頻播放器在調(diào)整大小后的視頻顯示區(qū)域內(nèi)顯示旋轉(zhuǎn)后的視頻。
所述的電視終端的視頻顯示系統(tǒng),其中,所述視頻顯示系統(tǒng)還包括:
第一預(yù)先設(shè)置模塊,用于增加視頻播放器的消息回調(diào)類(lèi)監(jiān)聽(tīng)器注冊(cè)到電視終端的系統(tǒng)層;
第二預(yù)先設(shè)置模塊,用于增加視頻播放器的消息回調(diào)類(lèi)視頻大小改變監(jiān)聽(tīng)類(lèi)注冊(cè)到電視終端的系統(tǒng)層。
所述的電視終端的視頻顯示系統(tǒng),其中,所述視頻信息提取模塊包括:
視頻URL地址發(fā)送單元,用于接收用戶(hù)指令控制移動(dòng)終端通過(guò)多屏互動(dòng)協(xié)議發(fā)送視頻的URL地址給電視終端的視頻播放器;
視頻信息提取單元,用于當(dāng)接收到所述視頻的URL地址時(shí),以當(dāng)前視頻URL地址為視頻數(shù)據(jù)源,解碼當(dāng)前視頻的視頻信息;
旋轉(zhuǎn)角度獲取單元,用于根據(jù)解碼的當(dāng)前視頻的視頻信息,獲取當(dāng)前視頻需要旋轉(zhuǎn)的角度。
所述的電視終端的視頻顯示系統(tǒng),其中,所述視頻旋轉(zhuǎn)模塊包括:
視頻旋轉(zhuǎn)單元,用于根據(jù)所述旋轉(zhuǎn)角度,采用軟件解碼旋轉(zhuǎn)當(dāng)前視頻得到旋轉(zhuǎn)后的視頻;
第一回調(diào)通知單元,用于通過(guò)消息回調(diào)類(lèi)監(jiān)聽(tīng)器回調(diào)采用軟件解碼視頻通知給視頻播放器;
軟解標(biāo)志位保存單元,用于當(dāng)視頻播放器收到消息回調(diào)類(lèi)監(jiān)聽(tīng)器回調(diào)的采用軟件解碼視頻通知后,保存一軟解標(biāo)志位;
第二回調(diào)通知單元,用于通過(guò)視頻大小改變監(jiān)聽(tīng)類(lèi)回調(diào)調(diào)整顯示區(qū)域大小通知給視頻播放器;
所述顯示區(qū)域調(diào)整模塊包括:
檢測(cè)單元,用于當(dāng)視頻播放器接收到視頻大小改變監(jiān)聽(tīng)類(lèi)回調(diào)的調(diào)整顯示區(qū)域大小通知時(shí),檢測(cè)是否保存有軟解標(biāo)志位;
顯示區(qū)域調(diào)整單元,用于當(dāng)保存有軟解標(biāo)志位時(shí),通過(guò)視頻播放器調(diào)用視頻旋轉(zhuǎn)顯示處理算法設(shè)置視頻顯示區(qū)域大小;
視頻顯示單元,用于在調(diào)整大小后的視頻顯示區(qū)域內(nèi)顯示旋轉(zhuǎn)后的視頻。
綜上所述,本發(fā)明提供了一種電視終端的視頻顯示方法及系統(tǒng),所述電視終端的視頻顯示方法,包括:當(dāng)電視終端的視頻播放器接收到移動(dòng)終端發(fā)送的視頻URL地址時(shí),解碼當(dāng)前視頻的視頻信息,獲取當(dāng)前視頻需要旋轉(zhuǎn)的角度;電視終端根據(jù)所述旋轉(zhuǎn)角度,旋轉(zhuǎn)當(dāng)前視頻得到旋轉(zhuǎn)后的視頻;電視終端調(diào)用視頻旋轉(zhuǎn)顯示處理算法設(shè)置視頻顯示區(qū)域大小,并控制視頻播放器在調(diào)整大小后的視頻顯示區(qū)域內(nèi)顯示旋轉(zhuǎn)后的視頻。本發(fā)明所述電視終端的視頻顯示方法,能夠解決當(dāng)視頻文件畫(huà)面的長(zhǎng)寬與智能電視長(zhǎng)寬比不對(duì)應(yīng)時(shí),播放產(chǎn)生的畫(huà)面被拉伸變形的問(wèn)題,提升了播放器的播放質(zhì)量;同時(shí)本發(fā)明將縮放放在顯示層計(jì)算,無(wú)需通過(guò)復(fù)雜的視頻幀運(yùn)算,有效避免了智能電視出現(xiàn)花屏、黑屏及卡頓現(xiàn)象。
附圖說(shuō)明
圖1是本發(fā)明電視終端的視頻顯示方法較佳實(shí)施例的流程圖。
圖2是本發(fā)明電視終端的視頻顯示方法具體應(yīng)用實(shí)施例的流程圖。
圖3是本發(fā)明電視終端的視頻顯示系統(tǒng)較佳實(shí)施例的功能原理框圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚、明確,以下參照附圖并舉實(shí)施例對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
請(qǐng)參見(jiàn)圖1,圖1是本發(fā)明電視終端的視頻顯示方法較佳實(shí)施例的流程圖。圖1所示的電視終端的視頻顯示方法,包括:
步驟S200、當(dāng)電視終端的視頻播放器接收到移動(dòng)終端發(fā)送的視頻URL地址時(shí),解碼當(dāng)前視頻的視頻信息,獲取當(dāng)前視頻需要旋轉(zhuǎn)的角度;
步驟S300、電視終端根據(jù)所述旋轉(zhuǎn)角度,旋轉(zhuǎn)當(dāng)前視頻得到旋轉(zhuǎn)后的視頻;
步驟S400、電視終端調(diào)用視頻旋轉(zhuǎn)顯示處理算法設(shè)置視頻顯示區(qū)域大小,并控制視頻播放器在調(diào)整大小后的視頻顯示區(qū)域內(nèi)顯示旋轉(zhuǎn)后的視頻。
本發(fā)明實(shí)施例的電視終端為智能電視,移動(dòng)終端以手機(jī)為例進(jìn)行說(shuō)明,目前,智能電視的播放器對(duì)視頻進(jìn)行解碼的方法包括硬解和軟解;硬解就是硬件解碼,指利用GPU來(lái)代替CPU進(jìn)行解碼,而軟解就是軟件解碼,指利用軟件讓CPU來(lái)進(jìn)行解碼;兩者的主要區(qū)別在于:硬件解碼是將原來(lái)全部交由CPU來(lái)處理的視頻數(shù)據(jù)交由GPU來(lái)做,而GPU的并行運(yùn)算能力要遠(yuǎn)遠(yuǎn)高于CPU,這樣可以大大的降低對(duì)CPU的負(fù)載。尤其針對(duì)大文件或4K視頻時(shí)軟解很容易出現(xiàn)內(nèi)存不足(out of memory)。正如以上背景技術(shù)中所述,硬解不能對(duì)視頻進(jìn)行旋轉(zhuǎn),而軟解又容易導(dǎo)致視頻被拉伸變形;且由于軟解縮放算法復(fù)雜,嚴(yán)重消耗智能電視的CPU,易出現(xiàn)花屏、黑屏和卡頓等現(xiàn)象。因此本發(fā)明創(chuàng)造性的首先采用對(duì)視頻進(jìn)行旋轉(zhuǎn),再對(duì)智能電視的顯示區(qū)域大小進(jìn)行適應(yīng)性調(diào)整,從而很好的解決了以上技術(shù)問(wèn)題。
本發(fā)明在具體實(shí)施時(shí),可以先對(duì)智能電視的視頻播放器進(jìn)行初始化,當(dāng)用戶(hù)使用多屏互動(dòng)應(yīng)用向視頻播放器推送視頻時(shí),首先初始化視頻播放器的顯示區(qū)域,初始化多屏互動(dòng)的服務(wù),將視頻播放控制回調(diào)類(lèi)(VideoPlayControlCallback)實(shí)例綁定到多屏互動(dòng)服務(wù),用于多屏互動(dòng)的推送接口。同時(shí),本發(fā)明實(shí)施例新增視頻播放器的消息回調(diào)類(lèi)監(jiān)聽(tīng)器(OnInfoListener)注冊(cè)到智能電視的系統(tǒng)層(芯片),當(dāng)視頻播放器預(yù)加載完成時(shí),智能電視的系統(tǒng)層會(huì)回調(diào)通知視頻播放器解碼相關(guān)信息;本發(fā)明實(shí)施例還新增視頻播放器的視頻大小改變監(jiān)聽(tīng)類(lèi)(OnVideoSizeChangedListener)注冊(cè)到智能電視的系統(tǒng)層,當(dāng)視頻播放大小改變時(shí),系統(tǒng)會(huì)回調(diào)通知視頻播放器調(diào)整顯示區(qū)域大小,而智能電視的系統(tǒng)層實(shí)現(xiàn)部分由mstar、MTK、Amlogic等廠商的芯片實(shí)現(xiàn)。
因此,本發(fā)明實(shí)施例中,所述步驟S200之前還包括:
S110、增加視頻播放器的消息回調(diào)類(lèi)監(jiān)聽(tīng)器注冊(cè)到電視終端的系統(tǒng)層,用于當(dāng)視頻播放器預(yù)加載完成時(shí),回調(diào)通知視頻播放器解碼的相關(guān)信息。
S120、增加視頻播放器的視頻大小改變監(jiān)聽(tīng)類(lèi)注冊(cè)到電視終端的系統(tǒng)層,用于當(dāng)視頻播放大小改變時(shí),回調(diào)通知視頻播放器調(diào)整顯示區(qū)域大小。
在步驟S200中,當(dāng)智能電視的視頻播放器接收到手機(jī)發(fā)送的視頻URL地址時(shí),解碼當(dāng)前視頻的視頻信息,獲取當(dāng)前視頻需要旋轉(zhuǎn)的角度;本發(fā)明實(shí)施例中是以URL地址作為視頻數(shù)據(jù)源(DataSource),URL地址內(nèi)包含有大量視頻相關(guān)數(shù)據(jù),例如,視頻的長(zhǎng)度、拍攝角度、拍攝及上傳時(shí)間等,這些相關(guān)數(shù)據(jù)也即是視頻信息;如果拍攝角度為0°,也就是橫向拍攝,則在智能電視上播放時(shí)就不需要進(jìn)行視頻旋轉(zhuǎn),而當(dāng)拍攝角度為90°,也就是豎向拍攝,則在智能電視上播放時(shí)必然要進(jìn)行旋轉(zhuǎn)。需要說(shuō)明的是,硬解無(wú)法進(jìn)行旋轉(zhuǎn),而軟解可以,當(dāng)提取出拍攝角度為90°或270°時(shí),則當(dāng)前視頻播放需要旋轉(zhuǎn),也就是當(dāng)前視頻需要進(jìn)行軟解。
進(jìn)一步的,所述步驟S200具體包括:
S210、接收用戶(hù)指令控制移動(dòng)終端通過(guò)多屏互動(dòng)協(xié)議發(fā)送視頻的URL地址給電視終端的視頻播放器;所述的多屏互動(dòng)協(xié)議為常用的多屏互動(dòng)協(xié)議,例如,DLNA。
S220、當(dāng)接收到所述視頻的URL地址時(shí),系統(tǒng)層以當(dāng)前視頻URL地址為視頻數(shù)據(jù)源,解碼當(dāng)前視頻的視頻信息;在本發(fā)明實(shí)施例中實(shí)施時(shí),電視終端的視頻播放器接收并獲取推送的URL地址,將URL地址作為視頻數(shù)據(jù)源設(shè)置到系統(tǒng)層(芯片),調(diào)用播放方法,系統(tǒng)層開(kāi)始解析視頻信息,取得解碼后的視頻信息數(shù)據(jù)。
S230、根據(jù)解碼的當(dāng)前視頻的視頻信息,獲取當(dāng)前視頻需要旋轉(zhuǎn)的角度;在本發(fā)明實(shí)施例中實(shí)施時(shí),根據(jù)解析后的視頻信息數(shù)據(jù),提取當(dāng)前視頻拍攝時(shí)的角度,根據(jù)拍攝角度獲取當(dāng)前視頻需要旋轉(zhuǎn)的角度。
在步驟S300中,電視終端根據(jù)所述旋轉(zhuǎn)角度,旋轉(zhuǎn)當(dāng)前視頻得到旋轉(zhuǎn)后的視頻;在本發(fā)明實(shí)施例中實(shí)施時(shí),智能電視根據(jù)所述旋轉(zhuǎn)角度進(jìn)行旋轉(zhuǎn),旋轉(zhuǎn)的角度與拍攝角度相對(duì)應(yīng),例如拍攝時(shí)是豎直拍攝,拍攝角度為90°,則視頻播放時(shí)則要相應(yīng)的旋轉(zhuǎn)90°。
進(jìn)一步的,所述步驟S300具體包括:
S310、系統(tǒng)層根據(jù)所述旋轉(zhuǎn)角度,采用軟件解碼旋轉(zhuǎn)當(dāng)前視頻得到旋轉(zhuǎn)后的視頻;在本發(fā)明實(shí)施例中實(shí)施時(shí),由于拍攝的視頻因?yàn)橐D(zhuǎn)拉伸,硬解無(wú)法進(jìn)行旋轉(zhuǎn),只能使用軟解,因此系統(tǒng)層采用軟件解碼視頻,完成視頻旋轉(zhuǎn)。
S320、消息回調(diào)類(lèi)監(jiān)聽(tīng)器回調(diào)采用軟件解碼視頻通知給視頻播放器;在本發(fā)明實(shí)施例中實(shí)施時(shí),系統(tǒng)層對(duì)視頻旋轉(zhuǎn)完成的同時(shí),回調(diào)采用軟件解碼視頻通知給視頻播放器。
S330、當(dāng)視頻播放器收到消息回調(diào)類(lèi)監(jiān)聽(tīng)器回調(diào)的采用軟件解碼視頻通知后,保存一軟解標(biāo)志位;在本發(fā)明實(shí)施例中實(shí)施時(shí),系統(tǒng)層在旋轉(zhuǎn)完成的同時(shí),會(huì)回調(diào)通知到視頻播放器,此時(shí)系統(tǒng)層通知視頻播放器此視頻采用軟解,并調(diào)用注冊(cè)的消息回調(diào)類(lèi)監(jiān)聽(tīng)器,將軟件標(biāo)志位(VIDEO_DISPLAY_BY_SOFTWARE)返回到視頻播放器,視頻播放器收到后會(huì)保存一個(gè)軟解標(biāo)志位,用于標(biāo)識(shí)采用軟解方法解碼視頻。
S340、視頻大小改變監(jiān)聽(tīng)類(lèi)回調(diào)調(diào)整顯示區(qū)域大小通知給視頻播放器;在本發(fā)明實(shí)施例中實(shí)施時(shí),系統(tǒng)層在旋轉(zhuǎn)完成的同時(shí),也會(huì)回調(diào)調(diào)整顯示區(qū)域大小通知給視頻播放器,具體可以通過(guò)調(diào)用注冊(cè)的視頻大小改變監(jiān)聽(tīng)類(lèi),回調(diào)調(diào)整顯示區(qū)域大小通知給視頻播放器。
在步驟S400中,電視終端調(diào)用視頻旋轉(zhuǎn)顯示處理算法設(shè)置視頻顯示區(qū)域大小,并控制視頻播放器在調(diào)整大小后的視頻顯示區(qū)域內(nèi)顯示旋轉(zhuǎn)后的視頻;其中,所述視頻旋轉(zhuǎn)顯示處理算法(setVideoDisplayRotate)為:
獲取電視終端的寬高分辨率和移動(dòng)終端發(fā)送的視頻的寬高;設(shè)電視終端的寬高分辨率分別為Wt和Ht,設(shè)移動(dòng)終端發(fā)送的視頻的寬高分別為Wp和Hp;設(shè)視頻顯示區(qū)域的大小應(yīng)調(diào)整到的寬高分別為Wt1和Ht1,當(dāng)視頻按電視終端的寬高比例縮放時(shí),Wt/Ht = Wp/Hp,當(dāng)視頻被旋轉(zhuǎn)90°或270°時(shí),則變?yōu)閃t/Ht =Hp/Wp,此時(shí)按公式推算得出視頻在電視終端上的寬為Wp=Ht* Hp/ Wt(將手機(jī)轉(zhuǎn)換為電視寬高比);按同比例縮放原則,將Ht替換為Hp,則視頻顯示區(qū)域的寬應(yīng)調(diào)整為Wt1=Wp=Hp*Hp/Wt,而視頻顯示區(qū)域的高應(yīng)調(diào)整為Ht1=Ht(旋轉(zhuǎn)后視頻視圖的高應(yīng)為電視的高,視頻視圖的寬則為計(jì)算出來(lái)的Wp);創(chuàng)建一個(gè)顯示區(qū)域布局對(duì)象(LayoutParams )將視頻顯示區(qū)域的寬高設(shè)置到布局,最后設(shè)置視頻顯示區(qū)域大小并居中顯示。
其中,所述等比例縮放原則也就是視頻的寬與高的比等于智能電視分辨率寬與高的比;通過(guò)調(diào)用系統(tǒng)函數(shù)獲取電視寬高分辨率。
簡(jiǎn)單的說(shuō),視頻旋轉(zhuǎn)顯示處理算法(setVideoDisplayRotate),也就是先獲取電視終端的寬高分辨率和移動(dòng)終端發(fā)送的視頻的寬高,然后根據(jù)電視終端的寬高和視頻旋轉(zhuǎn)后的寬高,通過(guò)等比例縮放原則,計(jì)算得到旋轉(zhuǎn)后的視頻在電視終端上顯示所需區(qū)域的大小,最后根據(jù)計(jì)算得到的顯示所需區(qū)域的大小相應(yīng)設(shè)置電視終端視頻顯示區(qū)域的大小。
進(jìn)一步的,所述步驟S400具體包括:
S410、當(dāng)視頻播放器接收到視頻大小改變監(jiān)聽(tīng)類(lèi)回調(diào)的調(diào)整顯示區(qū)域大小通知時(shí),檢測(cè)是否保存有軟解標(biāo)志位;在本發(fā)明實(shí)施例中實(shí)施時(shí),是否保存有軟解標(biāo)志位決定了是否調(diào)用重新設(shè)置視頻顯示區(qū)域大小。
S420、當(dāng)保存有軟解標(biāo)志位時(shí),視頻播放器調(diào)用視頻旋轉(zhuǎn)顯示處理算法設(shè)置視頻顯示區(qū)域大??;在本發(fā)明實(shí)施例中實(shí)施時(shí),調(diào)用算法重新適應(yīng)性設(shè)置視頻顯示區(qū)域大小。
S430、在調(diào)整大小后的視頻顯示區(qū)域內(nèi)顯示旋轉(zhuǎn)后的視頻;在本發(fā)明實(shí)施例中實(shí)施時(shí),在重新設(shè)置的視頻顯示區(qū)域內(nèi)播放旋轉(zhuǎn)后的視頻。
本發(fā)明當(dāng)視頻顯示區(qū)域的視頻大小改變(VideoSizeChanged)時(shí),調(diào)用視頻旋轉(zhuǎn)顯示處理算法設(shè)置視頻顯示區(qū)域大小,通過(guò)改變視頻顯示區(qū)域大小,達(dá)到了視頻正常顯示的目的。
本發(fā)明還提供了一種電視終端的視頻顯示方法的具體應(yīng)用實(shí)施例, 如圖2所示,本具體實(shí)施例的電視終端的視頻顯示方法包括:
步驟S11、初始化布局區(qū)域;也即是預(yù)設(shè)視頻顯示區(qū)域;
步驟S12、綁定多屏互動(dòng)服務(wù);
步驟S13、初始化視頻播放器;
步驟S14、注冊(cè)O(shè)nInfoListener;
步驟S15、注冊(cè)O(shè)nVideoSizeChangedListener;
步驟S16、解析多屏互動(dòng)推送URL;
步驟S17、調(diào)用播放方法;
步驟S18、解碼視頻信息,即獲取旋轉(zhuǎn)角度;
步驟S19、判斷是否軟解,也即是判斷旋轉(zhuǎn)角度是否為零,當(dāng)否,則進(jìn)入步驟S20;當(dāng)是則進(jìn)入步驟S21;
步驟S20、硬解并拉全屏顯示到播發(fā)器;
步驟S21、獲取旋轉(zhuǎn)角度;
步驟S22、旋轉(zhuǎn)并通知播放器;
步驟S23、播放器保存軟解標(biāo)志位;
步驟S24、判斷是否有軟解標(biāo)志位,當(dāng)否,則進(jìn)入步驟S25;當(dāng)是,則進(jìn)入步驟S26;
步驟S25、結(jié)束;
步驟S26、獲取電視屏幕大小;
步驟S27、計(jì)算視頻顯示區(qū)域?qū)捀撸?/p>
步驟S28、設(shè)置到視頻顯示。
因此,本發(fā)明提供的電視終端的視頻顯示方法,當(dāng)手機(jī)豎向錄制視頻推送到的智能電視顯示而顯示比例與智能電視不匹配時(shí),通過(guò)在特定消息返回時(shí),按算法更改視頻顯示視圖區(qū)域大小,解決手機(jī)錄制的視頻推送到電視被拉伸全屏且圖像里的景物和人都?jí)旱煤鼙鈫?wèn)題,通過(guò)在特定回調(diào)消息中按算法改變視頻顯示區(qū)域大小,達(dá)到正常顯示手機(jī)推送視頻目的。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)與一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁盤(pán)、光盤(pán)、只讀存儲(chǔ)記憶體(Read-Only,ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory,RAM)等。
基于上述方法實(shí)施例,本發(fā)明實(shí)施例還提供了一種電視終端的視頻顯示系統(tǒng),如圖3所示,所述電視終端的視頻顯示系統(tǒng),包括:視頻信息提取模塊700、視頻旋轉(zhuǎn)模塊800和顯示區(qū)域調(diào)整模塊900,其中,
視頻信息提取模塊700,用于當(dāng)電視終端的視頻播放器接收到移動(dòng)終端發(fā)送的視頻URL地址時(shí),解碼當(dāng)前視頻的視頻信息,獲取當(dāng)前視頻需要旋轉(zhuǎn)的角度;具體如上所述。
視頻旋轉(zhuǎn)模塊800,用于根據(jù)所述旋轉(zhuǎn)角度,旋轉(zhuǎn)當(dāng)前視頻得到旋轉(zhuǎn)后的視頻;具體如上所述。
顯示區(qū)域調(diào)整模塊900,用于調(diào)用視頻旋轉(zhuǎn)顯示處理算法設(shè)置視頻顯示區(qū)域大小,并控制視頻播放器在調(diào)整大小后的視頻顯示區(qū)域內(nèi)顯示旋轉(zhuǎn)后的視頻;具體如上所述。
所述視頻顯示系統(tǒng)還包括:
第一預(yù)先設(shè)置模塊,用于增加視頻播放器的消息回調(diào)類(lèi)監(jiān)聽(tīng)器注冊(cè)到電視終端的系統(tǒng)層;具體如上所述。
第二預(yù)先設(shè)置模塊,用于增加視頻播放器的視頻大小改變監(jiān)聽(tīng)類(lèi)注冊(cè)到電視終端的系統(tǒng)層;具體如上所述。
進(jìn)一步的,所述視頻信息提取模塊700包括:
視頻URL地址發(fā)送單元,用于接收用戶(hù)指令控制移動(dòng)終端通過(guò)多屏互動(dòng)協(xié)議發(fā)送視頻的URL地址給電視終端的視頻播放器;具體如上所述。
視頻信息提取單元,用于當(dāng)接收到所述視頻的URL地址時(shí),以當(dāng)前視頻URL地址為視頻數(shù)據(jù)源,解碼當(dāng)前視頻的視頻信息;具體如上所述。
旋轉(zhuǎn)角度獲取單元,用于根據(jù)解碼的當(dāng)前視頻的視頻信息,獲取當(dāng)前視頻需要旋轉(zhuǎn)的角度;具體如上所述。
進(jìn)一步的,所述視頻旋轉(zhuǎn)模塊800包括:
視頻旋轉(zhuǎn)單元,用于根據(jù)所述旋轉(zhuǎn)角度,采用軟件解碼旋轉(zhuǎn)當(dāng)前視頻得到旋轉(zhuǎn)后的視頻;具體如上所述。
第一回調(diào)通知單元,用于通過(guò)消息回調(diào)類(lèi)監(jiān)聽(tīng)器回調(diào)采用軟件解碼視頻通知給視頻播放器;具體如上所述。
軟解標(biāo)志位保存單元,用于當(dāng)視頻播放器收到消息回調(diào)類(lèi)監(jiān)聽(tīng)器回調(diào)的采用軟件解碼視頻通知后,保存一軟解標(biāo)志位;具體如上所述。
第二回調(diào)通知單元,用于通過(guò)視頻大小改變監(jiān)聽(tīng)類(lèi)回調(diào)調(diào)整顯示區(qū)域大小通知給視頻播放器;具體如上所述。
進(jìn)一步的,所述顯示區(qū)域調(diào)整模塊900包括:
檢測(cè)單元,用于當(dāng)視頻播放器接收到視頻大小改變監(jiān)聽(tīng)類(lèi)回調(diào)的調(diào)整顯示區(qū)域大小通知時(shí),檢測(cè)是否保存有軟解標(biāo)志位;具體如上所述。
顯示區(qū)域調(diào)整單元,用于當(dāng)保存有軟解標(biāo)志位時(shí),通過(guò)視頻播放器調(diào)用視頻旋轉(zhuǎn)顯示處理算法設(shè)置視頻顯示區(qū)域大小;具體如上所述。
視頻顯示單元,用于在調(diào)整大小后的視頻顯示區(qū)域內(nèi)顯示旋轉(zhuǎn)后的視頻;具體如上所述。
綜上所述,本發(fā)明提供了一種電視終端的視頻顯示方法及系統(tǒng),所述電視終端的視頻顯示方法,包括:當(dāng)電視終端的視頻播放器接收到移動(dòng)終端發(fā)送的視頻URL地址時(shí),解碼當(dāng)前視頻的視頻信息,獲取當(dāng)前視頻需要旋轉(zhuǎn)的角度;電視終端根據(jù)所述旋轉(zhuǎn)角度,旋轉(zhuǎn)當(dāng)前視頻得到旋轉(zhuǎn)后的視頻;電視終端調(diào)用視頻旋轉(zhuǎn)顯示處理算法設(shè)置視頻顯示區(qū)域大小,并控制視頻播放器在調(diào)整大小后的視頻顯示區(qū)域內(nèi)顯示旋轉(zhuǎn)后的視頻。本發(fā)明所述電視終端的視頻顯示方法,能夠解決當(dāng)視頻文件畫(huà)面的長(zhǎng)寬與智能電視長(zhǎng)寬比不對(duì)應(yīng)時(shí),播放產(chǎn)生的畫(huà)面被拉伸變形的問(wèn)題,提升了播放器的播放質(zhì)量;同時(shí)本發(fā)明將縮放放在顯示層計(jì)算,無(wú)需通過(guò)復(fù)雜的視頻幀運(yùn)算,有效避免了智能電視出現(xiàn)花屏、黑屏及卡頓現(xiàn)象。
應(yīng)當(dāng)理解的是,本發(fā)明的應(yīng)用不限于上述的舉例,對(duì)本領(lǐng)域普通技術(shù)人員來(lái)說(shuō),可以根據(jù)上述說(shuō)明加以改進(jìn)或變換,所有這些改進(jìn)和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù)范圍。