欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種隨機(jī)播放方法和裝置的制作方法

文檔序號(hào):6780299閱讀:142來(lái)源:國(guó)知局
專利名稱:一種隨機(jī)播放方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及多媒體播放技術(shù)領(lǐng)域,特別涉及對(duì)多媒體文件進(jìn)行隨機(jī)播放的方法和直O(jiān)
背景技術(shù)
在涉及多媒體播放的各種媒體播放設(shè)備或系統(tǒng)中,如個(gè)人電腦、手機(jī)、便攜式媒體 播放設(shè)備、網(wǎng)絡(luò)點(diǎn)播等,一個(gè)常用的功能是對(duì)一定數(shù)目的多媒體文件進(jìn)行隨機(jī)播放。所謂隨 機(jī)播放,就是待播放的多媒體文件組成一個(gè)播放清單,對(duì)該播放清單中的多媒體文件進(jìn)行 隨機(jī)排序,然后按照排序的結(jié)果依次播放這些多媒體文件。洗牌(Smffle)算法是現(xiàn)有技術(shù)中廣泛采用的隨機(jī)排序方法。對(duì)于包含N個(gè)元素 的列表,該方法通過(guò)隨機(jī)數(shù)選取算法生成隨機(jī)數(shù),根據(jù)隨機(jī)數(shù)對(duì)列表進(jìn)行重新排序,可以保 證連續(xù)N次抽取不會(huì)獲得重復(fù)的元素,并且每輪(N次)的獲取的元素的順序都不相同。但 是,如果待播放的多媒體文件數(shù)目很大時(shí),該算法會(huì)面對(duì)兩個(gè)難以解決的問(wèn)題1、需要耗費(fèi)大量的存儲(chǔ)空間,而手機(jī)或便攜式媒體播放設(shè)備的存儲(chǔ)空間有限,難 以 兩足需要;2、受處理器(CPU)精度影響,隨機(jī)數(shù)選取算法并不能提供任意大的隨機(jī)數(shù)。要輸 出更大的隨機(jī)數(shù),必須采用更復(fù)雜的隨機(jī)數(shù)選擇算法,計(jì)算量大,效率低。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的在于,提出一種隨機(jī)播放方法和裝置,可以克服當(dāng)待播放 多媒體文件數(shù)目較大時(shí),需要大量存儲(chǔ)空間和必須采用復(fù)雜的隨機(jī)數(shù)選取算法的問(wèn)題。本發(fā)明實(shí)施例提出一種多媒體文件的隨機(jī)播放方法,包括如下步驟將待播放的多媒體文件進(jìn)行分組;按照洗牌算法對(duì)各組多媒體文件進(jìn)行隨機(jī)排序播放。其中,將待播放的多媒體文件進(jìn)行分組包括對(duì)待播放的多媒體文件的順序號(hào)取模,并將取模所得數(shù)值相同的多媒體文件分為 一組;或者,將順序號(hào)連續(xù)的M個(gè)待播放多媒體文件分為一組,M為一預(yù)定數(shù)值;或者,將指定特征信息相同的待播放多媒體文件分為一組。其中,按照洗牌算法對(duì)各組多媒體文件進(jìn)行隨機(jī)排序播放包括按照預(yù)定的組切換策略選擇一組多媒體文件作為當(dāng)前組;按照洗牌算法得到所述當(dāng)前組的組內(nèi)索引序列;按照所述組內(nèi)索引序列中的索引號(hào)的順序,依次播放所述當(dāng)前組內(nèi)與各索引號(hào) 一一對(duì)應(yīng)的多媒體文件;按照所述組切換策略繼續(xù)選擇其他組的多媒體文件進(jìn)行隨機(jī)播放。其中,所述選擇其他組的多媒體文件進(jìn)行隨機(jī)播放包括
按照所述當(dāng)前組的組內(nèi)索引以及其他任一組的組序號(hào)得到相應(yīng)的文件序號(hào),并播 放所述文件序號(hào)對(duì)應(yīng)的多媒體文件;或者,對(duì)其他任一組的多媒體文件,重新采用洗牌算法得到組內(nèi)索引,并按照該組內(nèi)索 引以及該組的組序號(hào)得到文件序號(hào),并播放所述文件序號(hào)對(duì)應(yīng)的多媒體文件。較佳地,所述組切換策略為對(duì)各個(gè)組按照分組時(shí)產(chǎn)生的組序號(hào)依次切換;或者,將組作為元素,采用洗牌算法進(jìn)行隨機(jī)排序,再按照隨機(jī)排序得到的組序號(hào)依次 切換各個(gè)組。按照所述組內(nèi)索引序列中的索引號(hào)的順序,依次播放所述當(dāng)前組內(nèi)與各索引號(hào) 一一對(duì)應(yīng)的多媒體文件包括按照所述組內(nèi)索引序列以及當(dāng)前組的組序號(hào)得到文件序號(hào)序列,并按照文件序號(hào) 序列中文件序號(hào)的順序,依次播放每一文件序號(hào)所對(duì)應(yīng)的多媒體文件。其中,按照所述組內(nèi)索引序列中的索引號(hào)的順序,依次播放所述當(dāng)前組內(nèi)與各索 引號(hào)一一對(duì)應(yīng)的多媒體文件包括對(duì)于所述組內(nèi)索引序列中的每個(gè)索引號(hào),按順序依次執(zhí)行下述操作按照索引號(hào)以及當(dāng)前組的組序號(hào),得到該索引號(hào)對(duì)應(yīng)的文件序號(hào);播放該文件序號(hào)所對(duì)應(yīng)的多媒體文件。播放文件序號(hào)所對(duì)應(yīng)的多媒體文件的過(guò)程中,若收到回退播放的指令,進(jìn)一步包 括判斷所要回退播放的多媒體文件是否在當(dāng)前組中,若是,則按照索引序列中前一 個(gè)組內(nèi)索引對(duì)應(yīng)的文件序號(hào)播放多媒體文件;否則,根據(jù)組內(nèi)索引計(jì)算上一組的文件序號(hào) =(1-2) XM+iM,其中1為當(dāng)前組的組序號(hào),iM為第M個(gè)組內(nèi)索引,并根據(jù)所計(jì)算的文件序號(hào) 播放多媒體文件。本發(fā)明實(shí)施例還提出一種多媒體文件的隨機(jī)播放裝置,包括分組單元,用于將待播放的多媒體文件進(jìn)行分組;播放單元,按照洗牌算法對(duì)各組多媒體文件進(jìn)行隨機(jī)排序播放。所述分組單元包括將待播放的多媒體文件的順序號(hào)取模,將取模所得數(shù)值相同的多媒體文件分為一 組的模塊;或者,將順序號(hào)連續(xù)的M個(gè)多媒體文件分為一組的模塊,M為一預(yù)定數(shù)值;或者,將指定特征信息相同的多媒體文件分為一組的模塊。所述播放單元包括按照預(yù)定的組切換策略選擇一組多媒體文件作為當(dāng)前組的模塊;按照洗牌算法得到所述當(dāng)前組的組內(nèi)索引序列的模塊;按照所述組內(nèi)索引序列中的索引號(hào)的順序,依次播放所述當(dāng)前組內(nèi)與各索引號(hào) 一一對(duì)應(yīng)的多媒體文件的模塊;按照所述組切換策略繼續(xù)選擇其他組的多媒體文件進(jìn)行隨機(jī)播放的模塊。所述組切換策略為對(duì)各個(gè)組按照分組時(shí)產(chǎn)生的組序號(hào)依次切換;
或者,將組作為元素,采用洗牌算法進(jìn)行隨機(jī)排序,再按照隨機(jī)排序得到的組序號(hào) 依次切換各個(gè)組。所述按照組內(nèi)索引序列中的索引號(hào)的順序,依次播放所述當(dāng)前組內(nèi)與各索引號(hào) 一一對(duì)應(yīng)的多媒體文件包括按照所述組內(nèi)索引序列以及當(dāng)前組的組序號(hào)得到文件序號(hào)序列;按照文件序號(hào)序列中文件序號(hào)的順序,依次播放每一文件序號(hào)所對(duì)應(yīng)的多媒體文 件。按照所述組內(nèi)索引序列中的索引號(hào)的順序,依次播放所述當(dāng)前組內(nèi)與各索引號(hào) 一一對(duì)應(yīng)的多媒體文件包括對(duì)于所述組內(nèi)索引序列中的每個(gè)索引號(hào),按順序依次執(zhí)行下述操作按照索引號(hào)以及當(dāng)前組的組序號(hào),得到該索引號(hào)對(duì)應(yīng)的文件序號(hào);播放該文件序號(hào)所對(duì)應(yīng)的多媒體文件。所述播放單元在收到回退播放的指令時(shí),判斷所要回退播放的多媒體文件是否在 當(dāng)前組中,若是,則按照索引序列中前一個(gè)組內(nèi)索引對(duì)應(yīng)的文件序號(hào)播放多媒體文件;否 則,根據(jù)組內(nèi)索引計(jì)算上一組的文件序號(hào)=(l_2)XM+iM,其中1為當(dāng)前組的組序號(hào),iM為第 M個(gè)組內(nèi)索引,并根據(jù)所計(jì)算的文件序號(hào)播放多媒體文件。從以上技術(shù)方案可以看出,通過(guò)對(duì)多媒體文件進(jìn)行分組,再對(duì)每一組進(jìn)行隨機(jī)排 序,可以極大減小排序所需的計(jì)算量,降低對(duì)多媒體播放裝置的硬件需求,同時(shí)使媒體播放 設(shè)備硬件的數(shù)值精度也能滿足隨機(jī)排序的要求。


圖1為本發(fā)明實(shí)施例提出的排序方法的實(shí)現(xiàn)流程圖;圖2為圖1所示流程中步驟103的洗牌算法的一種實(shí)現(xiàn)流程圖;圖3為圖1所示流程中步驟103至104的一種實(shí)現(xiàn)流程圖;圖4為本發(fā)明實(shí)施例提出的多媒體播放裝置的框圖。
具體實(shí)施例方式現(xiàn)有技術(shù)中的隨機(jī)排序方法遇到的困難在于,隨著待排序的多媒體文件數(shù)目的增 長(zhǎng),所需的存儲(chǔ)空間的增長(zhǎng)是非線性的,換句話說(shuō),存儲(chǔ)空間增長(zhǎng)的速度要快得多,可能會(huì) 超出媒體播放設(shè)備的硬件能力。本發(fā)明方案按照預(yù)定的分組策略將待播放的多媒體文件進(jìn) 行分組;按照洗牌算法對(duì)各組多媒體文件進(jìn)行隨機(jī)排序播放。這樣可以降低所需的存儲(chǔ)空 間,同時(shí)使媒體播放設(shè)備硬件的數(shù)值精度也能滿足隨機(jī)排序的要求。為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步 的詳細(xì)闡述。圖1為本發(fā)明實(shí)施例提出的排序方法的實(shí)現(xiàn)流程,包括如下步驟步驟101 判斷待排序的多媒體文件數(shù)目N是否超出預(yù)先設(shè)置的閾值M,若是,則執(zhí) 行步驟102,否則按照現(xiàn)有的隨機(jī)排序算法對(duì)多媒體文件進(jìn)行排序并播放。步驟102 按照預(yù)定的分組策略將待排序的多媒體文件分成L組,其中每組的多媒 體文件數(shù)目都小于或等于閾值M。較佳地,前L-I組的多媒體文件數(shù)目為M,最后1組的多媒體文件數(shù)目小于或等于M。所述分組策略,可以是按照多媒體文件排序前的順序號(hào)進(jìn)行分組,例如將多媒體 文件的順序號(hào)取模,將取模所得數(shù)值相同的多媒體文件分為一組;或者將具有連續(xù)的順序 號(hào)的M個(gè)多媒體文件分為一組?;蛘撸部梢园凑斩嗝襟w文件的特征信息進(jìn)行分組,例如, 在MP3格式的多媒體文件中記錄有如下特征信息專輯名稱、歌手名稱,則分組時(shí)可以將具 有相同歌手名稱或?qū)]嬅Q的多媒體文件分為一組或者分到同一組中,如果一組中多媒體 文件數(shù)目超過(guò)閾值M,再對(duì)這一組按照序號(hào)進(jìn)行拆分,使得拆分后得到的每組的多媒體文件 數(shù)目均小于等于M。閾值M的選取由實(shí)際系統(tǒng)決定,如采用標(biāo)準(zhǔn)C的rand函數(shù),則M至多為32767,因 為其輸出值范圍是0 0x7fff。閾值M也可以由用戶自定義。步驟103 按照組切換策略選擇一組作為當(dāng)前組,對(duì)當(dāng)前組內(nèi)的多媒體文件采用 洗牌算法進(jìn)行隨機(jī)排序。組切換策略可以是對(duì)各個(gè)組按照分組時(shí)產(chǎn)生的組序號(hào)依次切換; 也可以是將組作為元素,采用洗牌算法進(jìn)行隨機(jī)排序,再按照隨機(jī)排序形成的組序號(hào)依次 切換。每一個(gè)多媒體文件都具有一個(gè)唯一的文件序號(hào),所述文件序號(hào)由組序號(hào)(1)和組 內(nèi)索引⑴構(gòu)成,兩者計(jì)算就可得到多媒體文件的文件序號(hào)=f(l,i) = (l-l)XM+i。其 中,(1-1) XM是偏移量(offset)。該文件序號(hào)表示多媒體文件被播放的次序,而前述多媒 體文件的順序號(hào)則是多媒體文件按照某種規(guī)則排序得到的,例如按照文件大小、修改時(shí)間、 文件名排序等。文件序號(hào)與前述多媒體文件的順序號(hào)是不同的概念。步驟104 按照隨機(jī)排序后的文件序號(hào)依次播放當(dāng)前組內(nèi)的多媒體文件。步驟105 判斷是否所有組均被選擇完畢,若是,則停止播放,否則轉(zhuǎn)至步驟103。本發(fā)明更多實(shí)施例中,若上述判斷結(jié)果為是,也可以轉(zhuǎn)至步驟103或轉(zhuǎn)至步驟 102,進(jìn)行循環(huán)播放。本發(fā)明實(shí)施例中,設(shè)置一包含M個(gè)存儲(chǔ)單元的緩存隊(duì)列,所述存儲(chǔ)單元用于存儲(chǔ) 洗牌算法得到的組內(nèi)索引。所述步驟103至步驟104的具體實(shí)現(xiàn)流程如圖2所示,包括如下步驟步驟201 設(shè)置緩存隊(duì)列中各個(gè)存儲(chǔ)單元的初始組內(nèi)索引;首次執(zhí)行時(shí),設(shè)置變量 η = Μ,設(shè)置第χ個(gè)緩存單元的初始組內(nèi)索引為X,1 < χ < M ;非首次執(zhí)行時(shí),將上一組隨機(jī) 排序得到的組內(nèi)索引作為各個(gè)存儲(chǔ)單元的初始組內(nèi)索引;步驟202、任意選取隨機(jī)數(shù)k,1 < k < η ;交換第k個(gè)存儲(chǔ)單元和第η個(gè)存儲(chǔ)單元 的組內(nèi)索引;步驟203 判斷是否變量η = 2,若是,對(duì)當(dāng)前組的隨機(jī)排序完成,執(zhí)行步驟204 ;否 則令變量η = η-1并跳轉(zhuǎn)至步驟202 ;步驟204 得到第χ個(gè)存儲(chǔ)單元對(duì)應(yīng)的文件序號(hào)=(1-1) XM+ix,其中1為當(dāng)前組 的組序號(hào),1彡1彡L ;ix為第X個(gè)存儲(chǔ)單元中存儲(chǔ)的組內(nèi)索引,1 ^;按照存儲(chǔ)單元 的順序,依次播放存儲(chǔ)單元對(duì)應(yīng)的文件序號(hào)對(duì)應(yīng)的多媒體文件。上述實(shí)現(xiàn)流程實(shí)際是將隨機(jī)排序與播放分離成獨(dú)立的步驟,首先按照洗牌算法計(jì) 算得到當(dāng)前組的全部組內(nèi)索引;然后按照組內(nèi)索引以及當(dāng)前組的組序號(hào)得到文件序號(hào),并 按照文件序號(hào)依次播放當(dāng)前組內(nèi)的多媒體文件。
以上只是給出洗牌算法的一種具體實(shí)現(xiàn)示例,本發(fā)明并未將洗牌算法的范圍限定 于此。在多媒體文件播放的過(guò)程中,可能還會(huì)涉及到與隨機(jī)播放有關(guān)的特殊操作。例如, 用戶要求回退播放上一個(gè)多媒體文件,或者用戶在播放的過(guò)程中向播放列表添加新的多媒 體文件或?qū)⒁延械亩嗝襟w文件從播放列表中刪除。在回退操作中,要求能夠記錄已播放的上一個(gè)多媒體文件的排序標(biāo)識(shí),并且應(yīng)該 能回溯盡可能多的排序標(biāo)識(shí)。如果當(dāng)前播放的多媒體文件是一組的第一個(gè)多媒體文件,在 這種情況下回退,則必然需要回退到上一組的多媒體文件。以上所述實(shí)施例步驟103-104 中,對(duì)于當(dāng)前組中所有多媒體文件排序后,再依次播放,則緩存隊(duì)列中記錄的都是當(dāng)前組的 排序標(biāo)識(shí),無(wú)法再回溯到上一組,極端情況下,如果當(dāng)前播放的多媒體文件是該組中第一個(gè) 被播放的多媒體文件,則無(wú)法進(jìn)行回退操作。一種較佳的替代方案是按照洗牌算法得到當(dāng) 前組內(nèi)的一個(gè)尚未播放的多媒體文件的文件序號(hào),并按照所述文件序號(hào)播放對(duì)應(yīng)的多媒體 文件;重復(fù)上述步驟直到當(dāng)前組內(nèi)的多媒體文件均被播放。實(shí)際上是將所述步驟103至步 驟104分成M個(gè)子步驟來(lái)執(zhí)行,每個(gè)子步驟確定并播放一個(gè)多媒體文件。其流程圖如圖3 所示,包括步驟301 設(shè)置緩存隊(duì)列中各個(gè)存儲(chǔ)單元的初始組內(nèi)索引;首次執(zhí)行時(shí),設(shè)置變量 j = 1,設(shè)置第χ個(gè)緩存單元的初始組內(nèi)索引為X,1 < χ < M ;非首次執(zhí)行時(shí),將上一組隨機(jī) 排序得到的組內(nèi)索引作為各個(gè)存儲(chǔ)單元的初始組內(nèi)索引;步驟302 任意選取隨機(jī)數(shù)k,j < k < M ;交換第k個(gè)存儲(chǔ)單元和第j個(gè)存儲(chǔ)單元 的組內(nèi)索引;步驟303 計(jì)算第j個(gè)存儲(chǔ)單元對(duì)應(yīng)的文件序號(hào)=(1-1) XM+ij,并播放該文件序 號(hào)對(duì)應(yīng)的多媒體文件;其中1為當(dāng)前組的組序號(hào),Ij為第j個(gè)存儲(chǔ)單元中存儲(chǔ)的組內(nèi)索引;步驟304 令j = j+1,判斷j是否等于M-1,若是,則當(dāng)前組多媒體文件的播放完 成,否則轉(zhuǎn)至步驟302。這樣在播放過(guò)程中的任一時(shí)刻,緩存隊(duì)列中就會(huì)保留相當(dāng)數(shù)量的上一組的排序結(jié) 果,根據(jù)緩存隊(duì)列中記錄的組內(nèi)索引計(jì)算上一組的文件序號(hào),,并據(jù)此確定并播放上一個(gè)多 媒體文件。所述回退播放的處理過(guò)程包括收到回退播放的指令,判斷所要回退播放的多媒體文件是否在當(dāng)前組中,若是,則 按照緩存隊(duì)列中前一個(gè)存儲(chǔ)單元對(duì)應(yīng)的文件序號(hào)播放多媒體文件;否則,根據(jù)緩存隊(duì)列中 記錄的組內(nèi)索引計(jì)算上一組的文件序號(hào)=(1-2) XM+iM,其中1為當(dāng)前組的組序號(hào),iM為第 M個(gè)存儲(chǔ)單元中存儲(chǔ)的組內(nèi)索引,并根據(jù)所計(jì)算的文件序號(hào)播放多媒體文件。例1 對(duì)10個(gè)多媒體文件按5個(gè)一組進(jìn)行分組洗牌排序。第二組的偏移量是5,緩存隊(duì)列中的序號(hào)加5就是其真正的序號(hào)。假設(shè)第一組洗牌完以后緩存隊(duì)列的順序是5,3,1,2,4;以它做第二組的初始值, 如果已經(jīng)切到第二組并播放過(guò)一個(gè)多媒體文件,第二組內(nèi)順序變?yōu)?,3,5,2,4,其中第1 個(gè)存儲(chǔ)單元和第3個(gè)存儲(chǔ)單元的內(nèi)容發(fā)生了交換?;赝说臅r(shí)候根據(jù)第一組偏移和第二組后則可以正確回退的數(shù)目為5_2(因已進(jìn)行 了一次操作),這時(shí)可看到上一次取出的數(shù)“4”,再往前依次為2,5,3,其中5是錯(cuò)的(正確 的應(yīng)該是1,但1已經(jīng)在本次取值是和5互換了)。實(shí)際中由于M值會(huì)比較大(一般大于100),回退的個(gè)數(shù)會(huì)比較小,所以出錯(cuò)的概率會(huì)很低。如果需要在隨機(jī)播放過(guò)程中插入/刪除多媒體文件,則必須先判斷要插入/刪除 的多媒體文件是否在當(dāng)前組中,如果不是,則對(duì)當(dāng)前組不進(jìn)行處理,直接將文件總數(shù)目加/ 減1 ;若是,則對(duì)當(dāng)前組進(jìn)行相應(yīng)處理,具體如下假設(shè)當(dāng)前組是第1組,閾值是M,待插入或刪除的多媒體文件序號(hào)j滿足(1-1) XM < j < 1XM,則表示該多媒體文件在當(dāng)前組中。如果要?jiǎng)h除該多媒體文件,則將所有大于j的文件序號(hào)減1,組內(nèi)多媒體文件數(shù)目 減1,多媒體文件總數(shù)目減1 ;如果要插入該多媒體文件,則將所有大于j的文件序號(hào)加1, 組內(nèi)多媒體文件數(shù)目加1,多媒體文件總數(shù)目加1。例2 刪除文件序號(hào)為7的多媒體文件。若正在取第一組則不會(huì)對(duì)當(dāng)前組有影響,直接對(duì)多媒體文件總數(shù)目減1。若正在取第二組,則文件序號(hào)7映射到緩存隊(duì)列中的組內(nèi)索引應(yīng)該為2,假設(shè)緩存 隊(duì)列中組內(nèi)索引依次為1,3,5,2,4,那么需要對(duì)大于2的組內(nèi)索引減1,并將組內(nèi)索引2之 后的其他組內(nèi)索引向前移動(dòng)一位,同時(shí)對(duì)組內(nèi)文件數(shù)和文件總數(shù)減1。刪除后組內(nèi)索引順序?yàn)?,2( = 3-1),4( = 5-1),3( = 4_1),5,其中有效數(shù)據(jù)只 有前4個(gè),第5個(gè)設(shè)為5是為了避免下一組時(shí)出錯(cuò)。插入與刪除類似,只是被插入的組的組內(nèi)索引總數(shù)可以暫時(shí)大于閾值M,被插入的 組內(nèi)索引之后的組內(nèi)索引依次向后移動(dòng)一位。也可以采用更簡(jiǎn)單的策略即只允許在最后插 入。本發(fā)明實(shí)施例還提出另一種更為簡(jiǎn)單的隨機(jī)播放方法,先按閾值M進(jìn)行分組,設(shè) 組數(shù)為L(zhǎng),保證每個(gè)組元素?cái)?shù)目相近。播放第1組多媒體文件之前,采用洗牌算法對(duì)當(dāng)前組 內(nèi)的多媒體文件進(jìn)行隨機(jī)排序得到組內(nèi)索引,將組內(nèi)索引作為第1組的文件序號(hào);播放第1 組多媒體文件之前,按照已得到的組內(nèi)索引以及當(dāng)前組的組序號(hào)得到文件序號(hào),Kl^L0 這就相當(dāng)于對(duì)每個(gè)組采用與第一組一樣的排序進(jìn)行播放,即緩存隊(duì)列中的一個(gè)元素同時(shí)對(duì) 應(yīng)L個(gè)多媒體文件。該方法的特點(diǎn)可以用更小的計(jì)算量獲得隨機(jī)播放效果。本發(fā)明實(shí)施例提出一種多媒體播放裝置,包括分組單元,用于將待播放的多媒體文件進(jìn)行分組;播放單元,按照洗牌算法對(duì)各組多媒體文件進(jìn)行隨機(jī)排序播放。所述分組單元包括將待播放的多媒體文件的順序號(hào)取模,將取模所得數(shù)值相同的多媒體文件分為一 組的模塊;或者,將順序號(hào)連續(xù)的M個(gè)多媒體文件分為一組的模塊,M為一預(yù)定數(shù)值;或者,將指定特征信息相同的多媒體文件分為一組的模塊。所述播放單元包括按照預(yù)定的組切換策略選擇一組多媒體文件作為當(dāng)前組的模塊;按照洗牌算法得到所述當(dāng)前組的組內(nèi)索引序列的模塊;按照所述組內(nèi)索引序列中的索引號(hào)的順序,依次播放所述當(dāng)前組內(nèi)與各索引號(hào) 一一對(duì)應(yīng)的多媒體文件的模塊;
按照所述組切換策略繼續(xù)選擇其他組的多媒體文件進(jìn)行隨機(jī)播放的模塊。所述組切換策略為對(duì)各個(gè)組按照分組時(shí)產(chǎn)生的組序號(hào)依次切換;或者,將組作為元素,采用洗牌算法進(jìn)行隨機(jī)排序,再按照隨機(jī)排序得到的組序號(hào) 依次切換各個(gè)組。所述按照組內(nèi)索引序列中的索引號(hào)的順序,依次播放所述當(dāng)前組內(nèi)與各索引號(hào) 一一對(duì)應(yīng)的多媒體文件包括按照所述組內(nèi)索引序列以及當(dāng)前組的組序號(hào)得到文件序號(hào)序列;按照文件序號(hào)序列中文件序號(hào)的順序,依次播放每一文件序號(hào)所對(duì)應(yīng)的多媒體文 件。按照所述組內(nèi)索引序列中的索引號(hào)的順序,依次播放所述當(dāng)前組內(nèi)與各索引號(hào) 一一對(duì)應(yīng)的多媒體文件包括對(duì)于所述組內(nèi)索引序列中的每個(gè)索引號(hào),按順序依次執(zhí)行下述操作按照索引號(hào)以及當(dāng)前組的組序號(hào),得到該索引號(hào)對(duì)應(yīng)的文件序號(hào);播放該文件序號(hào)所對(duì)應(yīng)的多媒體文件。所述播放單元在收到回退播放的指令時(shí),判斷所要回退播放的多媒體文件是否在 當(dāng)前組中,若是,則按照索引序列中前一個(gè)組內(nèi)索引對(duì)應(yīng)的文件序號(hào)播放多媒體文件;否 則,根據(jù)組內(nèi)索引計(jì)算上一組的文件序號(hào)=(l_2)XM+iM,其中1為當(dāng)前組的組序號(hào),iM為第 M個(gè)組內(nèi)索引,并根據(jù)所計(jì)算的文件序號(hào)播放多媒體文件。本發(fā)明實(shí)施例還提出一種多媒體播放裝置,如圖4所示,包括分組單元401,按照預(yù)定的分組策略將待排序的多媒體文件分成L組,其中每組的 多媒體文件數(shù)目都小于或等于閾值M ;隨機(jī)排序單元402,按照預(yù)定的組切換策略選擇分組單元401所分成的一組作為 當(dāng)前組,按照洗牌算法進(jìn)行隨機(jī)排序后得到當(dāng)前組的組內(nèi)索引;播放單元403,按照隨機(jī)排序單元402得到的組內(nèi)索引以及當(dāng)前組的組序號(hào)得到 文件序號(hào),按照所述文件序號(hào)依次播放當(dāng)前組內(nèi)的多媒體文件。所述隨機(jī)排序單元402可以對(duì)每一組都進(jìn)行隨機(jī)排序;隨機(jī)排序單元402在播放 任一組多媒體文件之前,均采用洗牌算法對(duì)當(dāng)前組內(nèi)的多媒體文件進(jìn)行隨機(jī)排序得到組內(nèi) 索引;所述播放單元403根據(jù)來(lái)自隨機(jī)排序單元402的組內(nèi)索引以及當(dāng)前組的組序號(hào)得到 文件序號(hào)。或者隨機(jī)排序單元402僅進(jìn)行一次隨機(jī)排序,播放單元403按照該隨機(jī)排序的結(jié) 果播放各個(gè)組,具體為隨機(jī)排序單元402僅在播放第1組多媒體文件之前,采用洗牌算法 對(duì)當(dāng)前組內(nèi)的多媒體文件進(jìn)行隨機(jī)排序得到組內(nèi)索引;所述播放單元403在播放第1組多 媒體文件之前,存儲(chǔ)來(lái)自隨機(jī)排序單元402的組內(nèi)索引,并將所述組內(nèi)索引作為第1組的文 件序號(hào);播放第1組多媒體文件之前,按照已存儲(chǔ)的組內(nèi)索引以及當(dāng)前組的組序號(hào)得到文 件序號(hào),1< KL.較佳地,所述分組單元401得到的前L-I組的多媒體文件數(shù)目為M,最后1組的多 媒體文件數(shù)目小于或等于M。所述隨機(jī)排序單元402在選擇當(dāng)前組時(shí),對(duì)各個(gè)組按照分組時(shí)產(chǎn)生的組序號(hào)依次切換;或者,將組作為元素,采用洗牌算法進(jìn)行隨機(jī)排序,再按照隨機(jī)排序得到的組序號(hào) 依次切換各個(gè)組。隨機(jī)排序單元402和播放單元403實(shí)現(xiàn)隨機(jī)排序和播放可以有兩種具體方式方式一首先隨機(jī)排序單元402按照洗牌算法計(jì)算得到當(dāng)前組的全部組內(nèi)索引;然后播放單元403按照組內(nèi)索引以及當(dāng)前組的組序號(hào)得到文件序號(hào),并按照文件 序號(hào)依次播放當(dāng)前組內(nèi)的多媒體文件。在方式一中,所述隨機(jī)排序單元402進(jìn)一步包括緩存隊(duì)列模塊404,包含M個(gè)存儲(chǔ)單元組成的緩存隊(duì)列,所述存儲(chǔ)單元用于存儲(chǔ)洗 牌算法得到的組內(nèi)索引;洗牌算法模塊405,用于按照洗牌算法,改變所述緩存隊(duì)列模塊中各個(gè)緩存單元存 儲(chǔ)的組內(nèi)索引,具體包括a3、設(shè)置緩存隊(duì)列中各個(gè)存儲(chǔ)單元的初始組內(nèi)索引;首次執(zhí)行時(shí),設(shè)置變量η = M, 設(shè)置第X個(gè)緩存單元的初始組內(nèi)索引為X,1 < X < M ;非首次執(zhí)行時(shí),將上一組隨機(jī)排序得 到的組內(nèi)索引作為各個(gè)存儲(chǔ)單元的初始組內(nèi)索引;b3、任意選取隨機(jī)數(shù)k,1 < k < η ;交換第k個(gè)存儲(chǔ)單元和第η個(gè)存儲(chǔ)單元的組內(nèi) 索引;c3、判斷是否變量η = 2,若是,完成對(duì)當(dāng)前組的隨機(jī)排序,輸出緩存隊(duì)列;否則令 變量η = η-1并跳轉(zhuǎn)至步驟bl。所述播放單元403用于根據(jù)來(lái)自隨機(jī)排序單元402的緩存隊(duì)列,得到各個(gè)存儲(chǔ)單 元對(duì)應(yīng)的文件序號(hào),其中第X個(gè)存儲(chǔ)單元對(duì)應(yīng)的文件序號(hào)=(l-l)XM+ix,其中1為當(dāng)前組 的組序號(hào),1彡1彡L ;ix為第χ個(gè)存儲(chǔ)單元中存儲(chǔ)的組內(nèi)索引,1 ^;按照存儲(chǔ)單元 的順序,依次播放存儲(chǔ)單元對(duì)應(yīng)的文件序號(hào)對(duì)應(yīng)的多媒體文件方式二 隨機(jī)排序單元402按照洗牌算法得到一個(gè)組內(nèi)索弓丨,播放單元403根據(jù)該 組內(nèi)索引得到當(dāng)前組內(nèi)的一個(gè)尚未播放的多媒體文件的文件序號(hào),并按照所述文件序號(hào)播 放對(duì)應(yīng)的多媒體文件;重復(fù)上述步驟直到當(dāng)前組內(nèi)的多媒體文件均被播放。在方式二中,隨機(jī)排序單元402包括緩存隊(duì)列模塊,包含M個(gè)存儲(chǔ)單元組成的緩存隊(duì)列,所述存儲(chǔ)單元用于存儲(chǔ)洗牌 算法得到的組內(nèi)索引;洗牌算法模塊,用于按照洗牌算法,改變所述緩存隊(duì)列模塊中各個(gè)緩存單元存儲(chǔ) 的組內(nèi)索引,具體包括a4、設(shè)置緩存隊(duì)列中各個(gè)存儲(chǔ)單元的初始組內(nèi)索引;首次執(zhí)行時(shí),設(shè)置變量j = 1, 設(shè)置第X個(gè)緩存單元的初始組內(nèi)索引為X,1 < X < M ;非首次執(zhí)行時(shí),將上一組隨機(jī)排序得 到的組內(nèi)索引作為各個(gè)存儲(chǔ)單元的初始組內(nèi)索引;b4、任意選取隨機(jī)數(shù)k,j < k < M ;交換第k個(gè)存儲(chǔ)單元和第j個(gè)存儲(chǔ)單元的組內(nèi) 索引,其中j_l表示當(dāng)前組中已被播放的多媒體文件的數(shù)目;將第j個(gè)存儲(chǔ)單元存儲(chǔ)的組內(nèi) 索引ij輸出至播放單元403 ;c4、收到播放單元403的播放完畢指示后,令j = j+1,判斷j是否等于M_l,若是, 完成當(dāng)前組的隨機(jī)排序,否則轉(zhuǎn)至步驟b4 ;9/9頁(yè)所述播放單元403用于根據(jù)來(lái)自隨機(jī)排序單元402的組內(nèi)索引i」計(jì)算第j個(gè)存 儲(chǔ)單元對(duì)應(yīng)的文件序號(hào)=(1-1) XM+ip其中1為當(dāng)前組的組序號(hào),并播放所述文件序號(hào)對(duì) 應(yīng)的多媒體文件,播放完畢后向隨機(jī)排序單元402發(fā)送播放完畢指示。在方式二中,所述播放單元403在收到回退播放的指令時(shí),判斷所要回退播放的 多媒體文件是否在當(dāng)前組中,若是,獲取緩存隊(duì)列中前一個(gè)存儲(chǔ)單元中的組內(nèi)索引,根據(jù)所 述組內(nèi)索引以及當(dāng)前組的組序號(hào)得到文件序號(hào),并按照所述文件序號(hào)播放多媒體文件;否 則,根據(jù)緩存隊(duì)列第M個(gè)存儲(chǔ)單元中存儲(chǔ)的組內(nèi)索引以及當(dāng)前組的組序號(hào)計(jì)算文件序號(hào)= (1-2) XM+iM,其中1為當(dāng)前組的組序號(hào),iM為第M個(gè)存儲(chǔ)單元中存儲(chǔ)的組內(nèi)索引,并根據(jù)所 計(jì)算的文件序號(hào)播放多媒體文件。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種多媒體文件的隨機(jī)播放方法,其特征在于,包括如下步驟 將待播放的多媒體文件進(jìn)行分組;按照洗牌算法對(duì)各組多媒體文件進(jìn)行隨機(jī)排序播放。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,將待播放的多媒體文件進(jìn)行分組包括 對(duì)待播放的多媒體文件的順序號(hào)取模,并將取模所得數(shù)值相同的多媒體文件分為一組;或者,將順序號(hào)連續(xù)的M個(gè)待播放多媒體文件分為一組,M為一預(yù)定數(shù)值;或者, 將指定特征信息相同的待播放多媒體文件分為一組。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,按照洗牌算法對(duì)各組多媒體文件進(jìn)行隨 機(jī)排序播放包括按照預(yù)定的組切換策略選擇一組多媒體文件作為當(dāng)前組; 按照洗牌算法得到所述當(dāng)前組的組內(nèi)索引序列;按照所述組內(nèi)索引序列中的索引號(hào)的順序,依次播放所述當(dāng)前組內(nèi)與各索引號(hào)一一對(duì) 應(yīng)的多媒體文件按照所述組切換策略繼續(xù)選擇其他組的多媒體文件進(jìn)行隨機(jī)播放。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述選擇其他組的多媒體文件進(jìn)行隨機(jī) 播放包括按照所述當(dāng)前組的組內(nèi)索引以及其他任一組的組序號(hào)得到相應(yīng)的文件序號(hào),并播放所 述文件序號(hào)對(duì)應(yīng)的多媒體文件;或者,對(duì)其他任一組的多媒體文件,重新采用洗牌算法得到組內(nèi)索引,并按照該組內(nèi)索引以 及該組的組序號(hào)得到文件序號(hào),并播放所述文件序號(hào)對(duì)應(yīng)的多媒體文件。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述組切換策略為 對(duì)各個(gè)組按照分組時(shí)產(chǎn)生的組序號(hào)依次切換;或者, 將組作為元素,采用洗牌算法進(jìn)行隨機(jī)排序,再按照隨機(jī)排序得到的組序號(hào)依次切換 各個(gè)組。
6.根據(jù)權(quán)利要求3所述的方法,其特征在于,按照所述組內(nèi)索引序列中的索引號(hào)的順 序,依次播放所述當(dāng)前組內(nèi)與各索引號(hào)一一對(duì)應(yīng)的多媒體文件包括按照所述組內(nèi)索引序列以及當(dāng)前組的組序號(hào)得到文件序號(hào)序列,并按照文件序號(hào)序列 中文件序號(hào)的順序,依次播放每一文件序號(hào)所對(duì)應(yīng)的多媒體文件。
7.根據(jù)權(quán)利要求3所述的方法,其特征在于,按照所述組內(nèi)索引序列中的索引號(hào)的順 序,依次播放所述當(dāng)前組內(nèi)與各索引號(hào)一一對(duì)應(yīng)的多媒體文件包括對(duì)于所述組內(nèi)索引序列中的每個(gè)索引號(hào),按順序依次執(zhí)行下述操作 按照索引號(hào)以及當(dāng)前組的組序號(hào),得到該索引號(hào)對(duì)應(yīng)的文件序號(hào); 播放該文件序號(hào)所對(duì)應(yīng)的多媒體文件。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,播放文件序號(hào)所對(duì)應(yīng)的多媒體文件的過(guò) 程中,若收到回退播放的指令,進(jìn)一步包括判斷所要回退播放的多媒體文件是否在當(dāng)前組中,若是,則按照索引序列中前一個(gè)組 內(nèi)索引對(duì)應(yīng)的文件序號(hào)播放多媒體文件;否則,根據(jù)組內(nèi)索引計(jì)算上一組的文件序號(hào)= (1-2) XM+iM,其中1為當(dāng)前組的組序號(hào),iM為第M個(gè)組內(nèi)索引,并根據(jù)所計(jì)算的文件序號(hào)播放多媒體文件。
9.一種多媒體文件的隨機(jī)播放裝置,其特征在于,包括 分組單元,用于將待播放的多媒體文件進(jìn)行分組;播放單元,按照洗牌算法對(duì)各組多媒體文件進(jìn)行隨機(jī)排序播放。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述分組單元包括將待播放的多媒體文件的順序號(hào)取模,將取模所得數(shù)值相同的多媒體文件分為一組的 模塊;或者,將順序號(hào)連續(xù)的M個(gè)多媒體文件分為一組的模塊,M為一預(yù)定數(shù)值;或者, 將指定特征信息相同的多媒體文件分為一組的模塊。
11.根據(jù)權(quán)利要求9所述的多媒體播放裝置,其特征在于,所述播放單元包括 按照預(yù)定的組切換策略選擇一組多媒體文件作為當(dāng)前組的模塊;按照洗牌算法得到所述當(dāng)前組的組內(nèi)索引序列的模塊;按照所述組內(nèi)索引序列中的索引號(hào)的順序,依次播放所述當(dāng)前組內(nèi)與各索引號(hào)一一對(duì) 應(yīng)的多媒體文件的模塊;按照所述組切換策略繼續(xù)選擇其他組的多媒體文件進(jìn)行隨機(jī)播放的模塊。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述組切換策略為 對(duì)各個(gè)組按照分組時(shí)產(chǎn)生的組序號(hào)依次切換;或者,將組作為元素,采用洗牌算法進(jìn)行隨機(jī)排序,再按照隨機(jī)排序得到的組序號(hào)依次 切換各個(gè)組。
13.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述按照組內(nèi)索引序列中的索引號(hào)的 順序,依次播放所述當(dāng)前組內(nèi)與各索引號(hào)一一對(duì)應(yīng)的多媒體文件包括按照所述組內(nèi)索引序列以及當(dāng)前組的組序號(hào)得到文件序號(hào)序列; 按照文件序號(hào)序列中文件序號(hào)的順序,依次播放每一文件序號(hào)所對(duì)應(yīng)的多媒體文件。
14.根據(jù)權(quán)利要求11所述的裝置,其特征在于,按照所述組內(nèi)索引序列中的索引號(hào)的 順序,依次播放所述當(dāng)前組內(nèi)與各索引號(hào)一一對(duì)應(yīng)的多媒體文件包括對(duì)于所述組內(nèi)索引序列中的每個(gè)索引號(hào),按順序依次執(zhí)行下述操作 按照索引號(hào)以及當(dāng)前組的組序號(hào),得到該索引號(hào)對(duì)應(yīng)的文件序號(hào); 播放該文件序號(hào)所對(duì)應(yīng)的多媒體文件。
15.根據(jù)權(quán)利要求14所述的多媒體播放裝置,其特征在于,所述播放單元在收到回退 播放的指令時(shí),判斷所要回退播放的多媒體文件是否在當(dāng)前組中,若是,則按照索引序列中 前一個(gè)組內(nèi)索引對(duì)應(yīng)的文件序號(hào)播放多媒體文件;否則,根據(jù)組內(nèi)索引計(jì)算上一組的文件 序號(hào)=(1-2) XM+iM,其中1為當(dāng)前組的組序號(hào),iM為第M個(gè)組內(nèi)索引,并根據(jù)所計(jì)算的文件 序號(hào)播放多媒體文件。
全文摘要
本發(fā)明公開了一種隨機(jī)播放方法,包括如下步驟按照預(yù)定的分組策略將待播放的多媒體文件進(jìn)行分組;按照洗牌算法對(duì)各組多媒體文件進(jìn)行隨機(jī)排序播放。本發(fā)明還公開了一種多媒體播放裝置。本發(fā)明方案可以極大減小排序所需的計(jì)算量,降低對(duì)多媒體播放裝置的硬件需求,同時(shí)使媒體播放設(shè)備硬件的數(shù)值精度也能滿足隨機(jī)排序的要求。
文檔編號(hào)G11B27/031GK102054509SQ20091020509
公開日2011年5月11日 申請(qǐng)日期2009年10月30日 優(yōu)先權(quán)日2009年10月30日
發(fā)明者楊永東 申請(qǐng)人:炬力集成電路設(shè)計(jì)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
临猗县| 桃园县| 普定县| 雷州市| 黄山市| 三亚市| 宝鸡市| 乐昌市| 洮南市| 平阴县| 商洛市| 亳州市| 武威市| 安新县| 灯塔市| 上饶市| 赫章县| 宁国市| 邵阳市| 方城县| 九台市| 边坝县| 肃南| 兴城市| 含山县| 雅江县| 嘉定区| 莲花县| 蒙山县| 牟定县| 临潭县| 潮安县| 郴州市| 辽阳县| 平南县| 安仁县| 固安县| 龙陵县| 鹤壁市| 保定市| 和田县|