本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其是涉及了一種源切換后片源續(xù)播方法。本發(fā)明同時(shí)還涉及一種智能電視。
背景技術(shù):
隨著科技的不斷發(fā)展,智能電視的功能變得日益強(qiáng)大。為了給用戶帶來更好的使用體驗(yàn),目前的智能電視均支持多源source模式。在將源添加至智能電視后,用戶可以在直播、影視、游戲、教育、媒體中心等不同的源之間進(jìn)行切換,以獲取針對(duì)性的視頻服務(wù)。因此,對(duì)于智能電視廠商來說,如何使智能電視的產(chǎn)品快速高效的實(shí)現(xiàn)不同source間的轉(zhuǎn)換,以及保證音視頻等片源轉(zhuǎn)換流暢性和舒適性,將會(huì)大大提高用戶的使用體驗(yàn),從而在一定程度上決定智能電視生產(chǎn)廠商在行業(yè)競(jìng)爭(zhēng)中的優(yōu)劣。
目前,直播、影視、游戲、教育、媒體中心等不同的源之間的類型并不相同,舉例來說,影視源的類型為MMP(Mutimedia Player,多媒體播放器),而游戲源的類型則為DTV(Digital TV,數(shù)字電視),但無論是從不同類型的源之間的切換還是相同類型的源之間的切換,現(xiàn)有技術(shù)的智能電視都會(huì)在多源source模式之間的切換時(shí)清空所有的緩存,因此也無法保證源切換時(shí)用戶觀看節(jié)目的流暢性。
如圖1、圖2所示,分別為現(xiàn)有技術(shù)中Source從MMP切換到DTV的流程示意圖以及現(xiàn)有技術(shù)中Source從DTV切換到MMP的流程示意圖。當(dāng)用戶向智能電視發(fā)出Source從MMP切換到DTV的指示后,首先DTV向RM(Resource Manager,資源管理器)發(fā)出消息,RM通知MMP執(zhí)行reset操作,此時(shí)智能電視釋放資源,flush(清空)buffer(緩存),記錄當(dāng)前播放位置;當(dāng)用戶向智能電視發(fā)出Source從DTV切換回到MMP的指示后,MMP通過向資源管理器RM申請(qǐng)資源,并執(zhí)行start操作,seek查找到指定位置(此時(shí)顯示loading狀態(tài)或某一靜止圖片),通過對(duì)片源進(jìn)行加載或解碼,將音視頻等數(shù)據(jù)存放到buffer中,然后讀取buffer中數(shù)據(jù)進(jìn)行顯示,從而使用戶在切換前看到的視頻實(shí)現(xiàn)續(xù)播。
由于用戶在使用智能電視的過程中若進(jìn)行多源source模式之間的切換時(shí)智能電視均會(huì)將當(dāng)前源對(duì)應(yīng)的緩存區(qū)域內(nèi)的數(shù)據(jù)刪除清空,僅僅只是記錄當(dāng)前播放位置,當(dāng)后續(xù)用戶從其他源切回原始觀看的源時(shí),智能電視需要對(duì)之前記錄的播放位置執(zhí)行seek操作,進(jìn)而恢復(fù)播放。然而,該Seek操作是基于I幀(即關(guān)鍵幀)進(jìn)行的,如果播放片源的I幀較少,會(huì)出現(xiàn)續(xù)播畫面與切source前畫面不連貫的情況(一般是快幾秒);其次,用戶切回后加載片源或視頻解碼是需要耗時(shí)的(加載與網(wǎng)速相關(guān),解碼一般需要1-2s),由此造成了由source切換導(dǎo)致的續(xù)播不流暢的問題,無法使得智能電視在多源模式之間的來回切換時(shí)保證片源內(nèi)容無縫銜接,影響了用戶的使用體驗(yàn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種源切換后片源續(xù)播方法及智能電視,通過播放緩存視頻數(shù)據(jù)以及根據(jù)緩存視頻數(shù)據(jù)在片源中的結(jié)束位置續(xù)播片源,避免因片源的I幀較少導(dǎo)致續(xù)播時(shí)的播放位置出現(xiàn)偏差使續(xù)播畫面不連貫,以及因加載耗時(shí)導(dǎo)致的續(xù)播畫面不流暢的問題,使智能電視在多源模式之間的來回切換時(shí)保證切換前后的視頻畫面連貫,保證片源內(nèi)容的連續(xù)性,提高用戶的使用體驗(yàn)。
為了達(dá)到上述目的,本發(fā)明提供一種源切換后片源續(xù)播方法,應(yīng)用于支持多源Source模式的智能電視,其特征在于,該方法包括:
當(dāng)所述智能電視從第一Source切換至第二Source時(shí),根據(jù)切換前播放的片源在切換時(shí)的播放位置,獲取并存儲(chǔ)在所述播放位置之后的緩存視頻數(shù)據(jù),所述緩存視頻數(shù)據(jù)的可播放時(shí)間大于所述片源的起播時(shí)間;
當(dāng)所述智能電視從所述第二Source切換回所述第一Source時(shí),播放所述緩存視頻數(shù)據(jù),并根據(jù)所述緩存視頻數(shù)據(jù)在所述片源中的結(jié)束位置續(xù)播所述片源。
另外,本發(fā)明實(shí)施例還提供了一種智能電視,其特征在于,該包括:
第一處理模塊,用于當(dāng)所述智能電視從第一Source切換至第二Source時(shí),根據(jù)切換前播放的片源在切換時(shí)的播放位置,獲取并存儲(chǔ)在所述播放位置之后的緩存視頻數(shù)據(jù),所述緩存視頻數(shù)據(jù)的可播放時(shí)間大于所述片源的起播時(shí)間;
第二處理模塊,用于當(dāng)所述智能電視從所述第二Source切換回所述第一Source時(shí),播放所述緩存視頻數(shù)據(jù),并根據(jù)所述緩存視頻數(shù)據(jù)在所述片源中的結(jié)束位置續(xù)播所述片源。
與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例所提出的技術(shù)方案的有益技術(shù)效果包括:
本發(fā)明提供了一種源切換后片源續(xù)播方法,當(dāng)智能電視從第一Source切換至第二Source時(shí),根據(jù)切換前播放的片源在切換時(shí)的播放位置獲取并存儲(chǔ)在播放位置之后的緩存視頻數(shù)據(jù),由于緩存視頻數(shù)據(jù)的可播放時(shí)間大于片源的起播時(shí)間,因此在當(dāng)智能電視從第二Source切換回第一Source時(shí),通過播放緩存視頻數(shù)據(jù)以及根據(jù)緩存視頻數(shù)據(jù)在片源中的結(jié)束位置續(xù)播片源,即可使智能電視在多源模式之間的來回切換時(shí)保證切換前后的視頻畫面連貫,保證片源內(nèi)容的連續(xù)性,提高了用戶的使用體驗(yàn)。
附圖說明
為了更清楚地說明本發(fā)明的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為現(xiàn)有技術(shù)中Source從MMP切換到DTV的流程示意圖;
圖2為現(xiàn)有技術(shù)中Source從DTV切換到MMP的流程示意圖;
圖3為本發(fā)明實(shí)施例所提出的source切換后片源快速續(xù)播的方法的流程示意圖;
圖4為本發(fā)明具體實(shí)施例所提出的Source從MMP切換到DTV的流程示意圖;
圖5為本發(fā)明具體實(shí)施例所提出的Source從DTV切換到MMP的流程示意圖;
圖6為本發(fā)明具體實(shí)施例所提出的計(jì)算緩存視頻數(shù)據(jù)中存儲(chǔ)數(shù)據(jù)容量的流程示意圖;
圖7為本發(fā)明實(shí)施例所提出一種具體應(yīng)用場(chǎng)景中source在切換后片源快速續(xù)播的方法的流程示意圖;
圖8為本發(fā)明實(shí)施例所提出的一種源切換后片源續(xù)播的裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
有鑒于本申請(qǐng)背景技術(shù)中所提到的問題,本發(fā)明提供了一種源切換后片源續(xù)播方法,通過播放緩存視頻數(shù)據(jù)以及根據(jù)緩存視頻數(shù)據(jù)在片源中的結(jié)束位置續(xù)播片源,避免因片源的I幀較少導(dǎo)致續(xù)播時(shí)的播放位置出現(xiàn)偏差使續(xù)播畫面不連貫,以及因加載耗時(shí)導(dǎo)致的續(xù)播畫面不流暢的問題,使智能電視在多源模式之間的來回切換時(shí)保證切換前后的視頻畫面連貫,保證片源內(nèi)容的連續(xù)性,提高用戶的使用體驗(yàn)。
如圖3所示,為本發(fā)明實(shí)施例所提出的source切換后片源快速續(xù)播的方法的流程示意圖,具體包括:
步驟S301、當(dāng)所述智能電視從第一Source切換至第二Source時(shí),根據(jù)切換前播放的片源在切換時(shí)的播放位置,獲取并存儲(chǔ)在所述播放位置之后的緩存視頻數(shù)據(jù),所述緩存視頻數(shù)據(jù)的可播放時(shí)間大于所述片源的起播時(shí)間。
正如本發(fā)明背景技術(shù)所陳述的,在現(xiàn)有技術(shù)中,多源source模式之間的切換均會(huì)將緩沖區(qū)域內(nèi)的數(shù)據(jù)清空,僅僅只是記錄當(dāng)前播放位置,當(dāng)后續(xù)用戶從其他源切回原始觀看的源時(shí),智能電視需要對(duì)之前記錄的播放位置執(zhí)行seek操作,進(jìn)而恢復(fù)播放。然而,該Seek操作是基于I幀(即關(guān)鍵幀)進(jìn)行的,如果播放片源的I幀較少,在Seek操作時(shí)就會(huì)基于當(dāng)前播放位置查詢到距離當(dāng)前播放位置較遠(yuǎn)的I幀,并從該I幀開始播放,導(dǎo)致出現(xiàn)續(xù)播畫面與切source前畫面不連貫的情況(例如:播放位置在視頻的53秒,但是由于片源的I幀較少,只有在50秒和55秒出存在I幀,在續(xù)播時(shí)就會(huì)根據(jù)查詢到的I幀進(jìn)行續(xù)播,也就是從50秒處或者55秒處開始續(xù)播,從而導(dǎo)致續(xù)播前后的畫面不連貫);其次,在用戶切回后加載片源或視頻解碼是需要耗時(shí)的(加載與網(wǎng)速相關(guān),解碼一般需要1-2s),由此造成了由source切換導(dǎo)致的續(xù)播不流暢的問題,無法使得智能電視在多源模式之間的來回切換時(shí)保證片源內(nèi)容無縫銜接,影響了用戶的使用體驗(yàn)。
為了解決該技術(shù)問題,本發(fā)明將視頻數(shù)據(jù)中當(dāng)前播放位置以及當(dāng)前播放位置之后的一段視頻數(shù)據(jù)進(jìn)行存儲(chǔ),以便后續(xù)可以直接利用該存儲(chǔ)的內(nèi)容進(jìn)行續(xù)播,這樣就可以有效避免因片源的I幀較少導(dǎo)致續(xù)播時(shí)的播放位置出現(xiàn)偏差使續(xù)播畫面不連貫,以及因加載耗時(shí)導(dǎo)致的續(xù)播畫面不流暢的問題。
基于上述說明,本發(fā)明在當(dāng)智能電視從第一Source切換至第二Source時(shí),根據(jù)切換前播放的片源在切換時(shí)的播放位置,獲取并存儲(chǔ)在所述播放位置之后的緩存視頻數(shù)據(jù),以便后續(xù)可以直接利用該存儲(chǔ)的內(nèi)容進(jìn)行續(xù)播。在具體的實(shí)施場(chǎng)景中,本發(fā)明中還可以設(shè)置一個(gè)臨時(shí)緩存區(qū),將確定的視頻數(shù)據(jù)存儲(chǔ)到該臨時(shí)緩存區(qū)中作為緩存視頻數(shù)據(jù),以便后續(xù)切換回來時(shí)可以直接利用該存儲(chǔ)的緩存視頻數(shù)據(jù)進(jìn)行續(xù)播,達(dá)到快速續(xù)播的目的,以改善用戶體驗(yàn),當(dāng)然,也可以將該確定的視頻數(shù)據(jù)存儲(chǔ)到其他存儲(chǔ)空間,具體的存儲(chǔ)方式并不會(huì)影響本發(fā)明的保護(hù)范圍,本發(fā)明提及的第一Source和第二Source具體可以是MMP和DTV,也可以是其他源,具體的限定方式也不會(huì)影響到本發(fā)明的保護(hù)范圍。
在本發(fā)明優(yōu)選實(shí)施例中,在執(zhí)行該步驟時(shí),還包括下述流程:
步驟A:當(dāng)片源第一次起播時(shí),獲取起播時(shí)間以及與片源對(duì)應(yīng)的播放碼率。
由于本發(fā)明的優(yōu)選實(shí)施例中需要對(duì)獲取的緩存視頻數(shù)據(jù)進(jìn)行計(jì)算以保證在續(xù)播時(shí)能夠達(dá)到播放要求,因此需要在第一次播放片源時(shí)獲取該片源的起播時(shí)間以及與片源對(duì)應(yīng)的播放碼率。
步驟B:根據(jù)切換前播放的片源在切換時(shí)的播放位置獲取并存儲(chǔ)在播放位置之后的視頻數(shù)據(jù),具體為:獲取在播放位置之后的首個(gè)I幀;判斷播放位置與首個(gè)I幀之間的視頻數(shù)據(jù)的可播放時(shí)間是否大于起播時(shí)間;若判斷結(jié)果為是,將視頻數(shù)據(jù)作為緩存視頻數(shù)據(jù)進(jìn)行存儲(chǔ);若判斷結(jié)果為否,繼續(xù)獲取首個(gè)I幀的下一個(gè)I幀,直至播放位置與下一個(gè)I幀之間的視頻數(shù)據(jù)的可播放時(shí)間大于起播時(shí)間。
由于本發(fā)明的優(yōu)選實(shí)施例中需要確定出在續(xù)播時(shí)的續(xù)播時(shí)間能夠滿足播放的要求,因此,需要對(duì)從當(dāng)前的播放位置向后獲取的視頻數(shù)據(jù)進(jìn)行判斷,只有滿足播放條件的視頻數(shù)據(jù)才可以確定為緩存視頻數(shù)據(jù)并進(jìn)行存儲(chǔ),這樣,在下一次進(jìn)行續(xù)播時(shí)就可以直接調(diào)用存儲(chǔ)的緩存視頻數(shù)據(jù),就可以有效避免因片源的I幀較少導(dǎo)致續(xù)播時(shí)的播放位置出現(xiàn)偏差使續(xù)播畫面不連貫,以及因加載耗時(shí)導(dǎo)致的續(xù)播畫面不流暢的問題。
在具體的應(yīng)用場(chǎng)景中,本發(fā)明判斷播放位置與I幀之間的視頻數(shù)據(jù)的可播放時(shí)間是否大于起播時(shí)間,具體為:獲取視頻數(shù)據(jù)的容量;根據(jù)容量以及播放碼率確定可播放時(shí)間;將可播放時(shí)間以及起播時(shí)間的時(shí)長(zhǎng)進(jìn)行對(duì)比;若可播放時(shí)間的時(shí)長(zhǎng)大于起播時(shí)間的時(shí)長(zhǎng),確認(rèn)可播放時(shí)間大于起播時(shí)間;若可播放時(shí)間的時(shí)長(zhǎng)不大于起播時(shí)間的時(shí)長(zhǎng),確認(rèn)可播放時(shí)間不大于起播時(shí)間。需要說明的是,判斷當(dāng)前播放位置與I幀之間的視頻數(shù)據(jù)的可播放時(shí)間可以依據(jù)之前獲取的起播時(shí)間以及與片源對(duì)應(yīng)的播放碼率,具體的可以如圖6所述,為本發(fā)明具體實(shí)施例所提出的計(jì)算緩存視頻數(shù)據(jù)中存儲(chǔ)數(shù)據(jù)容量的流程示意圖,在從當(dāng)前位置向后查找到I幀之后,從緩存數(shù)據(jù)中獲取當(dāng)前播放位置到該I幀之間的視頻數(shù)據(jù),然后根據(jù)該片源的碼率計(jì)算可播放時(shí)間(可播放時(shí)間=(視頻數(shù)據(jù)大小*8)/碼率),再將得出的可播放時(shí)間與起播時(shí)間進(jìn)行對(duì)比,確定出可播放時(shí)間大于起播時(shí)間的視頻數(shù)據(jù),將該視頻數(shù)據(jù)進(jìn)行存儲(chǔ)。
當(dāng)然,本發(fā)明所提及的步驟可能會(huì)因?yàn)榫唧w的應(yīng)用場(chǎng)景變化而變化,具體的實(shí)現(xiàn)流程可以有以下三種情況:
情況一、根據(jù)接收到的切換指令,先執(zhí)行查找I幀和存儲(chǔ)視頻數(shù)據(jù)的操作,再執(zhí)行切換Source操作。
情況二、根據(jù)接收到的切換指令,先執(zhí)行切換Source操作,再執(zhí)行查找I幀和存儲(chǔ)視頻數(shù)據(jù)的操作。
情況三、根據(jù)接收到的切換指令,同時(shí)執(zhí)行查找I幀和存儲(chǔ)視頻數(shù)據(jù)的操作和執(zhí)行切換Source操作。
其中,在上述三種情況之后,均需要執(zhí)行flush buffer(清空緩存區(qū))、release decoder(釋放解碼器)、record position(記錄位置)等操作。
上述的三種情況各自具有一定的優(yōu)勢(shì)和缺陷,在實(shí)際應(yīng)用中,可以根據(jù)需要進(jìn)行選擇設(shè)置,這樣的變化并不會(huì)影響本發(fā)明的保護(hù)范圍。
步驟S302、當(dāng)所述智能電視從所述第二Source切換回所述第一Source時(shí),播放所述緩存視頻數(shù)據(jù),并根據(jù)所述緩存視頻數(shù)據(jù)在所述片源中的結(jié)束位置續(xù)播所述片源。
根據(jù)步驟S301的闡述,本發(fā)明在當(dāng)接收到從第二Source切換回第一Source時(shí),可以根據(jù)之前存儲(chǔ)的緩存視頻數(shù)據(jù)進(jìn)行續(xù)播,這樣就效避了免因片源的I幀較少導(dǎo)致續(xù)播時(shí)的播放位置出現(xiàn)偏差使續(xù)播畫面不連貫,以及因加載耗時(shí)導(dǎo)致的續(xù)播畫面不流暢的問題,以達(dá)到無縫銜接以及快速續(xù)播的目的。
基于上述說明,本發(fā)明首先根據(jù)與緩存視頻數(shù)據(jù)對(duì)應(yīng)的I幀在該片源中的位置進(jìn)行Seek操作;然后將與緩存視頻數(shù)據(jù)對(duì)應(yīng)的I幀之后的視頻數(shù)據(jù)進(jìn)行加載或解碼;并且將與所述緩存視頻數(shù)據(jù)對(duì)應(yīng)的I幀加載或解碼后的視頻數(shù)據(jù)進(jìn)行緩存,當(dāng)然,還可以根據(jù)緩存視頻數(shù)據(jù)結(jié)束的位置繼續(xù)向后加載或解碼視頻數(shù)據(jù)并進(jìn)行緩存,這樣就實(shí)現(xiàn)了無縫銜接以及快速續(xù)播的目的。
需要說明的是,本步驟中是根據(jù)緩存視頻數(shù)據(jù)中存儲(chǔ)的播放位置進(jìn)行續(xù)播的,以解決本發(fā)明背景技術(shù)中所提及的因播放片源的I幀較少導(dǎo)致續(xù)播畫面與切source前畫面不連貫的情況,以及因切換回source后加載片源或視頻解碼耗時(shí)而導(dǎo)致的續(xù)播不流暢的問題。
因此,與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例所提出的技術(shù)方案的有益技術(shù)效果包括:
本發(fā)明提供了一種源切換后片源續(xù)播方法,當(dāng)智能電視從第一Source切換至第二Source時(shí),根據(jù)切換前播放的片源在切換時(shí)的播放位置獲取并存儲(chǔ)在播放位置之后的緩存視頻數(shù)據(jù),由于緩存視頻數(shù)據(jù)的可播放時(shí)間大于片源的起播時(shí)間,因此在當(dāng)智能電視從第二Source切換回第一Source時(shí),通過播放緩存視頻數(shù)據(jù)以及根據(jù)緩存視頻數(shù)據(jù)在片源中的結(jié)束位置續(xù)播片源,即可使智能電視在多源模式之間的來回切換時(shí)保證切換前后的視頻畫面連貫,保證片源內(nèi)容的連續(xù)性,提高了用戶的使用體驗(yàn)。
下面將結(jié)合本發(fā)明中的附圖,對(duì)本發(fā)明中的技術(shù)方案進(jìn)行清楚、完整的描述,顯然,所描述的具體實(shí)施例是本發(fā)明的一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
如上所述,在現(xiàn)有的多源source模式之間的切換均會(huì)將緩沖區(qū)清空,如圖1所述,為現(xiàn)有技術(shù)中Source從MMP切換到DTV的流程示意圖,當(dāng)Source從MMP切換到DTV時(shí),對(duì)緩沖區(qū)進(jìn)行了清空操作,如圖2所示,當(dāng)Source需要從DTV切換到MMP時(shí),就需要對(duì)片源進(jìn)行加載或解碼,將音視頻等數(shù)據(jù)存放到buffer中,然后讀取buffer中數(shù)據(jù)進(jìn)行顯示,實(shí)現(xiàn)續(xù)播,這樣會(huì)因加載耗時(shí)而導(dǎo)致續(xù)播不連貫的問題,進(jìn)一步的,如果播放片源的I幀較少,在Seek操作時(shí)就會(huì)基于當(dāng)前播放位置向前查詢較遠(yuǎn)的I幀,并從該I幀開始播放,導(dǎo)致出現(xiàn)續(xù)播畫面與切source前畫面不連貫的情況(快幾秒)。
本發(fā)明實(shí)施例為了解決上述的問題,提出了根據(jù)切換前播放的片源在切換時(shí)的播放位置獲取并存儲(chǔ)在播放位置之后的緩存視頻數(shù)據(jù),由于緩存視頻數(shù)據(jù)的可播放時(shí)間大于片源的起播時(shí)間,因此在當(dāng)智能電視從切換回原source時(shí),通過播放緩存視頻數(shù)據(jù)以及根據(jù)緩存視頻數(shù)據(jù)在片源中的結(jié)束位置續(xù)播片源,即可使智能電視在多源模式之間的來回切換時(shí)保證切換前后的視頻畫面連貫,保證片源內(nèi)容的連續(xù)性,提高了用戶的使用體驗(yàn)。
如圖7所示,為本發(fā)明實(shí)施例所提出一種具體應(yīng)用場(chǎng)景中source在切換后片源快速續(xù)播的方法的流程示意圖,該方法具體包括:
步驟S701,設(shè)備根據(jù)獲取到的操作指令進(jìn)行搜索片源,并播放片源。其中,獲取到的操作指令可以是設(shè)備自動(dòng)分析得到的,也可以是用戶根據(jù)使用情況輸入的。
步驟S702,根據(jù)資源管理器RM發(fā)出的切出指令,執(zhí)行切出source操作。
具體的,以圖4所示為例,為本發(fā)明具體實(shí)施例所提出的Source從MMP切換到DTV的流程示意圖,根據(jù)切換請(qǐng)求資源管理器RM通知MMP執(zhí)行stop操作,若MMP獲取到不切換指令,則結(jié)束stop操作并跳轉(zhuǎn)至步驟S707繼續(xù)播放步驟S701中的片源,否則跳轉(zhuǎn)至步驟S703。
步驟S703,MMP執(zhí)行stop操作和切出操作,建立臨時(shí)緩存區(qū)buffer-0,將所需要的數(shù)據(jù)存儲(chǔ)到臨時(shí)緩存區(qū)buffer-0中,然后執(zhí)行flush buffer等操作。
在具體實(shí)施例中,還需計(jì)算所需存儲(chǔ)的數(shù)據(jù)容量,還是以圖4所示為例,為本發(fā)明具體實(shí)施例所提出的Source從MMP切換到DTV的流程示意圖,根據(jù)切換請(qǐng)求資源管理器RM通知MMP執(zhí)行stop操作,MMP執(zhí)行stop操作,然后在執(zhí)行reset操作時(shí),首先建立臨時(shí)緩存區(qū)buffer-0,根據(jù)當(dāng)前播放片源的已播放時(shí)間,確定出當(dāng)前播放位置,基于MMP記錄的片源中I幀的位置信息,在已經(jīng)加載或解碼到buffer的數(shù)據(jù)中,從當(dāng)前播放位置開始向后查找I幀位置,當(dāng)查找到第一個(gè)I幀時(shí),通過MMP記錄的數(shù)據(jù)信息,確定出從當(dāng)前播放位置到該第一個(gè)I幀之間的數(shù)據(jù)容量和碼率,按照公式(時(shí)間=(數(shù)據(jù)容量*8)/碼率)計(jì)算可播放時(shí)間,若可播放時(shí)間小于片源起播時(shí)間,則繼續(xù)向后尋找下一個(gè)I幀位置,直到確定出可播放時(shí)間大于片源起播時(shí)間的數(shù)據(jù),其中,片源起播時(shí)間可以是MMP記錄的第一次播放所需時(shí)間,也可以是根據(jù)不同的片源所設(shè)置的時(shí)間。
獲取從當(dāng)前播放位置到確定出的I幀位置之間的數(shù)據(jù),將數(shù)據(jù)存儲(chǔ)到臨時(shí)緩存區(qū)buffer-0中,其中所存儲(chǔ)的數(shù)據(jù)是全部數(shù)據(jù),可以包括解碼后或下載后的音視頻、字幕等數(shù)據(jù)信息,具體的存儲(chǔ)內(nèi)容可以根據(jù)應(yīng)用場(chǎng)景的需要進(jìn)行靈活設(shè)置。
如圖6所示,為本發(fā)明具體實(shí)施例所提出的計(jì)算緩存視頻數(shù)據(jù)中存儲(chǔ)數(shù)據(jù)容量的流程示意圖,當(dāng)將所需數(shù)據(jù)存儲(chǔ)到臨時(shí)緩存區(qū)buffer-0之后,執(zhí)行flush buffer、release decoder、record position等操作。
步驟S704,當(dāng)接收到資源管理器RM發(fā)出的執(zhí)行新source內(nèi)容的指令后,執(zhí)行播放操作,當(dāng)沒有接收到資源管理器RM發(fā)出的新指令時(shí),處于空閑狀態(tài)。
步驟S705,當(dāng)需要執(zhí)行切回原source時(shí),設(shè)備向資源管理器RM發(fā)出切回請(qǐng)求,并接收資源管理器RM發(fā)出的確認(rèn)切回原source操作指令;或,當(dāng)設(shè)備接收到資源管理器RM發(fā)出切回原source操作指令時(shí),若設(shè)備執(zhí)行切回操作,則跳轉(zhuǎn)至步驟S706,否則跳轉(zhuǎn)至步驟S707。
以圖5所示為例,為本發(fā)明具體實(shí)施例所提出的Source從DTV切換到MMP的流程示意圖,當(dāng)MMP需要切回到原source時(shí),根據(jù)切回請(qǐng)求資源管理器RM向DTV發(fā)出指令,DTV執(zhí)行stop、reset等停止和存儲(chǔ)數(shù)據(jù)操作。
此時(shí),若當(dāng)MMP確認(rèn)切回到原source時(shí),則執(zhí)行切換操作。
若當(dāng)MMP確認(rèn)不執(zhí)行切回到原source時(shí),則繼續(xù)播放當(dāng)前片源或處于空閑狀態(tài)。
步驟S706,MMP確認(rèn)切回到原source,首先執(zhí)行flush buffer操作,然后將存儲(chǔ)在臨時(shí)緩存區(qū)buffer-0的數(shù)據(jù)復(fù)制到buffer中,并將臨時(shí)緩存區(qū)buffer-0刪除,之后根據(jù)buffer的數(shù)據(jù)中存儲(chǔ)的上一次播放的I幀位置繼續(xù)播放,并繼續(xù)向后加載或解碼。
以圖5所示為例,為本發(fā)明具體實(shí)施例所提出的Source從DTV切換到MMP的流程示意圖,當(dāng)MMP執(zhí)行切回操作,首先將存儲(chǔ)在臨時(shí)緩存區(qū)buffer-0的數(shù)據(jù)復(fù)制到buffer中,然后將臨時(shí)緩存區(qū)buffer-0刪除,顯示設(shè)備將buffer中的數(shù)據(jù)通過加載或解碼之后將畫面顯示出來,并繼續(xù)從存儲(chǔ)的視頻數(shù)據(jù)結(jié)束位置向后加載或解碼并進(jìn)行緩存。
步驟S707,執(zhí)行當(dāng)前選中的片源繼續(xù)播放。
本發(fā)明實(shí)施例所提出的技術(shù)方案在多source切換上明顯優(yōu)于其他現(xiàn)有source切換的方案,在思路上與其具有本質(zhì)的區(qū)別。通過播放緩存視頻數(shù)據(jù)以及根據(jù)緩存視頻數(shù)據(jù)在片源中的結(jié)束位置續(xù)播片源,即可使智能電視在多源模式之間的來回切換時(shí)保證切換前后的視頻畫面連貫,保證片源內(nèi)容的連續(xù)性,這明顯不同于傳統(tǒng)多source切換中通過加載來完成續(xù)播的思想。
本發(fā)明實(shí)施例所提出的技術(shù)方案與傳統(tǒng)多source切換方案對(duì)比,最大的優(yōu)點(diǎn)在于:當(dāng)智能電視從第一Source切換至第二Source時(shí),根據(jù)切換前播放的片源在切換時(shí)的播放位置獲取并存儲(chǔ)在播放位置之后的緩存視頻數(shù)據(jù),由于緩存視頻數(shù)據(jù)的可播放時(shí)間大于片源的起播時(shí)間,因此在當(dāng)智能電視從第二Source切換回第一Source時(shí),通過播放緩存視頻數(shù)據(jù)以及根據(jù)緩存視頻數(shù)據(jù)在片源中的結(jié)束位置續(xù)播片源,即可使智能電視在多源模式之間的來回切換時(shí)保證切換前后的視頻畫面連貫,保證片源內(nèi)容的連續(xù)性,提高了用戶的使用體驗(yàn)。
為更清楚地說明本發(fā)明前述實(shí)施例提供的方案,基于與上述方法同樣的發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提出了智能電視,其結(jié)構(gòu)示意圖如圖8所示,包括:
第一處理模塊81,用于當(dāng)所述智能電視從第一Source切換至第二Source時(shí),根據(jù)切換前播放的片源在切換時(shí)的播放位置,獲取并存儲(chǔ)在所述播放位置之后的緩存視頻數(shù)據(jù),所述緩存視頻數(shù)據(jù)的可播放時(shí)間大于所述片源的起播時(shí)間;
第二處理模塊82,用于當(dāng)所述智能電視從所述第二Source切換回所述第一Source時(shí),播放所述緩存視頻數(shù)據(jù),并根據(jù)所述緩存視頻數(shù)據(jù)在所述片源中的結(jié)束位置續(xù)播所述片源。
在一些實(shí)施方式中,所述第一處理模塊81獲取并存儲(chǔ)在所述播放位置之后的緩存視頻數(shù)據(jù),具體為:
獲取在所述播放位置之后的首個(gè)I幀;
判斷所述播放位置與所述I幀之間的視頻數(shù)據(jù)的可播放時(shí)間是否大于所述起播時(shí)間;
若判斷結(jié)果為是,將所述視頻數(shù)據(jù)作為所述緩存視頻數(shù)據(jù)進(jìn)行存儲(chǔ);
若判斷結(jié)果為否,繼續(xù)獲取下一個(gè)I幀,直至所述播放位置與所述下一個(gè)I幀之間的視頻數(shù)據(jù)的可播放時(shí)間大于所述起播時(shí)間。
在一些實(shí)施方式中,還包括:
初始化模塊83,用于當(dāng)所述片源第一次起播時(shí),獲取所述起播時(shí)間以及與所述片源對(duì)應(yīng)的播放碼率。
在一些實(shí)施方式中,所述第一處理模塊81判斷所述播放位置與所述I幀之間的視頻數(shù)據(jù)的可播放時(shí)間是否大于所述起播時(shí)間,具體為:
獲取所述視頻數(shù)據(jù)的容量;
根據(jù)所述容量以及所述播放碼率確定所述可播放時(shí)間;
將所述可播放時(shí)間以及所述起播時(shí)間的時(shí)長(zhǎng)進(jìn)行對(duì)比;
若所述可播放時(shí)間的時(shí)長(zhǎng)大于所述起播時(shí)間的時(shí)長(zhǎng),確認(rèn)所述可播放時(shí)間大于所述起播時(shí)間;
若所述可播放時(shí)間的時(shí)長(zhǎng)不大于所述起播時(shí)間的時(shí)長(zhǎng),確認(rèn)所述可播放時(shí)間不大于所述起播時(shí)間。
在一些實(shí)施方式中,所述第二處理模塊82根據(jù)所述緩存視頻數(shù)據(jù)在所述片源中的結(jié)束位置續(xù)播所述片源,具體為:
根據(jù)與所述緩存視頻數(shù)據(jù)對(duì)應(yīng)的I幀在所述片源中的位置進(jìn)行Seek操作;
將所述I幀之后的視頻數(shù)據(jù)進(jìn)行加載或解碼;
將所述與所述緩存視頻數(shù)據(jù)對(duì)應(yīng)的I幀加載或所述解碼后的視頻數(shù)據(jù)進(jìn)行緩存。
在本發(fā)明具體實(shí)施例中各個(gè)模塊可以集成于一體,也可以分離部署,上述模塊合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。
與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例所提出的技術(shù)方案的有益技術(shù)效果包括:
本發(fā)明提供了一種源切換后片源續(xù)播方法,當(dāng)智能電視從第一Source切換至第二Source時(shí),根據(jù)切換前播放的片源在切換時(shí)的播放位置獲取并存儲(chǔ)在播放位置之后的緩存視頻數(shù)據(jù),由于緩存視頻數(shù)據(jù)的可播放時(shí)間大于片源的起播時(shí)間,因此在當(dāng)智能電視從第二Source切換回第一Source時(shí),通過播放緩存視頻數(shù)據(jù)以及根據(jù)緩存視頻數(shù)據(jù)在片源中的結(jié)束位置續(xù)播片源,即可使智能電視在多源模式之間的來回切換時(shí)保證切換前后的視頻畫面連貫,保證片源內(nèi)容的連續(xù)性,提高了用戶的使用體驗(yàn)。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
本領(lǐng)域技術(shù)人員可以理解附圖只是一個(gè)優(yōu)選實(shí)施例的示意圖,附圖中的模塊或流程并不一定是實(shí)施本發(fā)明所必須的。
本領(lǐng)域技術(shù)人員可以理解實(shí)施例中的裝置中的模塊可以按照實(shí)施例描述進(jìn)行分布于實(shí)施例的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施例的一個(gè)或多個(gè)裝置中。上述實(shí)施例的模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
以上公開的僅為本發(fā)明的幾個(gè)具體實(shí)施例,但是,本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護(hù)范圍。