網(wǎng)絡(luò)多媒體數(shù)據(jù)的播放方法及播放系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及多媒體傳輸技術(shù)領(lǐng)域,具體涉及一種網(wǎng)絡(luò)多媒體數(shù)據(jù)的播放方法以及一種網(wǎng)絡(luò)多媒體數(shù)據(jù)的播放系統(tǒng)。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)技術(shù)的日益發(fā)展,使用瀏覽器觀看視頻的用戶越來(lái)越多。播放器(例如flash腳本)在網(wǎng)頁(yè)上播放視頻時(shí)通過(guò)約定的機(jī)制得到視頻文件的http地址,然后發(fā)出請(qǐng)求,邊下載邊播放,下載的數(shù)據(jù)都保存在瀏覽器緩存里。由于很多視頻是電影或者電視劇等長(zhǎng)視頻,此外用戶對(duì)視頻清晰度的要求也越來(lái)越高,這些因素導(dǎo)致了視頻文件越來(lái)越大,也使得對(duì)瀏覽器緩存的要求越來(lái)越高。用戶在點(diǎn)播視頻網(wǎng)站內(nèi)容時(shí),如果觀看視頻時(shí)間太長(zhǎng),存儲(chǔ)的視頻內(nèi)容太多,會(huì)導(dǎo)致播放器(如flash播放器)內(nèi)存占用太高,從而導(dǎo)致出現(xiàn)例如瀏覽器崩潰、電腦內(nèi)存占用高導(dǎo)致設(shè)備卡頓等問(wèn)題。
[0003]為規(guī)避這些問(wèn)題,已有技術(shù)使用將長(zhǎng)視頻切片的方法,即播放到某一分段的視頻時(shí)只下載該分段的內(nèi)容,并清空其余的所有分段。這種隨看隨刪的處理方式雖然可以減少由于提前下載了后面分段的數(shù)據(jù)但用戶可能沒(méi)有觀看到那個(gè)分段就關(guān)閉視頻而造成的浪費(fèi),但是,其弊端是,當(dāng)用戶來(lái)回拖曳播放進(jìn)度條以搜尋播放位置時(shí),會(huì)造成數(shù)據(jù)重復(fù)下載,導(dǎo)致帶寬浪費(fèi)。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供一種內(nèi)存管理更為恰當(dāng)?shù)木W(wǎng)絡(luò)多媒體數(shù)據(jù)的播放方法及系統(tǒng)。
[0005]根據(jù)本發(fā)明的第一方面,本發(fā)明提供一種網(wǎng)絡(luò)多媒體數(shù)據(jù)的播放方法,包括以下步驟:
下載播放步驟:分塊接收和緩存來(lái)自下載源的多媒體數(shù)據(jù),并進(jìn)行播放;
內(nèi)存管理步驟:當(dāng)緩存的分塊的多媒體數(shù)據(jù)的數(shù)據(jù)量達(dá)到預(yù)定基準(zhǔn)量時(shí),根據(jù)播放位置對(duì)緩存的數(shù)據(jù)量進(jìn)行定時(shí)監(jiān)控或進(jìn)行刪除操作。
[0006]根據(jù)本發(fā)明的第二方面,本發(fā)明提供一種網(wǎng)絡(luò)多媒體數(shù)據(jù)的播放系統(tǒng),包括: 下載播放模塊,用于分塊接收和緩存來(lái)自下載源的多媒體數(shù)據(jù),并進(jìn)行播放;
內(nèi)存管理模塊,用于當(dāng)緩存的分塊的多媒體數(shù)據(jù)的數(shù)據(jù)量達(dá)到預(yù)定基準(zhǔn)量時(shí),根據(jù)播放位置對(duì)緩存的數(shù)據(jù)量進(jìn)行監(jiān)控或進(jìn)行刪除操作。
[0007]本發(fā)明的有益效果是:在播放和下載的同時(shí),對(duì)緩存的數(shù)據(jù)量進(jìn)行監(jiān)控或刪除,避免緩存過(guò)多而造成因內(nèi)存占用太高導(dǎo)致的設(shè)備卡頓現(xiàn)象,此外還通過(guò)監(jiān)控?cái)?shù)據(jù)量避免隨看隨刪方式而導(dǎo)致的可能造成重復(fù)下載、浪費(fèi)帶寬的問(wèn)題。
【附圖說(shuō)明】
[0008]圖1為本發(fā)明一種實(shí)施例的網(wǎng)絡(luò)多媒體數(shù)據(jù)的播放方法的流程示意圖;
圖2為本發(fā)明一種實(shí)施例的網(wǎng)絡(luò)多媒體數(shù)據(jù)的播放系統(tǒng)的結(jié)構(gòu)示意圖; 圖3為本發(fā)明一種實(shí)例中網(wǎng)絡(luò)多媒體數(shù)據(jù)的播放與下載的流程圖。
【具體實(shí)施方式】
[0009]下面通過(guò)【具體實(shí)施方式】結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。
[0010][實(shí)施例1]
如圖1所示,依據(jù)本發(fā)明的一種實(shí)施方式,提供一種網(wǎng)絡(luò)多媒體數(shù)據(jù)的播放方法,包括下載播放步驟si和內(nèi)存管理步驟S3。
[0011]下載播放步驟S1:分塊接收和緩存來(lái)自下載源的多媒體數(shù)據(jù),并進(jìn)行播放。
[0012]在本實(shí)施例中,采用分塊請(qǐng)求并存儲(chǔ)的方式來(lái)保存數(shù)據(jù),這樣分塊數(shù)據(jù)既可以方便下載上傳,也方便內(nèi)存管理。例如將一個(gè)1073841824個(gè)字節(jié)?1G的視頻均勻分成大小262144個(gè)字節(jié)=256K的分塊,一共分成4097塊,前面4096塊每塊大小為262144個(gè)字節(jié)=256Κ,最后一塊為100000個(gè)字節(jié)。
[0013]內(nèi)存管理步驟S3:當(dāng)緩存的分塊的多媒體數(shù)據(jù)的數(shù)據(jù)量達(dá)到預(yù)定基準(zhǔn)量時(shí),根據(jù)播放位置對(duì)緩存的數(shù)據(jù)量進(jìn)行定時(shí)監(jiān)控或進(jìn)行刪除操作。具體地,步驟S3包括如下步驟S31?S34。
[0014]步驟S31,判斷緩存的數(shù)據(jù)量是否達(dá)到預(yù)定基準(zhǔn)量,如果否,則執(zhí)行下載播放步驟S1,如果是,則執(zhí)行步驟S32。這里,預(yù)定基準(zhǔn)量是事先設(shè)定的,可以為經(jīng)驗(yàn)值,例如假設(shè)電腦內(nèi)存為1G,在瀏覽器下載并播放視頻時(shí),為盡量不占用過(guò)多內(nèi)存而導(dǎo)致設(shè)備卡頓等,可以設(shè)定大約三分之一的內(nèi)存用于瀏覽器緩存使用。
[0015]步驟S32,判斷從播放位置起的緩存的數(shù)據(jù)量是否達(dá)到預(yù)定待播量,如果是,則執(zhí)行步驟S33,如果否,則執(zhí)行步驟S34。這里,預(yù)定待播量是指從播放位置起預(yù)定時(shí)間內(nèi)需要播放的多媒體的數(shù)據(jù)量,該值可以是事先設(shè)定的經(jīng)驗(yàn)值。
[0016]步驟S33,暫停下載播放步驟S1,開啟數(shù)據(jù)量定時(shí)監(jiān)控,即定時(shí)對(duì)從播放位置起的緩存的數(shù)據(jù)量進(jìn)行判斷,如果該數(shù)據(jù)量小于預(yù)定最少播放量,則重新啟動(dòng)下載播放步驟S1,否則繼續(xù)進(jìn)行定時(shí)判斷。這里,預(yù)定最少播放量是指從播放位置起預(yù)定時(shí)間內(nèi)最少需要播放的多媒體的數(shù)據(jù)量,該值可以是預(yù)先設(shè)定的經(jīng)驗(yàn)值。
[0017]步驟S34,繼續(xù)接收和緩存來(lái)自下載源的多媒體數(shù)據(jù),并根據(jù)該預(yù)定基準(zhǔn)量進(jìn)行刪除操作,該刪除操作具體包括:按塊依次刪除從多媒體數(shù)據(jù)的文件頭到播放位置的分塊的多媒體數(shù)據(jù),每執(zhí)行一次刪除,判斷刪除后的數(shù)據(jù)量是否大于預(yù)定基準(zhǔn)量,如果否,則停止刪除,如果是,則繼續(xù)刪除直至播放位置處于下一待刪除的分塊時(shí)停止,并對(duì)剩余的緩存的多媒體數(shù)據(jù)進(jìn)行判斷,如果該剩余的緩存的多媒體數(shù)據(jù)的數(shù)據(jù)量大于預(yù)定基準(zhǔn)量,則按塊依次刪除從多媒體數(shù)據(jù)的文件尾到播放位置的數(shù)據(jù),直至刪除后的緩存的多媒體數(shù)據(jù)的數(shù)據(jù)量不超過(guò)預(yù)定基準(zhǔn)量。
[0018]本實(shí)施例在播放和下載的同時(shí),對(duì)緩存的數(shù)據(jù)量進(jìn)行監(jiān)控或刪除,在定時(shí)監(jiān)控時(shí)確保只預(yù)先下載短時(shí)間需要的視頻數(shù)據(jù)用來(lái)保證流暢播放,甚至在P2P點(diǎn)播技術(shù)中可用于提供P2P上傳,而不下載離播放點(diǎn)太遠(yuǎn)的用戶可能不會(huì)觀看到的數(shù)據(jù),從而可節(jié)約服務(wù)器帶寬;而且,通過(guò)對(duì)數(shù)據(jù)量的多少判斷來(lái)合理下載與儲(chǔ)存數(shù)據(jù),避免緩存過(guò)多而造成因內(nèi)存占用太高導(dǎo)致的設(shè)備卡頓現(xiàn)象,實(shí)現(xiàn)低內(nèi)存占用的長(zhǎng)視頻文件播放,提高帶寬利用率,給用戶帶來(lái)更加流暢的視頻觀看體驗(yàn),甚至在P2P點(diǎn)播技術(shù)中能夠保證較高P2P分享率。顯然,本實(shí)施例的這種方法也可以是一種應(yīng)用于Flash P2P點(diǎn)播技術(shù)的內(nèi)存管理優(yōu)化方法。
[0019][實(shí)施例2]
如圖2所示,依據(jù)本發(fā)明的一種實(shí)施方式,提供一種網(wǎng)絡(luò)多媒體數(shù)據(jù)的播放系統(tǒng)100,包括下載播放模塊10和內(nèi)存管理模塊。下載播放模塊10用于分塊接收和緩存來(lái)自下載源的多媒體數(shù)據(jù),并進(jìn)行播放;內(nèi)存管理模塊用于當(dāng)緩存的分塊的多媒體數(shù)據(jù)的數(shù)據(jù)量達(dá)到預(yù)定基準(zhǔn)量時(shí),根據(jù)播放位置對(duì)緩存的數(shù)據(jù)量進(jìn)行監(jiān)控或進(jìn)行刪除操作。
[0020]具體地,內(nèi)存管理模塊包括第一數(shù)據(jù)量判斷單元31、第二數(shù)據(jù)量判斷單元32、定時(shí)監(jiān)控單元33和緩存刪除單元34。
[0021]第一數(shù)據(jù)量判斷單元31用于判斷緩存的數(shù)據(jù)量是否達(dá)到預(yù)定基準(zhǔn)量,如果否,則觸發(fā)執(zhí)行下載播放模塊10,如果是,則觸發(fā)第二數(shù)據(jù)量判斷單元32。
[0022]第二數(shù)據(jù)量判斷單元32用于判斷從播放位置起緩存的數(shù)據(jù)量是否達(dá)到預(yù)定待播量,預(yù)定待播量為從播放位置起預(yù)定時(shí)間內(nèi)需要播放的多媒體的數(shù)據(jù)量,如果是,則暫停下載播放模塊10,并觸發(fā)定時(shí)監(jiān)控單元33,如果否,則觸發(fā)緩存刪除單元34。
[0023]定時(shí)監(jiān)控單元33用于根據(jù)預(yù)定待播量進(jìn)行數(shù)據(jù)量定時(shí)監(jiān)控,具體地,定時(shí)監(jiān)控單元33包括第一定時(shí)判斷子單元,用于定時(shí)對(duì)從播放位置起的緩存的數(shù)據(jù)量進(jìn)行判斷,如果該數(shù)據(jù)量小于預(yù)定最少播放量,則重新啟動(dòng)下載播放模塊10,否則繼續(xù)進(jìn)行定時(shí)判斷。
[0024]緩存刪除單元34用于繼續(xù)接收和緩存來(lái)自下載源的多媒體數(shù)據(jù),并根據(jù)所述預(yù)定基準(zhǔn)量進(jìn)行刪除操作,緩存刪除單元34包括第一刪除和判斷子單元及第二刪除和判斷子單元。第一刪除和判斷子單元用于按塊依次刪除從所述多媒體數(shù)