視頻播放方法和裝置、智能終端的制作方法
【專利摘要】本發(fā)明提供了一種視頻播放方法和裝置、智能終端,所述方法包括:接收視頻播放請求;獲取起播控制條件,根據(jù)所述視頻播放請求中包括的待播放數(shù)據(jù)的地址標(biāo)識(shí)和所述起播控制條件下載所述待播放數(shù)據(jù);根據(jù)所述起播控制條件播放所述待播放數(shù)據(jù);計(jì)算所述待播放數(shù)據(jù)的已播放時(shí)長;判斷所述待播放數(shù)據(jù)的已播放時(shí)長是否大于預(yù)設(shè)播放時(shí)長;若所述待播放數(shù)據(jù)的已播放時(shí)長大于所述預(yù)設(shè)播放時(shí)長,獲取播放控制條件,根據(jù)所述播放控制條件下載播放剩余所述待播放數(shù)據(jù)。本發(fā)明通過分別調(diào)整起播控制條件和播放控制條件,不僅可以在保證快速起播的情況下還能夠避免畫面一顯示就緩沖的情況出現(xiàn),還可以保證正常播放后緩沖時(shí)間更為合理。
【專利說明】視頻播放方法和裝置、智能終端
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及媒體播放【技術(shù)領(lǐng)域】,特別地,涉及一種視頻播放方法和裝置、智能終端。
【背景技術(shù)】
[0002]媒體播放器在播放網(wǎng)絡(luò)視頻時(shí),通過給出的網(wǎng)絡(luò)視頻地址(URI,UniformResource Identifier),下載視頻原始數(shù)據(jù);當(dāng)滿足緩沖條件時(shí),開始解析數(shù)據(jù),分離音、視頻原始數(shù)據(jù),分別進(jìn)行音、視頻解碼后輸出聲音和圖像。
[0003]現(xiàn)有網(wǎng)絡(luò)媒體播放器的缺點(diǎn)在于:視頻播放前,需要預(yù)先設(shè)置緩沖區(qū)的大小,無論緩沖區(qū)多大,媒體播放器只能被動(dòng)地等待其完成后才會(huì)播放。因此,現(xiàn)有媒體播放器在網(wǎng)絡(luò)播放過程中,起播的快慢取決于緩沖完成的快慢;當(dāng)預(yù)設(shè)的緩沖區(qū)比較大或者網(wǎng)速比較慢的情況下,會(huì)造成用戶等待時(shí)間過長的不良體驗(yàn)。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供一種視頻播放方法,用于解決現(xiàn)有媒體播放器在緩沖區(qū)較大或網(wǎng)絡(luò)傳輸條件較差時(shí)會(huì)造成用戶等待時(shí)間過長的不良體驗(yàn)問題。
[0005]本發(fā)明還提供了一種智能終端及其視頻播放裝置,以保證上述方法在實(shí)際中的應(yīng)用。
[0006]為了解決上述問題,本發(fā)明公開了一種視頻播放方法,包括:接收視頻播放請求,所述視頻播放請求包括待播放數(shù)據(jù)的地址標(biāo)識(shí);獲取起播控制條件,根據(jù)所述待播放數(shù)據(jù)的地址標(biāo)識(shí)和所述起播控制條件下載所述待播放數(shù)據(jù);根據(jù)所述起播控制條件播放所述待播放數(shù)據(jù);計(jì)算所述待播放數(shù)據(jù)的已播放時(shí)長;判斷所述待播放數(shù)據(jù)的已播放時(shí)長是否大于預(yù)設(shè)播放時(shí)長,若所述待播放數(shù)據(jù)的已播放時(shí)長大于所述預(yù)設(shè)播放時(shí)長,獲取播放控制條件,根據(jù)所述播放控制條件下載播放剩余所述待播放數(shù)據(jù)。
[0007]優(yōu)選的,所述起播控制條件包括起播時(shí)間閾值;所述根據(jù)所述待播放數(shù)據(jù)的地址標(biāo)識(shí)和所述起播控制條件下載所述待播放數(shù)據(jù),包括:根據(jù)所述起播時(shí)間閾值計(jì)算用于起播的所述待播放數(shù)據(jù)的數(shù)據(jù)量;根據(jù)用于起播的所述待播放數(shù)據(jù)的數(shù)據(jù)量和地址標(biāo)識(shí)下載用于起播的所述待播放數(shù)據(jù)。
[0008]優(yōu)選的,所述起播控制條件包括最低起播時(shí)間閾值;所述根據(jù)所述起播控制條件播放所述待播放數(shù)據(jù),包括:判斷所述已下載的待播放數(shù)據(jù)的數(shù)據(jù)量的可播放時(shí)長是否大于所述最低起播時(shí)間閾值;若否,則暫停播放所述待播放數(shù)據(jù),繼續(xù)所述待播放數(shù)據(jù)的下載過程。
[0009]優(yōu)選的,所述最低播放時(shí)間閾值小于起播時(shí)間閾值。
[0010]優(yōu)選的,所述播放控制條件包括最低播放時(shí)間閾值和最高播放時(shí)間閾值;所述最低播放時(shí)間閾值小于最高播放時(shí)間閾值;根據(jù)所述播放控制條件播放所述待播放數(shù)據(jù)的方法具體包括:判斷已下載未播放的待播放數(shù)據(jù)的可播放時(shí)長是否小于最低播放時(shí)間閾值,若是,則暫停播放所述待播放數(shù)據(jù),繼續(xù)所述待播放數(shù)據(jù)的下載過程;判斷已下載未播放的待播放數(shù)據(jù)的可播放時(shí)長是否大于或等于最高播放時(shí)間閾值,若是,則繼續(xù)播放所述待播放數(shù)據(jù),暫停所述待播放數(shù)據(jù)的下載過程。
[0011]優(yōu)選的,所述起播時(shí)間閾值、最低播放時(shí)間閾值和最高播放時(shí)間閾值根據(jù)實(shí)際網(wǎng)速動(dòng)態(tài)設(shè)置。
[0012]依據(jù)本發(fā)明的另一優(yōu)選實(shí)施例,還公開了一種視頻播放裝置,包括:播放請求獲取單元,用于接收視頻播放請求,所述視頻播放請求包括待播放數(shù)據(jù)的地址標(biāo)識(shí);數(shù)據(jù)下載單元,用于獲取起播控制條件,根據(jù)所述待播放數(shù)據(jù)的地址標(biāo)識(shí)和所述起播控制條件下載所述待播放數(shù)據(jù);起播控制單元,用于根據(jù)所述起播控制條件播放所述數(shù)據(jù)下載單元下載的待播放數(shù)據(jù);計(jì)時(shí)器,用于計(jì)算所述待播放數(shù)據(jù)的已播放時(shí)長;播放控制單元,用于判斷計(jì)時(shí)器獲得的所述待播放數(shù)據(jù)的已播放時(shí)長是否大于預(yù)設(shè)播放時(shí)長;當(dāng)所述待播放數(shù)據(jù)的已播放時(shí)長大于所述預(yù)設(shè)播放時(shí)長時(shí),獲取播放控制條件,根據(jù)所述播放控制條件下載播放剩余所述待播放數(shù)據(jù)。
[0013]優(yōu)選的,所述起播控制條件包括起播時(shí)間閾值;所述數(shù)據(jù)下載單元包括數(shù)據(jù)量計(jì)算子單元和下載子單元;所述數(shù)據(jù)量計(jì)算子單元用于根據(jù)所述起播時(shí)間閾值計(jì)算用于起播的所述待播放數(shù)據(jù)的數(shù)據(jù)量;所述下載子單元用于根據(jù)用于起播的所述待播放數(shù)據(jù)的數(shù)據(jù)量和地址標(biāo)識(shí)下載用于起播的所述待播放數(shù)據(jù)。
[0014]優(yōu)選的,所述起播控制條件包括起播時(shí)間閾值和最低起播時(shí)間閾值,所述最低播放時(shí)間閾值小于起播時(shí)間閾值;所述起播控制單元用于判斷所述已下載的待播放數(shù)據(jù)的數(shù)據(jù)量的可播放時(shí)長是否大于所述最低起播時(shí)間閾值;若否,則暫停播放所述待播放數(shù)據(jù),繼續(xù)所述待播放數(shù)據(jù)的下載過程。
[0015]優(yōu)選的,所述播放控制單元具體包括:控制條件轉(zhuǎn)換子單元,用于判斷計(jì)時(shí)器獲得的所述待播放數(shù)據(jù)的已播放時(shí)長是否大于預(yù)設(shè)播放時(shí)長,當(dāng)所述待播放數(shù)據(jù)的已播放時(shí)長大于所述預(yù)設(shè)播放時(shí)長時(shí),調(diào)度播放條件獲取子單元獲取播放控制條件,以及調(diào)度過程控制子單元根據(jù)所述播放控制條件播放剩余的所述待播放數(shù)據(jù);播放條件獲取子單元,用于獲取播放控制條件,其中,所述播放控制條件包括最低播放時(shí)間閾值和最高播放時(shí)間閾值,且所述最低播放時(shí)間閾值小于最高播放時(shí)間閾值;過程控制子單元,用于控制剩余待播放數(shù)據(jù)的播放與下載過程,其中,當(dāng)已下載未播放的待播放數(shù)據(jù)的可播放時(shí)長小于最低播放時(shí)間閾值時(shí),暫停播放所述待播放數(shù)據(jù),等待數(shù)據(jù)下載單元繼續(xù)下載所述待播放數(shù)據(jù);當(dāng)已下載未播放的待播放數(shù)據(jù)的可播放時(shí)長大于或等于最高播放時(shí)間閾值時(shí),繼續(xù)播放所述待播放數(shù)據(jù),暫停數(shù)據(jù)下載單元的下載過程。
[0016]優(yōu)選的,所述起播時(shí)間閾值、最低播放時(shí)間閾值和最高播放時(shí)間閾值根據(jù)實(shí)際網(wǎng)速動(dòng)態(tài)設(shè)置。
[0017]依據(jù)本發(fā)明的還一優(yōu)選實(shí)施例,公開了一種包括有上述視頻播放裝置的智能終端。
[0018]與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):
本發(fā)明優(yōu)選實(shí)施例通過分別調(diào)整起播控制條件和播放控制條件,不僅可以保證視頻能夠快速起播,還能夠避免畫面一顯示就緩沖的情況出現(xiàn),保證正常播放后緩沖時(shí)間更為合理,從而可有效避免在網(wǎng)絡(luò)條件較差的情況下造成用戶等待時(shí)間過長的問題。
[0019]在本發(fā)明進(jìn)一步的優(yōu)選實(shí)施例中,通過設(shè)置緩沖區(qū)的最高播放時(shí)間閾值,緩沖區(qū)中的數(shù)據(jù)超過該閥值時(shí)會(huì)暫停下載緩沖過程,省下帶寬供設(shè)備的其他應(yīng)用請求網(wǎng)絡(luò)數(shù)據(jù)。
[0020]
【專利附圖】
【附圖說明】
圖1為本發(fā)明視頻播放方法第一實(shí)施例的流程圖;
圖2為本發(fā)明視頻播放方法第二實(shí)施例的流程圖;
圖3為圖2所示的方法實(shí)施例中涉及的緩沖區(qū)播放條件參數(shù)之間關(guān)系的示意圖;
圖4為執(zhí)行圖2所示的方法實(shí)施例的系統(tǒng)所包括的部件之間信息傳遞過程時(shí)序圖;
圖5為本發(fā)明視頻播放裝置一實(shí)施例的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0021]為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和【具體實(shí)施方式】對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說明。
[0022]方法實(shí)施例:
參照圖1,示出了本發(fā)明視頻播放方法第一實(shí)施例的流程,本優(yōu)選方法實(shí)施例包括以下步驟:
步驟SlOl:接收視頻播放請求;
在本優(yōu)選實(shí)施例中,視頻播放請求包括有待播放數(shù)據(jù)的地址標(biāo)識(shí);
步驟S102:獲取起播控制條件,根據(jù)待播放數(shù)據(jù)的地址標(biāo)識(shí)和該起播控制條件下載待播放數(shù)據(jù);
在本優(yōu)選實(shí)施例中,該起播控制條件用于標(biāo)識(shí)需要下載的用于起播的待播放數(shù)據(jù)的數(shù)據(jù)量大小以及起播過程中的控制條件。
[0023]該起播控制條件可以根據(jù)需要預(yù)先設(shè)定,也可以根據(jù)網(wǎng)絡(luò)環(huán)境動(dòng)態(tài)設(shè)置;設(shè)置原則是:不僅要保證視頻能夠快速起播,還能夠避免畫面一顯示就緩沖的情況出現(xiàn),保證正常播放后緩沖時(shí)間更為合理,從而可有效避免在網(wǎng)絡(luò)條件較差的情況下造成用戶等待時(shí)間過長的問題。
[0024]為提高播放效率,縮減用戶的等待時(shí)間(包括起播時(shí)間和播放過程中的等待時(shí)間),對(duì)于數(shù)據(jù)下載過程,本發(fā)明優(yōu)選采用異步下載方式。
在本方法實(shí)施例進(jìn)一步的優(yōu)選實(shí)施例中,起播控制條件包括有起播時(shí)間閾值;上述根據(jù)待播放數(shù)據(jù)的地址標(biāo)識(shí)和起播控制條件下載所述待播放數(shù)據(jù)的方法,具體包括:根據(jù)起播時(shí)間閾值計(jì)算用于起播的待播放數(shù)據(jù)的數(shù)據(jù)量;然后,根據(jù)用于起播的待播放數(shù)據(jù)的數(shù)據(jù)量和地址標(biāo)識(shí)下載用于起播的待播放數(shù)據(jù)。
[0025]其中,上述用于起播的待播放數(shù)據(jù)的數(shù)據(jù)量可以采用以下方法計(jì)算:
用于起播的待播放數(shù)據(jù)的數(shù)據(jù)量=起播時(shí)間閾值X待播放視頻的碼率。
[0026]步驟S103:根據(jù)起播控制條件播放所述待播放數(shù)據(jù);以及,計(jì)算所述待播放數(shù)據(jù)的已播放時(shí)長;
步驟S104:判斷待播放數(shù)據(jù)的已播放時(shí)長是否大于預(yù)設(shè)播放時(shí)長;若是,轉(zhuǎn)步驟S105 ;否則轉(zhuǎn)步驟S103繼續(xù)播放待播放數(shù)據(jù);
本實(shí)施例中的預(yù)設(shè)播放時(shí)長是指系統(tǒng)從起播狀態(tài)進(jìn)入正常播放狀態(tài)的判斷條件。一般情況下,當(dāng)采用起播時(shí)間閾值(Prepare_Buffer_Durat i on )作為起播控制條件時(shí),預(yù)設(shè)播放時(shí)長可以是人工經(jīng)驗(yàn)設(shè)置值,也可以設(shè)置為Prepare_Buffer_Durat1n與最低播放時(shí)間閾值(Min-Buffer-Durat1n)之差,也可以直接設(shè)置為起播時(shí)間閾值(Prepare_Buffer_Durat1n)。
[0027]步驟S105:獲取播放控制條件,根據(jù)播放控制條件下載播放緩沖區(qū)中剩余的待播放數(shù)據(jù)。
[0028]在本優(yōu)選實(shí)施例中,該播放控制條件可以根據(jù)需要預(yù)先設(shè)定,也可以根據(jù)網(wǎng)絡(luò)環(huán)境動(dòng)態(tài)設(shè)置;當(dāng)播放控制條件采用預(yù)先設(shè)定的方式時(shí),步驟S105中的播放控制條件可以與步驟S102中的起播控制條件同時(shí)獲取,也可以在起播后再獲取;當(dāng)播放控制條件采用動(dòng)態(tài)設(shè)置方式時(shí),步驟S105中的播放控制條件優(yōu)選在起播后再獲取。
[0029]本優(yōu)選實(shí)施例通過分別設(shè)置播放控制條件和起播控制條件,可以在保證盡快起播的情況下,有效避免畫面一顯示就緩沖的情況出現(xiàn),從而較好的解決了現(xiàn)有播放器在預(yù)設(shè)的緩沖區(qū)比較大或者網(wǎng)速比較慢的情況下可能會(huì)造成用戶等待時(shí)間過長的不良體驗(yàn)問題。
[0030]參照圖2,示出了本發(fā)明視頻播放方法第二實(shí)施例的流程,在本優(yōu)選實(shí)施例中,采用起播時(shí)間閾值(Pr epar e_Buf f er_Durat i on )和最低起播時(shí)間閾值作為起播控制條件控制視頻起播過程;采用最低播放時(shí)間閾值(Min-Buffer-Durat1n)和最高播放時(shí)間閾值(Max-Buffer-Durat1n)作為播放控制條件控制起播后的視頻播放過程,具體包括:
步驟S201:接收包括有待播放數(shù)據(jù)地址標(biāo)識(shí)的視頻播放請求;
在本優(yōu)選實(shí)施例中,為便于異步處理下載和播放過程,執(zhí)行所述方法的系統(tǒng)(或裝置)設(shè)置有上層播放器和下層播放器,下層播放器有兩種類型,包括負(fù)責(zé)直播的NuPlayer與負(fù)責(zé)點(diǎn)播的StagefrightPlayer,它們都采用相同的緩沖技術(shù)。上層播放器會(huì)根據(jù)待播放數(shù)據(jù)的地址分析判斷其類型,對(duì)于直播類型,會(huì)選擇NuPlayer作為下層播放器并實(shí)例化;對(duì)于點(diǎn)播類型,則會(huì)選擇StagefrightPlayer作為下層播放器并實(shí)例化。其他模塊不會(huì)發(fā)生變化。
[0031]步驟S202:獲取起播控制條件;
在本方法實(shí)施例中,將起播時(shí)間閾值(Prepare_Buf f er_Durat1n)和最低起播時(shí)間閾值(Low_ffaterMark_Durat 1n )作為起播控制條件,起播控制條件的作用范圍僅僅在起播前,起播后會(huì)根據(jù)播放控制條件來進(jìn)行播放控制。
[0032]以安卓系統(tǒng)平臺(tái)為例,上層播放器可采用以下命令將其獲得的起播控制條件設(shè)置到下層播放器:
setParameter (9500, Prepare_Buffer_Durat1n);
setParameter (9501, Low_ffat erMark_Durat 1n);
上述命令中,9500和9501為上層播放單元與下層播放單元約定的通信代碼。
[0033]Pr epar e_Buf f er_Durat i on的作用是通知下層播放器需要緩沖能夠播放多長時(shí)間的數(shù)據(jù),下層播放器會(huì)根據(jù)這個(gè)時(shí)間計(jì)算出緩沖的數(shù)據(jù)量有多大。為了圖像能夠盡快顯示出來且起播后不會(huì)立刻出現(xiàn)緩沖情況,需要設(shè)定一個(gè)不能過小也不能過大的PrepareBuffer_Durat1n值;過小會(huì)使得起播后立刻出現(xiàn)緩沖情況,用戶感受不好;過大則需要很長時(shí)間才能起播出現(xiàn)畫面,用戶感受也不好。
[0034]例如,如果定義Prepare_Buffer_Durat1n = 1.5s,下層播放器會(huì)通過欲播放頻道的碼率算出1.5s緩沖的數(shù)據(jù);假設(shè)該頻道的碼率為1000KB,則所需的緩沖數(shù)據(jù)量(即用于起播的待播放數(shù)據(jù)的數(shù)據(jù)量)為100KB * 1.5s = 1500KB,在網(wǎng)速為2M/s的帶寬下,理論上只要0.75s即可以緩沖完畢。
[0035]上述Low_WaterMark_Durat1n (最低起播時(shí)間閾值)的作用是設(shè)置播放緩沖池的低位閥值,低于該值,播放器就要暫停播放,使上層播放器處于loading狀態(tài)。起播前設(shè)置該值的目的之一是確保 Low_WaterMark_Durat1n 值要小于 Prepare_Buffer_Durat1n 所設(shè)置的值,且大于實(shí)際可播放時(shí)間(如圖4所示),從而使起播時(shí)能保證快速播放的同時(shí)并盡量保證畫面剛一顯示就緩沖的情形不會(huì)出現(xiàn)。一般Low_WaterMark_Durat1n設(shè)置的閥值比較低,可能僅僅只有幾百毫秒,而Prepare_Buffer_Durat1n值可能為幾秒。例如,如果定義Low_WaterMark_Durat1n為200ms,假設(shè)該頻道的碼率為1000KB,那么緩沖區(qū)的數(shù)據(jù)量如果低于(200ms / 1000) * 1000KB/s = 200KB的大小,則會(huì)暫停播放。
[0036]步驟S203:根據(jù)待播放數(shù)據(jù)的地址標(biāo)識(shí)異步下載待播放數(shù)據(jù);
以安卓系統(tǒng)為例,上層播放器發(fā)送準(zhǔn)備命令pr印areAsync O,下層播放器收到該命令,會(huì)根據(jù)上面設(shè)置的緩沖條件(起播條件),下載待播放數(shù)據(jù),并緩存到緩沖區(qū)中。下層播放器在緩沖好數(shù)據(jù)以及其他的一些數(shù)據(jù)初始化工作后,會(huì)通過命令onPr印aredO通知上層播放器已經(jīng)處于可以播放的狀態(tài)。
[0037]步驟S204:判斷緩沖區(qū)中的待播放數(shù)據(jù)量是否滿足起播時(shí)間閾值;若是,轉(zhuǎn)步驟S205開始播放緩沖區(qū)中的待播放數(shù)據(jù),同時(shí)轉(zhuǎn)步驟S206執(zhí)行后續(xù)的播放控制過程;否則,轉(zhuǎn)步驟S204等待步驟S203的反饋結(jié)果。
[0038]步驟S205:解碼并輸出緩沖區(qū)中的待播放數(shù)據(jù);
在滿足播放條件的情況下,上層播放器發(fā)送播放命令start O,此時(shí)下層播放器進(jìn)入播放狀態(tài),開始分離音、視頻數(shù)據(jù),解碼并做音、視頻同步,輸出音視頻。
[0039]在進(jìn)一步的優(yōu)選實(shí)施例中,為避免緩沖區(qū)中的數(shù)據(jù)達(dá)到或少于實(shí)際可播放時(shí)間而導(dǎo)致播放異常的問題,起播開始后,還包括:判斷緩沖區(qū)中剩余的待播放數(shù)據(jù)量是否小于最低起播時(shí)間閾值Low_WaterMark_Durat1n ;若是,則暫停待播放數(shù)據(jù)的解碼、輸出過程。
[0040]步驟S206:獲取最低播放時(shí)間閾值和最高播放時(shí)間閾值作為播放控制條件;
步驟S207:根據(jù)播放控制條件播放緩沖區(qū)中的待播放數(shù)據(jù)。
[0041]在播放開始后,開始第二次設(shè)置緩沖區(qū)播放條件,以保證正常播放后,緩沖時(shí)間合理。播放控制條件包括最低播放時(shí)間閾值(Min-Buffer-Durat1n)和最高播放時(shí)間閾值(Max-Buffer-Durat1n)。
[0042]以安卓系統(tǒng)平臺(tái)為例,上層播放器可采用以下命令將其獲得的播放控制條件設(shè)置到下層播放器:
setParameter (9501, Min-Buffer-Durat1n);
setParameter (9502, Max-Buffer-Durat1n);
上述命令中,9501和9502為上層播放單元與下層播放單元約定的通信代碼。
[0043]例如,將Prepare_Buffer_Durat1n設(shè)置的時(shí)間為Is,那么計(jì)時(shí)器會(huì)在Is之后再次設(shè)置緩沖區(qū)大小。最低播放時(shí)間閾值Min-Buffer-Durat 1n和最高播放時(shí)間閾值Max-Buffer-Durat1n會(huì)配合使用,最低播放時(shí)間閾值Min-Buffer-Durat1n大于實(shí)際可播放時(shí)間,且小于最高播放時(shí)間閾值Max-Buffer-Durat1n。當(dāng)緩沖區(qū)剩余數(shù)據(jù)的預(yù)計(jì)播放時(shí)間低于Min-Buf f er-Durat 1n定義的時(shí)間時(shí),暫停播放。當(dāng)緩沖區(qū)剩余數(shù)據(jù)能夠播放的時(shí)間高于Max-Buffer-Durat1n時(shí),會(huì)暫停緩沖,省下帶寬供設(shè)備的其他應(yīng)用請求網(wǎng)絡(luò)數(shù)據(jù)。
[0044]參照圖3,示出了上述第二方法實(shí)施例中相關(guān)起播時(shí)間閾值、最低起播時(shí)間閾值、最低播放時(shí)間閾值、最高播放時(shí)間閾值、實(shí)際可播放時(shí)間等條件參數(shù)之間的關(guān)系,其中:
最高播放時(shí)間閾值 > 起播時(shí)間閾值 > 最低播放時(shí)間閾值 > 最低起播時(shí)間閾值 > 實(shí)際可播放時(shí)間。
[0045]上述實(shí)際可播放時(shí)間指的是理論上可播放視頻的時(shí)間,當(dāng)緩沖區(qū)中的數(shù)據(jù)量只滿足實(shí)際可播放時(shí)間時(shí),如果播放的瞬間不能獲得新的數(shù)據(jù),播放過程將強(qiáng)制停止/暫停,也可能會(huì)出現(xiàn)其他播放異常問題;
另外,上述條件參數(shù)的設(shè)置是與網(wǎng)絡(luò)環(huán)境相關(guān)的,一般情況下,起播時(shí)間閾值略大于最低起播播放時(shí)間閾值即可;當(dāng)網(wǎng)速較快時(shí)(網(wǎng)絡(luò)下載速度不小于視頻播放速度時(shí)),為了盡快起播,減少用戶的等待時(shí)間,可以將起播時(shí)間閾值設(shè)置為一個(gè)相對(duì)較小的數(shù)值,一般與最低起播時(shí)間閾值、最低播放時(shí)間閾值、實(shí)際可播放時(shí)間值相等即可;當(dāng)網(wǎng)速較慢時(shí),為了減少暫停次數(shù),可以將起播時(shí)間閾值設(shè)置為一個(gè)相對(duì)較大的數(shù)值,且起播時(shí)間閾值>最低播放時(shí)間閾值 > 最低起播時(shí)間閾值>實(shí)際可播放時(shí)間。
[0046]需要說明的是,上述起播控制條件參數(shù)和播放控制條件參數(shù),可以由本領(lǐng)域技術(shù)人員根據(jù)各種網(wǎng)絡(luò)條件以及自己的經(jīng)驗(yàn)給出,也可以通過程序自動(dòng)測試當(dāng)時(shí)的網(wǎng)絡(luò)環(huán)境、待播放視頻的類型和大小計(jì)算緩沖區(qū)的大小,從而使網(wǎng)絡(luò)播放更加流暢。
[0047]參照圖4,示出了上述第二方法實(shí)施例的系統(tǒng)所包括的部件之間信息傳遞過程的時(shí)序圖,具體說明如下:
首先,上層播放器收到媒體播放請求后,將待播放數(shù)據(jù)的地址標(biāo)識(shí)通過通信服務(wù)單元轉(zhuǎn)發(fā)給下層播放單元;
其次,上層播放器通過通信服務(wù)單元設(shè)置下層播放器的起播控制條件參數(shù);
起播控制條件包括起播時(shí)間閾值Prepare_Buffer_Durat1n ; Prepare_Buffer_Durat1n的作用是告訴下層播放單元需要緩沖能夠播放多長時(shí)間的數(shù)據(jù)。這一設(shè)置的作用范圍僅僅在起播前,起播后會(huì)根據(jù)后面另外設(shè)置的緩沖區(qū)大小來進(jìn)行播放控制。
[0048]第三,上層播放器通過通信服務(wù)單元向下層播放器發(fā)送異步數(shù)據(jù)下載指令,然后,下層播放器向數(shù)據(jù)下載單元發(fā)出異步數(shù)據(jù)下載請求;
第四,數(shù)據(jù)下載單元向下層播放器反饋下載狀態(tài)信息,下層播放器根據(jù)緩沖區(qū)參數(shù)判斷是否可以開始播放,如果可以,則通過通信服務(wù)單元向上層播放器反饋狀態(tài)信息;
第五,上層播放器通過通信服務(wù)單元向下層播放器發(fā)送視頻播放指令;
第六,起播后,上層播放器通過通信服務(wù)單元設(shè)置下層播放器的播放控制條件。
[0049]其中,上述播放控制條件參數(shù)包括最低播放時(shí)間閾值Min-Buffer-Durat1n和最高播放時(shí)間閾值Max-Buffer-Durat1n ;當(dāng)緩沖區(qū)中的視頻數(shù)據(jù)時(shí)間小于Min-Buf f er-Durat 1n時(shí),下層播放器將暫停視頻播放過程,直至數(shù)據(jù)下載單元下載到緩沖區(qū)中的數(shù)據(jù)能夠滿足播放要求;當(dāng)緩沖區(qū)中的視頻數(shù)據(jù)時(shí)間大于或等于Max-Buffer-Durat1n時(shí),數(shù)據(jù)下載單元將暫停數(shù)據(jù)下載過程,以便省下網(wǎng)絡(luò)帶寬供設(shè)備的其他應(yīng)用請求網(wǎng)絡(luò)數(shù)據(jù)。
[0050]對(duì)于前述的各方法實(shí)施例,為了描述簡單,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域的技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)楦鶕?jù)本發(fā)明,某些步驟可以采用其他順序或同時(shí)執(zhí)行;其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,上述方法實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明所必須的。
[0051]裝置實(shí)施例:
參照圖5,示出了本發(fā)明視頻播放裝置一實(shí)施例的結(jié)構(gòu)框圖,包括播放請求獲取單元21、數(shù)據(jù)下載單元22、起播控制單元23、計(jì)時(shí)器24和播放控制單元25,其中:
播放請求獲取單元21,用于接收包括有待播放數(shù)據(jù)的地址標(biāo)識(shí)的視頻播放請求;數(shù)據(jù)下載單元22,用于獲取起播控制條件,根據(jù)播放請求獲取單元21獲得的待播放數(shù)據(jù)的地址標(biāo)識(shí)和所述起播控制條件下載待播放數(shù)據(jù);為提高系統(tǒng)運(yùn)行效率,數(shù)據(jù)下載單元22優(yōu)選以異步方式下載待播放數(shù)據(jù);
起播控制單元23,用于根據(jù)數(shù)據(jù)下載單元22獲得的起播控制條件播放數(shù)據(jù)下載單元22下載到緩沖區(qū)中的待播放數(shù)據(jù);
在進(jìn)一步的裝置實(shí)施例中,起播控制條件包括起播時(shí)間閾值,數(shù)據(jù)下載單元23具體包括數(shù)據(jù)量計(jì)算子單元23-1和下載子單元23-2 ;其中:
數(shù)據(jù)量計(jì)算子單元23-1用于根據(jù)起播時(shí)間閾值計(jì)算用于起播的所述待播放數(shù)據(jù)的數(shù)據(jù)量;
下載子單元23-2用于根據(jù)用于起播的所述待播放數(shù)據(jù)的數(shù)據(jù)量和地址標(biāo)識(shí)下載用于起播的所述待播放數(shù)據(jù)。
[0052]在另一進(jìn)一步的裝置實(shí)施例中,起播控制條件包括有起播時(shí)間閾值和最低起播時(shí)間閾值,且最低播放時(shí)間閾值小于起播時(shí)間閾值;起播控制單元23用于判斷所述已下載的待播放數(shù)據(jù)的數(shù)據(jù)量的可播放時(shí)長是否大于所述最低起播時(shí)間閾值;若否,則暫停播放所述待播放數(shù)據(jù),繼續(xù)所述待播放數(shù)據(jù)的下載過程。
[0053]計(jì)時(shí)器24,用于計(jì)算待播放數(shù)據(jù)的已播放時(shí)長;
播放控制單元25,用于判斷計(jì)時(shí)器24獲得的待播放數(shù)據(jù)的已播放時(shí)長是否大于預(yù)設(shè)播放時(shí)長;當(dāng)待播放數(shù)據(jù)的已播放時(shí)長大于預(yù)設(shè)播放時(shí)長時(shí),獲取播放控制條件,并根據(jù)該播放控制條件下載播放剩余的待播放數(shù)據(jù)。
[0054]在進(jìn)一步的裝置實(shí)施例中,播放控制單元25具體包括:
控制條件轉(zhuǎn)換子單元25-1,用于判斷計(jì)時(shí)器24獲得的待播放數(shù)據(jù)的已播放時(shí)長是否大于預(yù)設(shè)播放時(shí)長,當(dāng)待播放數(shù)據(jù)的已播放時(shí)長大于預(yù)設(shè)播放時(shí)長時(shí),調(diào)度播放條件獲取子單元25-2獲取播放控制條件,以及調(diào)度過程控制子單元25-3根據(jù)上述播放控制條件播放剩余的待播放數(shù)據(jù);
播放條件獲取子單元25-2,用于獲取播放控制條件,其中,播放控制條件包括最低播放時(shí)間閾值和最高播放時(shí)間閾值,且最低播放時(shí)間閾值小于最高播放時(shí)間閾值;
過程控制子單元25-3,用于控制剩余待播放數(shù)據(jù)的播放與下載過程,其中,當(dāng)已下載未播放的待播放數(shù)據(jù)的可播放時(shí)長小于最低播放時(shí)間閾值時(shí),暫停播放上述待播放數(shù)據(jù),等待數(shù)據(jù)下載單元22繼續(xù)下載待播放數(shù)據(jù);當(dāng)已下載未播放的待播放數(shù)據(jù)的可播放時(shí)長大于或等于最高播放時(shí)間閾值時(shí),繼續(xù)播放待播放數(shù)據(jù),同時(shí)暫停數(shù)據(jù)下載單元22的下載過程。
[0055]在本發(fā)明一個(gè)進(jìn)一步的優(yōu)選實(shí)施例中,還設(shè)置有條件設(shè)置單元26,可用于測試網(wǎng)速,并根據(jù)實(shí)際獲得的網(wǎng)速動(dòng)態(tài)設(shè)置起播控制條件和播放控制條件。其中,當(dāng)網(wǎng)速較快時(shí),可以將起播時(shí)間閾值設(shè)置為一個(gè)相對(duì)較小的數(shù)值;當(dāng)網(wǎng)速較慢時(shí),可以將起播時(shí)間閾值設(shè)置為一個(gè)相對(duì)較大的數(shù)值,同時(shí),相應(yīng)增加最低播放時(shí)間閾值,使其大于實(shí)際可播放時(shí)間。
[0056]另外,本發(fā)明還公開了一種智能終端,該智能終端包括有上述的視頻播放裝置,能夠根據(jù)網(wǎng)絡(luò)環(huán)境情況動(dòng)態(tài)調(diào)整緩沖區(qū)的起播控制條件和播放控制條件,在提高首播速度的同時(shí),還能夠盡量避免播放過程中頻繁出現(xiàn)緩沖提示的問題。本發(fā)明提供的智能終端可以為智能電視,也可以是智能手機(jī),本發(fā)明對(duì)智能終端的類型不予限制,只要配置有安卓操作系統(tǒng)平臺(tái)即可。
[0057]需要說明的是,上述裝置或系統(tǒng)實(shí)施例屬于優(yōu)選實(shí)施例,所涉及的單元和模塊并不一定是本發(fā)明所必須的。
[0058]本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。對(duì)于本發(fā)明的裝置實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
[0059]以上對(duì)本發(fā)明所提供的一種視頻播放方法和裝置、智能終端,進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
【權(quán)利要求】
1.一種視頻播放方法,其特征在于,包括: 接收視頻播放請求,所述視頻播放請求包括待播放數(shù)據(jù)的地址標(biāo)識(shí); 獲取起播控制條件,根據(jù)所述待播放數(shù)據(jù)的地址標(biāo)識(shí)和所述起播控制條件下載所述待播放數(shù)據(jù); 根據(jù)所述起播控制條件播放所述待播放數(shù)據(jù); 計(jì)算所述待播放數(shù)據(jù)的已播放時(shí)長; 判斷所述待播放數(shù)據(jù)的已播放時(shí)長是否大于預(yù)設(shè)播放時(shí)長,若所述待播放數(shù)據(jù)的已播放時(shí)長大于所述預(yù)設(shè)播放時(shí)長,獲取播放控制條件,根據(jù)所述播放控制條件下載播放剩余所述待播放數(shù)據(jù)。
2.如權(quán)利要求1所述的視頻播放方法,其特征在于,所述起播控制條件包括起播時(shí)間閾值; 所述根據(jù)所述待播放數(shù)據(jù)的地址標(biāo)識(shí)和所述起播控制條件下載所述待播放數(shù)據(jù),包括: 根據(jù)所述起播時(shí)間閾值計(jì)算用于起播的所述待播放數(shù)據(jù)的數(shù)據(jù)量; 根據(jù)用于起播的所述待播放數(shù)據(jù)的數(shù)據(jù)量和地址標(biāo)識(shí)下載用于起播的所述待播放數(shù)據(jù)。
3.如權(quán)利要求1所述的視頻播放方法,其特征在于,所述起播控制條件包括最低起播時(shí)間閾值; 所述根據(jù)所述起播控制條件播放所述待播放數(shù)據(jù),包括: 判斷所述已下載的待播放數(shù)據(jù)的數(shù)據(jù)量的可播放時(shí)長是否大于所述最低起播時(shí)間閾值;若否,則暫停播放所述待播放數(shù)據(jù),繼續(xù)所述待播放數(shù)據(jù)的下載過程。
4.如權(quán)利要求3所述的視頻播放方法,其特征在于,所述最低播放時(shí)間閾值小于起播時(shí)間閾值。
5.如權(quán)利要求1所述的視頻播放方法,其特征在于,所述播放控制條件包括最低播放時(shí)間閾值和最高播放時(shí)間閾值;所述最低播放時(shí)間閾值小于最高播放時(shí)間閾值;根據(jù)所述播放控制條件播放所述待播放數(shù)據(jù)的方法具體包括: 判斷已下載未播放的待播放數(shù)據(jù)的可播放時(shí)長是否小于最低播放時(shí)間閾值,若是,則暫停播放所述待播放數(shù)據(jù),繼續(xù)所述待播放數(shù)據(jù)的下載過程; 判斷已下載未播放的待播放數(shù)據(jù)的可播放時(shí)長是否大于或等于最高播放時(shí)間閾值,若是,則繼續(xù)播放所述待播放數(shù)據(jù),暫停所述待播放數(shù)據(jù)的下載過程。
6.如權(quán)利要求1至5所述的任一視頻播放方法,其特征在于,所述起播時(shí)間閾值、最低播放時(shí)間閾值和最高播放時(shí)間閾值根據(jù)實(shí)際網(wǎng)速動(dòng)態(tài)設(shè)置。
7.一種視頻播放裝置,其特征在于,包括: 播放請求獲取單元,用于接收視頻播放請求,所述視頻播放請求包括待播放數(shù)據(jù)的地址標(biāo)識(shí); 數(shù)據(jù)下載單元,用于獲取起播控制條件,根據(jù)所述待播放數(shù)據(jù)的地址標(biāo)識(shí)和所述起播控制條件下載所述待播放數(shù)據(jù); 起播控制單元,用于根據(jù)所述起播控制條件播放所述數(shù)據(jù)下載單元下載的待播放數(shù)據(jù); 計(jì)時(shí)器,用于計(jì)算所述待播放數(shù)據(jù)的已播放時(shí)長; 播放控制單元,用于判斷計(jì)時(shí)器獲得的所述待播放數(shù)據(jù)的已播放時(shí)長是否大于預(yù)設(shè)播放時(shí)長;當(dāng)所述待播放數(shù)據(jù)的已播放時(shí)長大于所述預(yù)設(shè)播放時(shí)長時(shí),獲取播放控制條件,根據(jù)所述播放控制條件下載播放剩余所述待播放數(shù)據(jù)。
8.如權(quán)利要求7所述的視頻播放裝置,其特征在于,所述起播控制條件包括起播時(shí)間閾值; 所述數(shù)據(jù)下載單元包括數(shù)據(jù)量計(jì)算子單元和下載子單元; 所述數(shù)據(jù)量計(jì)算子單元用于根據(jù)所述起播時(shí)間閾值計(jì)算用于起播的所述待播放數(shù)據(jù)的數(shù)據(jù)量; 所述下載子單元用于根據(jù)用于起播的所述待播放數(shù)據(jù)的數(shù)據(jù)量和地址標(biāo)識(shí)下載用于起播的所述待播放數(shù)據(jù)。
9.如權(quán)利要求7所述的視頻播放裝置,其特征在于,所述起播控制條件包括起播時(shí)間閾值和最低起播時(shí)間閾值,所述最低播放時(shí)間閾值小于起播時(shí)間閾值; 所述起播控制單元用于判斷所述已下載的待播放數(shù)據(jù)的數(shù)據(jù)量的可播放時(shí)長是否大于所述最低起播時(shí)間閾值;若否,則暫停播放所述待播放數(shù)據(jù),繼續(xù)所述待播放數(shù)據(jù)的下載過程。
10.如權(quán)利要求7所述的視頻播放裝置,其特征在于,所述播放控制單元具體包括: 控制條件轉(zhuǎn)換子單元,用于判斷計(jì)時(shí)器獲得的所述待播放數(shù)據(jù)的已播放時(shí)長是否大于預(yù)設(shè)播放時(shí)長,當(dāng)所述待播放數(shù)據(jù)的已播放時(shí)長大于所述預(yù)設(shè)播放時(shí)長時(shí),調(diào)度播放條件獲取子單元獲取播放控制條件,以及調(diào)度過程控制子單元根據(jù)所述播放控制條件播放剩余的所述待播放數(shù)據(jù); 播放條件獲取子單元,用于獲取播放控制條件,其中,所述播放控制條件包括最低播放時(shí)間閾值和最高播放時(shí)間閾值,且所述最低播放時(shí)間閾值小于最高播放時(shí)間閾值; 過程控制子單元,用于控制剩余待播放數(shù)據(jù)的播放與下載過程,其中,當(dāng)已下載未播放的待播放數(shù)據(jù)的可播放時(shí)長小于最低播放時(shí)間閾值時(shí),暫停播放所述待播放數(shù)據(jù),等待數(shù)據(jù)下載單元繼續(xù)下載所述待播放數(shù)據(jù);當(dāng)已下載未播放的待播放數(shù)據(jù)的可播放時(shí)長大于或等于最高播放時(shí)間閾值時(shí),繼續(xù)播放所述待播放數(shù)據(jù),暫停數(shù)據(jù)下載單元的下載過程。
11.如權(quán)利要求7至10任一所述的視頻播放裝置,其特征在于,所述起播時(shí)間閾值、最低播放時(shí)間閾值和最高播放時(shí)間閾值根據(jù)實(shí)際網(wǎng)速動(dòng)態(tài)設(shè)置。
12.—種智能終端,其特征在于,包括權(quán)利要求7至11任一所述的視頻播放裝置。
【文檔編號(hào)】H04N21/24GK104244033SQ201410446996
【公開日】2014年12月24日 申請日期:2014年9月3日 優(yōu)先權(quán)日:2014年9月3日
【發(fā)明者】黃鵬 申請人:樂視致新電子科技(天津)有限公司