国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      播放器切換播放方法及裝置與流程

      文檔序號:11157705閱讀:949來源:國知局
      播放器切換播放方法及裝置與制造工藝

      本發(fā)明主要涉及播放器播放技術(shù)領(lǐng)域,具體地說,涉及一種播放器切換播放方法及裝置。



      背景技術(shù):

      目前市場上諸如電視一類的智能終端,在播放點播的視頻過程中,設(shè)置有插入廣告播放的功能。而市場上主流智能終端中設(shè)置的是單解碼器(Decoder),同一時間只能對一種資源進(jìn)行解碼播放。因此為了實現(xiàn)在當(dāng)前播放的視頻中插播廣告的功能,需要先將當(dāng)前播放視頻的播放器停掉,再啟動新的播放器播放廣告。廣告播放完成后,再重新啟動播放視頻的播放器對視頻進(jìn)行播放,并通過seek跳轉(zhuǎn)到廣告播放之前的播放點。但是這樣的切換模式耗費較長的時間,用戶等待時間長,體驗性差。



      技術(shù)實現(xiàn)要素:

      本發(fā)明的主要目的是提供一種播放器切換播放方法及裝置,旨在解決現(xiàn)有技術(shù)播放器切換播放耗費時間長的問題。

      為實現(xiàn)上述目的,本發(fā)明提供一種播放器切換播放方法,所述播放器切換播放方法包括以下步驟:

      當(dāng)接收到播放指令時,獲取第一播放數(shù)據(jù)作為當(dāng)前數(shù)據(jù)進(jìn)行播放,同時獲取并緩存第二播放數(shù)據(jù);

      當(dāng)接收到切換播放指令時,將播放的當(dāng)前數(shù)據(jù)由第一播放數(shù)據(jù)切換為緩存的第二播放數(shù)據(jù),同時記錄第一播放數(shù)據(jù)切換播放時的切換時間點;

      當(dāng)接收到切回播放指令時,以切換時間點繼續(xù)播放第一播放數(shù)據(jù)。

      優(yōu)選地,所述播放器包括第一緩存器和第二緩存器,

      所述當(dāng)接收到播放指令時,獲取第一播放數(shù)據(jù)作為當(dāng)前數(shù)據(jù)進(jìn)行播放,同時獲取并緩存第二播放數(shù)據(jù)的步驟包括:

      當(dāng)接收到播放指令時,獲取第一播放數(shù)據(jù)和第二播放數(shù)據(jù);

      將第一播放數(shù)據(jù)作為當(dāng)前數(shù)據(jù)進(jìn)行播放,并將第一播放數(shù)據(jù)緩存至第一緩存器,同時將獲取的第二播放數(shù)據(jù)緩存至第二緩存器。

      優(yōu)選地,所述當(dāng)接收到切換播放指令時,將播放的當(dāng)前數(shù)據(jù)由第一播放數(shù)據(jù)切換為緩存的第二播放數(shù)據(jù),同時記錄第一播放數(shù)據(jù)切換播放時的切換時間點的步驟包括:

      當(dāng)接收到切換播放指令時,獲取第二緩存器緩存的第二播放數(shù)據(jù),并將播放的當(dāng)前數(shù)據(jù)由第一播放數(shù)據(jù)切換為第二播放數(shù)據(jù);

      記錄第一播放數(shù)據(jù)切換播放時的切換時間點,并將第一播放數(shù)據(jù)在切換時間點之前已播放數(shù)據(jù)從第一緩存器中刪除。

      優(yōu)選地,所述當(dāng)接收到切回播放指令時,以切換時間點繼續(xù)播放第一播放數(shù)據(jù)的步驟包括:

      當(dāng)接收到切回播放指令時,獲取第一播放數(shù)據(jù)中刪除所述已播放數(shù)據(jù)的剩余數(shù)據(jù),并播放所述剩余數(shù)據(jù)。

      優(yōu)選地,所述播放所述剩余數(shù)據(jù)的步驟之后包括:

      判斷所述剩余數(shù)據(jù)是否播放完成,若剩余數(shù)據(jù)播放完成,則獲取播放器解復(fù)用后的數(shù)據(jù)作為新的第一播放數(shù)據(jù)以進(jìn)行播放。

      此外,為實現(xiàn)上述目的,本發(fā)明還提出一種播放器切換播放裝置,所述播放器切換播放裝置包括:

      獲取模塊,用于當(dāng)接收到播放指令時,獲取第一播放數(shù)據(jù)作為當(dāng)前數(shù)據(jù)進(jìn)行播放,同時獲取并緩存第二播放數(shù)據(jù);

      切換模塊,用于當(dāng)接收到切換播放指令時,將播放的當(dāng)前數(shù)據(jù)由第一播放數(shù)據(jù)切換為緩存的第二播放數(shù)據(jù),同時記錄第一播放數(shù)據(jù)切換播放時的切換時間點;

      控制模塊,用于當(dāng)接收到切回播放指令時,以切換時間點繼續(xù)播放第一播放數(shù)據(jù)。

      優(yōu)選地,所述播放器包括第一緩存器和第二緩存器,所述獲取模塊包括:

      第一獲取單元,用于當(dāng)接收到播放指令時,獲取第一播放數(shù)據(jù)和第二播放數(shù)據(jù);

      第一控制單元,用于將第一播放數(shù)據(jù)作為當(dāng)前數(shù)據(jù)進(jìn)行播放,并將第一播放數(shù)據(jù)緩存至第一緩存器,同時將獲取的第二播放數(shù)據(jù)緩存至第二緩存器。

      優(yōu)選地,所述切換模塊包括:

      第二獲取單元,用于當(dāng)接收到切換播放指令時,獲取第二緩存器緩存的第二播放數(shù)據(jù),并將播放的當(dāng)前數(shù)據(jù)由第一播放數(shù)據(jù)切換為第二播放數(shù)據(jù);

      第二控制單元,用于記錄第一播放數(shù)據(jù)切換播放時的切換時間點,并將第一播放數(shù)據(jù)在切換時間點之前已播放數(shù)據(jù)從第一緩存器中刪除。

      優(yōu)選地,所述的控制模塊還用于:

      當(dāng)接收到切回播放指令時,獲取第一播放數(shù)據(jù)中刪除所述已播放數(shù)據(jù)的剩余數(shù)據(jù),并播放所述剩余數(shù)據(jù)。

      優(yōu)選地,所述的播放器切換播放裝置還包括:

      判斷模塊,用于判斷所述剩余數(shù)據(jù)是否播放完成,若剩余數(shù)據(jù)播放完成,則獲取播放器解復(fù)用后的數(shù)據(jù)作為新的第一播放數(shù)據(jù)以進(jìn)行播放。

      本發(fā)明提出的播放器切換播放方法,通過在播放第一播放數(shù)據(jù)的過程中,獲取第二播放數(shù)據(jù),并將獲取的第二播放數(shù)據(jù)緩存;在接收到切換播放指令時,可直接播放緩存的第二播放數(shù)據(jù),同時對第一播放數(shù)據(jù)切換播放時的切換時間點進(jìn)行記錄,從而在接收到切回播放指令時,可按照記錄的切換時間點繼續(xù)播放。本方案通過對第二播放數(shù)據(jù)的緩存以及對第一播放數(shù)據(jù)切換播放時的切換時間點記錄,切換時可直接獲取緩存的第二播放數(shù)據(jù)進(jìn)行播放,并根據(jù)記錄的切換時間點進(jìn)行切回,不需要在接收到切換播放指令時先停用第一播放數(shù)據(jù)對應(yīng)的播放器,啟用第二播放數(shù)據(jù)對應(yīng)的播放器進(jìn)行切換,而在第二播放數(shù)據(jù)播放完成后接收到切回播放指令時,又再啟用第一播放數(shù)據(jù)對應(yīng)的播放器進(jìn)行第一播放數(shù)據(jù)的播放。減少了第一播放數(shù)據(jù)和第二播放數(shù)據(jù)之間的切換時間,從而使用戶等待時間縮短,提高了播放效率及用戶體驗性。

      附圖說明

      圖1是本發(fā)明的播放器切換播放方法第一實施例的流程示意圖;

      圖2是本發(fā)明的播放器切換播放方法第二實施例的流程示意圖;

      圖3是本發(fā)明的播放器切換播放裝置第一實施例的功能模塊示意圖;

      圖4是本發(fā)明的播放器切換播放裝置第二實施例的獲取模塊的細(xì)化功能模塊示意圖;

      圖5是本發(fā)明的播放器切換播放裝置第三實施例的的切換模塊的細(xì)化功能模塊示意圖;

      圖6是本發(fā)明的播放器切換播放裝置第四實施例的的功能模塊示意圖;

      圖7是本發(fā)明的播放器切換播放方法及裝置第一數(shù)據(jù)傳輸場景示意圖;

      圖8是本發(fā)明的播放器切換播放方法及裝置第二數(shù)據(jù)傳輸場景示意圖;

      圖9是本發(fā)明的播放器切換播放方法及裝置第三數(shù)據(jù)傳輸場景示意圖。

      本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進(jìn)一步說明。

      具體實施方式

      應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

      本發(fā)明提供一種播放器切換播放方法,請參照圖1,在第一實施例中,該播放器切換播放方法包括:

      步驟S10,當(dāng)接收到播放指令時,獲取第一播放數(shù)據(jù)作為當(dāng)前數(shù)據(jù)進(jìn)行播放,同時獲取并緩存第二播放數(shù)據(jù);

      本發(fā)明的播放器切換方法,所述播放器可以只有一個也可以是兩個或者兩個以上。當(dāng)播放器只有一個時,其設(shè)置為在一個普通播放器上的擴展,此播放器上至少設(shè)置有兩個數(shù)據(jù)獲取模塊以及共用的數(shù)據(jù)處理模塊;其中一個數(shù)據(jù)獲取模塊用于獲取目標(biāo)視頻數(shù)據(jù),另一個用于獲取廣告數(shù)據(jù)。當(dāng)播放器為兩個或兩個以上時,對應(yīng)每個播放器分別設(shè)置有數(shù)據(jù)獲取模塊和數(shù)據(jù)處理模塊,一個用于播放用戶需要觀看的目標(biāo)視頻,另一個用于播放在目標(biāo)視頻中插入廣告。第一播放數(shù)據(jù)可以為目標(biāo)視頻也可以為廣告,當(dāng)?shù)谝徊シ艛?shù)據(jù)為目標(biāo)視頻時,則第二播放數(shù)據(jù)則為廣告;相應(yīng)地,當(dāng)?shù)谝徊シ艛?shù)據(jù)為廣告時,則第二播放數(shù)據(jù)為目標(biāo)視頻。當(dāng)接收到播放指令時,獲取第一播放數(shù)據(jù)作為當(dāng)前播放數(shù)據(jù)進(jìn)行播放,同時獲取第二播放數(shù)據(jù),并將此獲取的第二播放數(shù)據(jù)進(jìn)行緩存。播放指令可以是打開播放器的啟動指令,也可以是從暫停到播放的繼續(xù)播放指令。

      步驟S20,當(dāng)接收到切換播放指令時,將播放的當(dāng)前數(shù)據(jù)由第一播放數(shù)據(jù)切換為緩存的第二播放數(shù)據(jù),同時記錄第一播放數(shù)據(jù)切換播放時的切換時間點;

      具體地,在接收到切換播放指令時,對當(dāng)前正在播放的當(dāng)前數(shù)據(jù)進(jìn)行切換,將第一播放數(shù)據(jù)切換為第二播放數(shù)據(jù),并記錄第一播放數(shù)據(jù)切換播放時的切換時間點,以提供再次播放第一播放數(shù)據(jù)的對接依據(jù)。當(dāng)?shù)谝徊シ艛?shù)據(jù)為用戶需要觀看的目標(biāo)視屏,第二播放數(shù)據(jù)為廣告時,在獲取目標(biāo)視屏對應(yīng)的第一播放數(shù)據(jù)進(jìn)行播放的同時獲取廣告對應(yīng)的第二播放數(shù)據(jù)進(jìn)行緩存。播放目標(biāo)視頻對應(yīng)的第一播放數(shù)據(jù)的過程中,如果接收到切換播放指令,則將當(dāng)前播放的數(shù)據(jù)由目標(biāo)視頻對應(yīng)的第一播放數(shù)據(jù)切換為廣告對應(yīng)的第二播放數(shù)據(jù),同時記錄目標(biāo)視頻對應(yīng)的第一播放數(shù)據(jù)切換播放時的切換時間點。

      步驟S30,當(dāng)接收到切回播放指令時,以切換時間點繼續(xù)播放第一播放數(shù)據(jù)。

      進(jìn)一步地,將播放的當(dāng)前數(shù)據(jù)由第一播放數(shù)據(jù)切換為第二播放數(shù)據(jù)進(jìn)行播放,即播放的當(dāng)前數(shù)據(jù)為第二播放數(shù)據(jù)。在第二播放數(shù)據(jù)播放完成后,需要回到第一播放數(shù)據(jù)的播放,此第二播放數(shù)據(jù)播放完成的信號即可作為切回播放指令?;蛘咴诘诙シ艛?shù)據(jù)播放過程中,接收到切回播放指令,從而將播放的當(dāng)前數(shù)據(jù)切回到第一播放數(shù)據(jù),且從第一播放數(shù)據(jù)中記錄的切換時間點進(jìn)行播放,以實現(xiàn)數(shù)據(jù)的快速切換以及無縫對接。

      為輔助理解,以一具體實施例加以說明,請參照圖7,其中InputSource為原始數(shù)據(jù)的輸入模塊、Demux為解復(fù)用模塊、DataManager為數(shù)據(jù)管理模塊、Buffer為數(shù)據(jù)緩存模塊、Decoder為解碼模塊、Display為顯示模塊。根據(jù)播放數(shù)據(jù)的來源不同,InputSource的功能不同,當(dāng)播放數(shù)據(jù)來源于網(wǎng)絡(luò)流數(shù)據(jù)時,InputSource對應(yīng)網(wǎng)絡(luò)下載模塊;當(dāng)播放數(shù)據(jù)來源于本地文件,則其負(fù)責(zé)從本地文件中讀入數(shù)據(jù)。因InputSource獲取的原始數(shù)據(jù)為包含音視頻數(shù)據(jù)、字幕數(shù)據(jù)等的混合數(shù)據(jù),所以此音視頻數(shù)據(jù)、字幕數(shù)據(jù)需要通過Demux解復(fù)用將音視頻數(shù)據(jù)分離。DataManager獲取解復(fù)用后的音視頻數(shù)據(jù)傳輸?shù)紻ecoder解碼的同時還傳輸?shù)紹uffer進(jìn)行緩存,Decoder根據(jù)具體解復(fù)用出來的音視頻數(shù)據(jù)分別進(jìn)行音頻解碼和視頻解碼。

      圖7中的播放器包含了Player1和Play2兩個數(shù)據(jù)獲取模塊,兩個數(shù)據(jù)獲取模塊共享Decoder和Display資源,因此同一時間只有一個數(shù)據(jù)獲取模塊獲取的數(shù)據(jù)工作。Player1的InputSource1獲取原始數(shù)據(jù)發(fā)送到Demux1解復(fù)用,DataManager1獲取解復(fù)用后的音視頻數(shù)據(jù)傳輸?shù)紻ecoder解碼,同時還傳輸?shù)紹uffer1進(jìn)行緩存,Decoder解碼后的數(shù)據(jù)發(fā)送到Display進(jìn)行輸出播放。在Player1播放的同時Player2的InputSource2獲取原始數(shù)據(jù)發(fā)送到Demux2解復(fù)用,DataManager2獲取解復(fù)用后的數(shù)據(jù),并傳輸?shù)紹uffer2進(jìn)行緩存。當(dāng)接收到播放切換指令時,Decoder獲取Buffer2中緩存的數(shù)據(jù)進(jìn)行解碼并發(fā)送到Display輸出播放,同時記錄DataManage1中數(shù)據(jù)切換播放時的切換時間點。當(dāng)接收到切回播放指令時,根據(jù)記錄的切換時間點,Decoder從Buffer1中獲取切換時間點的數(shù)據(jù)繼續(xù)播放。

      本實施例的播放器切換播放方法包括:當(dāng)接收到播放指令時,獲取第一播放數(shù)據(jù)作為當(dāng)前數(shù)據(jù)進(jìn)行播放,同時獲取并緩存第二播放數(shù)據(jù);當(dāng)接收到切換播放指令時,將播放的當(dāng)前數(shù)據(jù)由第一播放數(shù)據(jù)切換為緩存的第二播放數(shù)據(jù),同時記錄第一播放數(shù)據(jù)切換播放時的切換時間點;當(dāng)接收到切回播放指令時,以切換時間點繼續(xù)播放第一播放數(shù)據(jù)。本方案通過對第二播放數(shù)據(jù)的緩存以及對第一播放數(shù)據(jù)切換播放時的切換時間點記錄,切換時可直接獲取緩存的第二播放數(shù)據(jù)進(jìn)行播放,并根據(jù)記錄的切換時間點進(jìn)行切回,不需要在接收到切換播放指令時先停用第一播放數(shù)據(jù)對應(yīng)的播放器,啟用第二播放數(shù)據(jù)對應(yīng)的播放器進(jìn)行切換,而在第二播放數(shù)據(jù)播放完成后接收到切回播放指令時,又再啟用第一播放數(shù)據(jù)對應(yīng)的播放器進(jìn)行第一播放數(shù)據(jù)的播放。減少了第一播放數(shù)據(jù)和第二播放數(shù)據(jù)之間的切換時間,從而使用戶等待時間縮短,提高了播放效率及用戶體驗性。

      進(jìn)一步地,所述播放器包括第一緩存器和第二緩存器,

      步驟S10所述當(dāng)接收到播放指令時,獲取第一播放數(shù)據(jù)作為當(dāng)前數(shù)據(jù)進(jìn)行播放,同時獲取并緩存第二播放數(shù)據(jù)的步驟包括:

      步驟S11,當(dāng)接收到播放指令時,獲取第一播放數(shù)據(jù)和第二播放數(shù)據(jù);

      步驟S12,將第一播放數(shù)據(jù)作為當(dāng)前數(shù)據(jù)進(jìn)行播放,并將第一播放數(shù)據(jù)緩存至第一緩存器,同時將獲取的第二播放數(shù)據(jù)緩存至第二緩存器。

      可理解的地,經(jīng)過解復(fù)用分離的音視頻數(shù)據(jù)還需要通過解碼以實現(xiàn)音視頻數(shù)據(jù)的播放。實際應(yīng)用時,解復(fù)用的速度受網(wǎng)速或者硬件配置的影響,可能跟不上解碼播放的速度。為了平衡解復(fù)用和解碼播放之間的速度匹配,在解復(fù)用和解碼播放之間設(shè)置有緩存模塊。解復(fù)用后的音視頻數(shù)據(jù)傳輸?shù)浇獯a器解碼的同時還傳輸?shù)骄彺婺K進(jìn)行緩存,以使在出現(xiàn)解復(fù)用短暫停頓時,獲取緩存模塊中的數(shù)據(jù)進(jìn)行解碼播放。本發(fā)明的方案中,為了匹配兩個播放器,分別對每個播放器設(shè)置有第一緩存器和第二緩存器。在接收到播放指令時,分別獲取第一播放數(shù)據(jù)和第二播放數(shù)據(jù),在對第一播放數(shù)據(jù)進(jìn)行解碼播放的同時還將第一播放數(shù)據(jù)緩存至第一緩存器,對于第二播放數(shù)據(jù)則不進(jìn)行解碼播放直接緩存至第二緩存器,以在進(jìn)行數(shù)據(jù)切換時,直接獲取第二緩存器中的第二播放數(shù)據(jù)進(jìn)行解碼播放,避免重新獲取解復(fù)用后的數(shù)據(jù),減少數(shù)據(jù)切換所耗費的時間。而對第一播放數(shù)據(jù)的緩存一方面可以在第一播放數(shù)據(jù)出現(xiàn)解復(fù)用停頓時,從第一緩存器中獲取數(shù)據(jù)進(jìn)行解碼播放;另一方面可以在切換播放數(shù)據(jù)后再次切回第一播放數(shù)據(jù)時,實現(xiàn)直接從第一緩存器中獲取數(shù)據(jù)進(jìn)行解碼播放,避免重新獲取解復(fù)用后的數(shù)據(jù),減少數(shù)據(jù)切換所耗費的時間。因第一播放數(shù)據(jù)進(jìn)行解碼播放的同時還將其緩存至第一緩存器,解碼播放包括解碼和顯示播放兩個過程,緩存只是一個保存的過程,所以解碼播放的第一播放數(shù)據(jù)滯后于緩存的第一播放數(shù)據(jù),即解碼播放的第一播放數(shù)據(jù)必定存在與第一緩存器中。第一緩存器相當(dāng)于一個存儲裝置,容量有限,對于已經(jīng)解碼播放處理的第一播放數(shù)據(jù),再緩存于第一緩存器中也沒有意義。所以獲取第一緩存器中已經(jīng)解碼播放的第一播放數(shù)據(jù),進(jìn)行刪除處理,以釋放第一緩存器的空間,提高數(shù)據(jù)處理速度。

      具體地,請參照圖8,在正常播放時,其步驟為:1)、通過DataManager獲取經(jīng)過Demux的音視頻數(shù)據(jù),2)、將獲取的經(jīng)過Demux的音視頻數(shù)據(jù)發(fā)送到Decoder進(jìn)行解碼,3)、發(fā)送到Decoder進(jìn)行解碼的同時還發(fā)送到Buffer緩存,4)、獲取Decoder解碼過的數(shù)據(jù),5)、根據(jù)Decoder解碼過的數(shù)據(jù),將Buffer中相應(yīng)的數(shù)據(jù)刪除。因此本方案的正常播放是通過DataManager獲取Demux中的數(shù)據(jù)進(jìn)行解碼播放,并將獲取的Demux數(shù)據(jù)發(fā)送到Buffer緩存,以實現(xiàn)順暢播放;通過將Buffer中解碼過的數(shù)據(jù)刪除,釋放Buffer空間,提高數(shù)據(jù)處理速度。而從正常播放狀態(tài)轉(zhuǎn)換為暫停狀態(tài),就是通過DataManager從Demux獲取數(shù)據(jù)發(fā)送到Buffer緩存的過程。

      進(jìn)一步地,步驟S20所述當(dāng)接收到切換播放指令時,將播放的當(dāng)前數(shù)據(jù)由第一播放數(shù)據(jù)切換為緩存的第二播放數(shù)據(jù),同時記錄第一播放數(shù)據(jù)切換播放時的切換時間點的步驟包括:

      步驟S21,當(dāng)接收到切換播放指令時,獲取第二緩存器緩存的第二播放數(shù)據(jù),并將播放的當(dāng)前數(shù)據(jù)由第一播放數(shù)據(jù)切換為第二播放數(shù)據(jù);

      步驟S22,記錄第一播放數(shù)據(jù)切換播放時的切換時間點,并將第一播放數(shù)據(jù)在切換時間點之前已播放數(shù)據(jù)從第一緩存器中刪除。

      本實施方案中,可對當(dāng)前播放的第一播放數(shù)據(jù)進(jìn)行切換,當(dāng)接收到切換指令時,從第二緩存器中獲取緩存的第二播放數(shù)據(jù),將此第二播放數(shù)據(jù)作為當(dāng)前數(shù)據(jù)進(jìn)行播放。同時記錄第一播放數(shù)據(jù)切換播放時的的切換時間點,在此切換時間點之前的數(shù)據(jù)為已經(jīng)解碼播放的數(shù)據(jù),此切換時間點之后的數(shù)據(jù)為尚未解碼播放的數(shù)據(jù)。因第一播放數(shù)據(jù)播放的同時還緩存于第一緩存器中,對于已經(jīng)解碼播放的數(shù)據(jù)再進(jìn)行緩存是沒有意義的,所以需要對第一播放數(shù)據(jù)在切換時間點之前的數(shù)據(jù)進(jìn)行刪除處理,以釋放第一緩存器的空間,提高數(shù)據(jù)處理速度。

      進(jìn)一步地,步驟S30所述當(dāng)接收到切回播放指令時,以切換時間點繼續(xù)播放第一播放數(shù)據(jù)的步驟包括:當(dāng)接收到切回播放指令時,獲取第一播放數(shù)據(jù)中刪除所述已播放數(shù)據(jù)的剩余數(shù)據(jù),并播放所述剩余數(shù)據(jù)。

      進(jìn)一步地,在第二播放數(shù)據(jù)播放完成或者在播放過程中,可進(jìn)行切回播放操作,以切換到第一播放數(shù)據(jù)播放。當(dāng)接收到切回播放指令時,根據(jù)記錄的第一播放數(shù)據(jù)切換播放時的切換時間點,獲取第一播放時間中刪除已播放數(shù)據(jù)的尚未播放的剩余數(shù)據(jù),進(jìn)行播放。通過對第一播放數(shù)據(jù)切換播放時的切換時間點進(jìn)行記錄,實現(xiàn)回切時準(zhǔn)確無誤的回到切換前的播放時間點。

      進(jìn)一步地,請參照圖2,在本發(fā)明播放器切換播放方法第一實施例的基礎(chǔ)上,提出播放器切換播放方法的第二實施例,在第二實施例中,所述播放所述剩余數(shù)據(jù)的步驟之后包括:

      步驟S40,判斷所述剩余數(shù)據(jù)是否播放完成,若剩余數(shù)據(jù)播放完成,則獲取播放器解復(fù)用后的數(shù)據(jù)作為新的第一播放數(shù)據(jù)以進(jìn)行播放。

      可理解地,第一緩存器中緩存的第一播放數(shù)據(jù)有限,在將第一緩存器中尚未播放的剩余數(shù)據(jù)作為播放的當(dāng)前數(shù)據(jù)后,判斷該剩余數(shù)據(jù)是否播放完成,當(dāng)判斷出該剩余數(shù)據(jù)播放完成時,則獲取播放器解復(fù)用后的數(shù)據(jù)作為新的第一播放數(shù)據(jù)進(jìn)行播放,同時將此獲取的播放器解復(fù)用后的數(shù)據(jù)發(fā)送到第一緩存器中緩存,以確保數(shù)據(jù)的播放。在一具體實施例中,請參照圖9,從緩存狀態(tài)轉(zhuǎn)換為正常播放狀態(tài)或者從暫停狀態(tài)轉(zhuǎn)換為播放狀態(tài)的步驟為:1)、通過DataManager從Buffer獲取緩存的數(shù)據(jù),2)、將從Buffer中獲取的緩存數(shù)據(jù)傳輸?shù)紻ecoder,3)、當(dāng)判斷出Buffer中的數(shù)據(jù)傳輸完成后,從Demux中獲取數(shù)據(jù),4)、將從Demux中獲取的數(shù)據(jù)傳輸?shù)紻ecoder,5)、將從Demux中獲取的數(shù)據(jù)傳輸?shù)紻ecoder的同時,還傳輸?shù)紹uffer進(jìn)行緩存,6)、從Decoder中獲取已解碼過的數(shù)據(jù),7)、根據(jù)Decoder解碼過的數(shù)據(jù),將Buffer中相應(yīng)的數(shù)據(jù)刪除。本方案在從緩存狀態(tài)、暫停狀態(tài)或者其他播放數(shù)據(jù)切換回原播放數(shù)據(jù)時,通過先獲取Buffer中緩存的數(shù)據(jù)進(jìn)行解碼播放,以實現(xiàn)快速切換;在Buffer中緩存的數(shù)據(jù)解碼播放完成后,獲取Demux中的數(shù)據(jù)進(jìn)行解碼播放,并將獲取的Demux數(shù)據(jù)發(fā)送到Buffer緩存,以實現(xiàn)順暢播放;通過將Buffer中解碼過的數(shù)據(jù)刪除,釋放Buffer空間,提高數(shù)據(jù)處理速度。

      此外,本發(fā)明還提供一種播放器切換播放裝置,參照圖3,在第一實施例中,本發(fā)明提出的播放器切換播放裝置包括:

      獲取模塊10,用于當(dāng)接收到播放指令時,獲取第一播放數(shù)據(jù)作為當(dāng)前數(shù)據(jù)進(jìn)行播放,同時獲取并緩存第二播放數(shù)據(jù);

      本發(fā)明的播放器切換方法,所述播放器可以只有一個也可以是兩個或者兩個以上。當(dāng)播放器只有一個時,其設(shè)置為在一個普通播放器上的擴展,此播放器上至少設(shè)置有兩個數(shù)據(jù)獲取模塊以及共用的數(shù)據(jù)處理模塊;其中一個數(shù)據(jù)獲取模塊用于獲取目標(biāo)視頻數(shù)據(jù),另一個用于獲取廣告數(shù)據(jù)。當(dāng)播放器為兩個或兩個以上時,對應(yīng)每個播放器分別設(shè)置有數(shù)據(jù)獲取模塊和數(shù)據(jù)處理模塊,一個用于播放用戶需要觀看的目標(biāo)視頻,另一個用于播放在目標(biāo)視頻中插入廣告。第一播放數(shù)據(jù)可以為目標(biāo)視頻也可以為廣告,當(dāng)?shù)谝徊シ艛?shù)據(jù)為目標(biāo)視頻時,則第二播放數(shù)據(jù)則為廣告;相應(yīng)地,當(dāng)?shù)谝徊シ艛?shù)據(jù)為廣告時,則第二播放數(shù)據(jù)為目標(biāo)視頻。當(dāng)接收到播放指令時,獲取模塊10獲取第一播放數(shù)據(jù)作為當(dāng)前播放數(shù)據(jù)進(jìn)行播放,同時獲取第二播放數(shù)據(jù),并將此獲取的第二播放數(shù)據(jù)進(jìn)行緩存。播放指令可以是打開播放器的啟動指令,也可以是從暫停到播放的繼續(xù)播放指令。

      切換模塊20,用于當(dāng)接收到切換播放指令時,將播放的當(dāng)前數(shù)據(jù)由第一播放數(shù)據(jù)切換為緩存的第二播放數(shù)據(jù),同時記錄第一播放數(shù)據(jù)切換播放時的切換時間點;

      具體地,在接收到切換播放指令時,切換模塊20對當(dāng)前正在播放的當(dāng)前數(shù)據(jù)進(jìn)行切換,將第一播放數(shù)據(jù)切換為第二播放數(shù)據(jù),并記錄第一播放數(shù)據(jù)切換播放時的切換時間點,以提供再次播放第一播放數(shù)據(jù)的對接依據(jù)。當(dāng)?shù)谝徊シ艛?shù)據(jù)為用戶需要觀看的目標(biāo)視屏,第二播放數(shù)據(jù)為廣告時,在獲取目標(biāo)視屏對應(yīng)的第一播放數(shù)據(jù)進(jìn)行播放的同時獲取廣告對應(yīng)的第二播放數(shù)據(jù)進(jìn)行緩存。播放目標(biāo)視頻對應(yīng)的第一播放數(shù)據(jù)的過程中,如果接收到切換播放指令,則將當(dāng)前播放的數(shù)據(jù)由目標(biāo)視頻對應(yīng)的第一播放數(shù)據(jù)切換為廣告對應(yīng)的第二播放數(shù)據(jù),同時記錄目標(biāo)視頻對應(yīng)的第一播放數(shù)據(jù)切換播放時的切換時間點。

      控制模塊30,用于當(dāng)接收到切回播放指令時,以切換時間點繼續(xù)播放第一播放數(shù)據(jù)。

      進(jìn)一步地,將播放的當(dāng)前數(shù)據(jù)由第一播放數(shù)據(jù)切換為第二播放數(shù)據(jù)進(jìn)行播放,即播放的當(dāng)前數(shù)據(jù)為第二播放數(shù)據(jù)。在第二播放數(shù)據(jù)播放完成后,需要回到第一播放數(shù)據(jù)的播放,此第二播放數(shù)據(jù)播放完成的信號即可作為切回播放指令?;蛘咴诘诙シ艛?shù)據(jù)播放過程中,控制模塊30接收到切回播放指令,從而將播放的當(dāng)前數(shù)據(jù)切回到第一播放數(shù)據(jù),且從第一播放數(shù)據(jù)播放中記錄的切換時間點進(jìn)行播放,以實現(xiàn)數(shù)據(jù)的快速切換以及無縫對接。

      為輔助理解,以一具體實施例加以說明,請參照圖7,其中InputSource為原始數(shù)據(jù)的輸入模塊、Demux為解復(fù)用模塊、DataManager為數(shù)據(jù)管理模塊、Buffer為數(shù)據(jù)緩存模塊、Decoder為解碼模塊、Display為顯示模塊。其中本播放器切換播放裝置可以以DataManager為執(zhí)行裝置,根據(jù)播放數(shù)據(jù)的來源不同,InputSource的功能不同,當(dāng)播放數(shù)據(jù)來源于網(wǎng)絡(luò)流數(shù)據(jù)時,InputSource對應(yīng)網(wǎng)絡(luò)下載模塊;當(dāng)播放數(shù)據(jù)來源于本地文件,則其負(fù)責(zé)從本地文件中讀入數(shù)據(jù)。因InputSource獲取的原始數(shù)據(jù)為包含音視頻數(shù)據(jù)、字幕數(shù)據(jù)等的混合數(shù)據(jù),所以此音視頻數(shù)據(jù)、字幕數(shù)據(jù)需要通過Demux解復(fù)用將音視頻數(shù)據(jù)分離。DataManager獲取解復(fù)用后的音視頻數(shù)據(jù)傳輸?shù)紻ecoder解碼的同時還傳輸?shù)紹uffer進(jìn)行緩存,Decoder根據(jù)具體解復(fù)用出來的音視頻數(shù)據(jù)分別進(jìn)行音頻解碼和視頻解碼。

      圖7中的播放器包含了Player1和Play2兩個數(shù)據(jù)獲取模塊,兩個數(shù)據(jù)獲取模塊共享Decoder和Display資源,因此同一時間只有一個數(shù)據(jù)獲取模塊獲取的數(shù)據(jù)工作。Player1的InputSource1獲取原始數(shù)據(jù)發(fā)送到Demux1解復(fù)用,DataManager1獲取解復(fù)用后的音視頻數(shù)據(jù)傳輸?shù)紻ecoder解碼,同時還傳輸?shù)紹uffer1進(jìn)行緩存,Decoder解碼后的數(shù)據(jù)發(fā)送到Display進(jìn)行輸出播放。在Player1播放的同時Player2的InputSource2獲取原始數(shù)據(jù)發(fā)送到Demux2解復(fù)用,DataManager2獲取解復(fù)用后的數(shù)據(jù),并傳輸?shù)紹uffer2進(jìn)行緩存。當(dāng)接收到播放切換指令時,Decoder獲取Buffer2中緩存的數(shù)據(jù)進(jìn)行解碼并發(fā)送到Display輸出播放,同時記錄DataManage1中數(shù)據(jù)切換播放時的切換時間點。當(dāng)接收到切回播放指令時,根據(jù)記錄的切換時間點,Decoder從Buffer1中獲取切換時間點的數(shù)據(jù)繼續(xù)播放。

      本實施例的播放器切換播放裝置包括:獲取模塊10,用于當(dāng)接收到播放指令時,獲取第一播放數(shù)據(jù)作為當(dāng)前數(shù)據(jù)進(jìn)行播放,同時獲取并緩存第二播放數(shù)據(jù);切換模塊20,用于當(dāng)接收到切換播放指令時,將播放的當(dāng)前數(shù)據(jù)由第一播放數(shù)據(jù)切換為緩存的第二播放數(shù)據(jù),同時記錄第一播放數(shù)據(jù)切換播放時的切換時間點;控制模塊30,用于當(dāng)接收到切回播放指令時,以切換時間點繼續(xù)播放第一播放數(shù)據(jù)。本方案通過對第二播放數(shù)據(jù)的緩存以及對第一播放數(shù)據(jù)切換播放時的切換時間點記錄,切換時可直接獲取緩存的第二播放數(shù)據(jù)進(jìn)行播放,并根據(jù)記錄的切換時間點進(jìn)行切回,不需要在接收到切換播放指令時先停用第一播放數(shù)據(jù)對應(yīng)的播放器,啟用第二播放數(shù)據(jù)對應(yīng)的播放器進(jìn)行切換,而在第二播放數(shù)據(jù)播放完成后接收到切回播放指令時,又再啟用第一播放數(shù)據(jù)對應(yīng)的播放器進(jìn)行第一播放數(shù)據(jù)的播放。減少了第一播放數(shù)據(jù)和第二播放數(shù)據(jù)之間的切換時間,從而使用戶等待時間縮短,提高了播放效率及用戶體驗性。

      進(jìn)一步的,參照圖4,基于本發(fā)明的播放器切換播放裝置第一實施例,在本發(fā)明播放器切換播放裝置的第二實施例中,所述播放器包括第一緩存器和第二緩存器,所述獲取模塊10包括:

      第一獲取單元11,用于當(dāng)接收到播放指令時,獲取第一播放數(shù)據(jù)和第二播放數(shù)據(jù);

      第一控制單元12,用于將第一播放數(shù)據(jù)作為當(dāng)前數(shù)據(jù)進(jìn)行播放,并將第一播放數(shù)據(jù)緩存至第一緩存器,同時將獲取的第二播放數(shù)據(jù)緩存至第二緩存器。

      可理解的地,經(jīng)過解復(fù)用分離的音視頻數(shù)據(jù)還需要通過解碼以實現(xiàn)音視頻數(shù)據(jù)的播放。實際應(yīng)用時,解復(fù)用的速度受網(wǎng)速或者硬件配置的影響,可能跟不上解碼播放的速度。為了平衡解復(fù)用和解碼播放之間的速度匹配,在解復(fù)用和解碼播放之間設(shè)置有緩存模塊。解復(fù)用后的音視頻數(shù)據(jù)傳輸?shù)浇獯a器解碼的同時還傳輸?shù)骄彺婺K進(jìn)行緩存,以使在出現(xiàn)解復(fù)用短暫停頓時,獲取緩存模塊中的數(shù)據(jù)進(jìn)行解碼播放。本發(fā)明的方案中,為了匹配兩個播放器,分別對每個播放器設(shè)置有第一緩存器和第二緩存器。在接收到播放指令時,第一獲取單元11分別獲取第一播放數(shù)據(jù)和第二播放數(shù)據(jù),第一控制單元12在對第一播放數(shù)據(jù)進(jìn)行解碼播放的同時還將第一播放數(shù)據(jù)緩存至第一緩存器,對于第二播放數(shù)據(jù)則不進(jìn)行解碼播放直接緩存至第二緩存器,以在進(jìn)行數(shù)據(jù)切換時,直接獲取第二緩存器中的第二播放數(shù)據(jù)進(jìn)行解碼播放,避免重新獲取解復(fù)用后的數(shù)據(jù),減少數(shù)據(jù)切換所耗費的時間。而對第一播放數(shù)據(jù)的緩存一方面可以在第一播放數(shù)據(jù)出現(xiàn)解復(fù)用停頓時,從第一緩存器中獲取數(shù)據(jù)進(jìn)行解碼播放;另一方面可以在切換播放數(shù)據(jù)后再次切回第一播放數(shù)據(jù)時,實現(xiàn)直接從第一緩存器中獲取數(shù)據(jù)進(jìn)行解碼播放,避免重新獲取解復(fù)用后的數(shù)據(jù),減少數(shù)據(jù)切換所耗費的時間。因第一播放數(shù)據(jù)進(jìn)行解碼播放的同時還將其緩存至第一緩存器,解碼播放包括解碼和顯示播放兩個過程,緩存只是一個保存的過程,所以解碼播放的第一播放數(shù)據(jù)滯后于緩存的第一播放數(shù)據(jù),即解碼播放的第一播放數(shù)據(jù)必定存在與第一緩存器中。第一緩存器相當(dāng)于一個存儲裝置,容量有限,對于已經(jīng)解碼播放處理的第一播放數(shù)據(jù),再緩存于第一緩存器中也沒有意義。所以獲取第一緩存器中已經(jīng)解碼播放的第一播放數(shù)據(jù),進(jìn)行刪除處理,以釋放第一緩存器的空間,提高數(shù)據(jù)處理速度。

      具體地,請參照圖8,在正常播放時,其步驟為:1)、通過DataManager獲取經(jīng)過Demux的音視頻數(shù)據(jù),2)、將獲取的經(jīng)過Demux的音視頻數(shù)據(jù)發(fā)送到Decoder進(jìn)行解碼,3)、發(fā)送到Decoder進(jìn)行解碼的同時還發(fā)送到Buffer緩存,4)、獲取Decoder解碼過的數(shù)據(jù),5)、根據(jù)Decoder解碼過的數(shù)據(jù),將Buffer中相應(yīng)的數(shù)據(jù)刪除。因此本方案的正常播放是通過DataManager獲取Demux中的數(shù)據(jù)進(jìn)行解碼播放,并將獲取的Demux數(shù)據(jù)發(fā)送到Buffer緩存,以實現(xiàn)順暢播放;通過將Buffer中解碼過的數(shù)據(jù)刪除,釋放Buffer空間,提高數(shù)據(jù)處理速度。而從正常播放狀態(tài)轉(zhuǎn)換為暫停狀態(tài),就是通過DataManager從Demux獲取數(shù)據(jù)發(fā)送到Buffer緩存的過程。

      進(jìn)一步的,參照圖5,基于本發(fā)明的播放器切換播放裝置第二實施例,在本發(fā)明播放器切換播放裝置的第三實施例中,所述切換模塊20包括:

      第二獲取單元21,用于當(dāng)接收到切換播放指令時,獲取第二緩存器緩存的第二播放數(shù)據(jù),并將播放的當(dāng)前數(shù)據(jù)由第一播放數(shù)據(jù)切換為第二播放數(shù)據(jù);

      第二控制單元22,用于記錄第一播放數(shù)據(jù)切換播放時的切換時間點,并將此第一播放數(shù)據(jù)在切換時間點之前已播放數(shù)據(jù)從第一緩存器中刪除。

      本實施方案中,可對當(dāng)前播放的第一播放數(shù)據(jù)進(jìn)行切換,當(dāng)接收到切換指令時,第二獲取單元21從第二緩存器中獲取緩存的第二播放數(shù)據(jù),將此第二播放數(shù)據(jù)作為當(dāng)前數(shù)據(jù)進(jìn)行播放。同時第二控制單元22記錄第一播放數(shù)據(jù)切換播放時的切換時間點,在此切換時間點之前的數(shù)據(jù)為已經(jīng)解碼播放的數(shù)據(jù),此切換時間點之后的數(shù)據(jù)為尚未解碼播放的數(shù)據(jù)。因第一播放數(shù)據(jù)播放的同時還緩存于第一緩存器中,對于已經(jīng)解碼播放的數(shù)據(jù)再進(jìn)行緩存是沒有意義的,所以需要對第一播放數(shù)據(jù)在切換時間點之前的數(shù)據(jù)進(jìn)行刪除處理,以釋放第一緩存器的空間,提高數(shù)據(jù)處理速度。

      進(jìn)一步的,在本發(fā)明播放器切換播放裝置的另一實施例中,所述的控制模塊30還用于:

      當(dāng)接收到切回播放指令時,獲取第一播放數(shù)據(jù)中刪除所述已播放數(shù)據(jù)的剩余數(shù)據(jù),并播放所述剩余數(shù)據(jù)。

      進(jìn)一步地,在第二播放數(shù)據(jù)播放完成或者在播放過程中,可進(jìn)行切回播放操作,以切換到第一播放數(shù)據(jù)播放。當(dāng)接收到切回播放指令時,控制模塊30根據(jù)記錄的第一播放數(shù)據(jù)切換播放時的切換時間點,獲取第一播放時間中刪除已播放數(shù)據(jù)的尚未播放的剩余數(shù)據(jù),進(jìn)行播放。通過對第一播放數(shù)據(jù)切換播放時的切換時間點進(jìn)行記錄,實現(xiàn)回切時準(zhǔn)確無誤的回到切換前的播放時間點。

      進(jìn)一步的,參照圖6,基于本發(fā)明的播放器切換播放裝置第三實施例,在本發(fā)明播放器切換播放裝置的第四實施例中,所述的播放器切換播放裝置還包括:

      判斷模塊40,用于判斷所述剩余數(shù)據(jù)是否播放完成,若剩余數(shù)據(jù)播放完成,則獲取播放器解復(fù)用后的數(shù)據(jù)作為新的第一播放數(shù)據(jù)以進(jìn)行播放。

      可理解地,第一緩存器中緩存的第一播放數(shù)據(jù)有限,在將第一緩存器中尚未播放的剩余數(shù)據(jù)作為播放的當(dāng)前數(shù)據(jù)后,判斷模塊40判斷該剩余數(shù)據(jù)是否播放完成,當(dāng)判斷出該剩余數(shù)據(jù)播放完成時,則獲取播放器解復(fù)用后的數(shù)據(jù)作為新的第一播放數(shù)據(jù)進(jìn)行播放,同時將此獲取的播放器解復(fù)用后的數(shù)據(jù)發(fā)送到第一緩存器中緩存,以確保數(shù)據(jù)的播放。在一具體實施例中,請參照圖9,從緩存狀態(tài)轉(zhuǎn)換為正常播放狀態(tài)或者從暫停狀態(tài)轉(zhuǎn)換為播放狀態(tài)的步驟為:1)、通過DataManager從Buffer獲取緩存的數(shù)據(jù),2)、將從Buffer中獲取的緩存數(shù)據(jù)傳輸?shù)紻ecoder,3)、當(dāng)判斷出Buffer中的數(shù)據(jù)傳輸完成后,從Demux中獲取數(shù)據(jù),4)、將從Demux中獲取的數(shù)據(jù)傳輸?shù)紻ecoder,5)、將從Demux中獲取的數(shù)據(jù)傳輸?shù)紻ecoder的同時,還傳輸?shù)紹uffer進(jìn)行緩存,6)、從Decoder中獲取已解碼過的數(shù)據(jù),7)、根據(jù)Decoder解碼過的數(shù)據(jù),將Buffer中相應(yīng)的數(shù)據(jù)刪除。本方案在從緩存狀態(tài)、暫停狀態(tài)或者其他播放數(shù)據(jù)切換回原播放數(shù)據(jù)時,通過先獲取Buffer中緩存的數(shù)據(jù)進(jìn)行解碼播放,以實現(xiàn)快速切換;在Buffer中緩存的數(shù)據(jù)解碼播放完成后,獲取Demux中的數(shù)據(jù)進(jìn)行解碼播放,并將獲取的Demux數(shù)據(jù)發(fā)送到Buffer緩存,以實現(xiàn)順暢播放;通過將Buffer中解碼過的數(shù)據(jù)刪除,釋放Buffer空間,提高數(shù)據(jù)處理速度。

      以上所述僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是在本發(fā)明的構(gòu)思下,利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)變換,或直接/間接運用在其他相關(guān)的技術(shù)領(lǐng)域均包括在本發(fā)明的專利保護范圍內(nèi)。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1