CN102054509A - 一种随机播放方法和装置 - Google Patents

一种随机播放方法和装置 Download PDF

Info

Publication number
CN102054509A
CN102054509A CN200910205095XA CN200910205095A CN102054509A CN 102054509 A CN102054509 A CN 102054509A CN 200910205095X A CN200910205095X A CN 200910205095XA CN 200910205095 A CN200910205095 A CN 200910205095A CN 102054509 A CN102054509 A CN 102054509A
Authority
CN
China
Prior art keywords
group
file
multimedia file
sequence number
index
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN200910205095XA
Other languages
English (en)
Inventor
杨永东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Actions Semiconductor Co Ltd
Original Assignee
Actions Semiconductor Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Actions Semiconductor Co Ltd filed Critical Actions Semiconductor Co Ltd
Priority to CN200910205095XA priority Critical patent/CN102054509A/zh
Publication of CN102054509A publication Critical patent/CN102054509A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种随机播放方法,包括如下步骤:按照预定的分组策略将待播放的多媒体文件进行分组;按照洗牌算法对各组多媒体文件进行随机排序播放。本发明还公开了一种多媒体播放装置。本发明方案可以极大减小排序所需的计算量,降低对多媒体播放装置的硬件需求,同时使媒体播放设备硬件的数值精度也能满足随机排序的要求。

Description

一种随机播放方法和装置
技术领域
本发明涉及多媒体播放技术领域,特别涉及对多媒体文件进行随机播放的方法和装置。
背景技术
在涉及多媒体播放的各种媒体播放设备或系统中,如个人电脑、手机、便携式媒体播放设备、网络点播等,一个常用的功能是对一定数目的多媒体文件进行随机播放。所谓随机播放,就是待播放的多媒体文件组成一个播放清单,对该播放清单中的多媒体文件进行随机排序,然后按照排序的结果依次播放这些多媒体文件。
洗牌(Shuffle)算法是现有技术中广泛采用的随机排序方法。对于包含N个元素的列表,该方法通过随机数选取算法生成随机数,根据随机数对列表进行重新排序,可以保证连续N次抽取不会获得重复的元素,并且每轮(N次)的获取的元素的顺序都不相同。但是,如果待播放的多媒体文件数目很大时,该算法会面对两个难以解决的问题:
1、需要耗费大量的存储空间,而手机或便携式媒体播放设备的存储空间有限,难以满足需要;
2、受处理器(CPU)精度影响,随机数选取算法并不能提供任意大的随机数。要输出更大的随机数,必须采用更复杂的随机数选择算法,计算量大,效率低。
发明内容
有鉴于此,本发明的目的在于,提出一种随机播放方法和装置,可以克服当待播放多媒体文件数目较大时,需要大量存储空间和必须采用复杂的随机数选取算法的问题。
本发明实施例提出一种多媒体文件的随机播放方法,包括如下步骤:
将待播放的多媒体文件进行分组;
按照洗牌算法对各组多媒体文件进行随机排序播放。
其中,将待播放的多媒体文件进行分组包括:
对待播放的多媒体文件的顺序号取模,并将取模所得数值相同的多媒体文件分为一组;或者,
将顺序号连续的M个待播放多媒体文件分为一组,M为一预定数值;或者,
将指定特征信息相同的待播放多媒体文件分为一组。
其中,按照洗牌算法对各组多媒体文件进行随机排序播放包括:
按照预定的组切换策略选择一组多媒体文件作为当前组;
按照洗牌算法得到所述当前组的组内索引序列;
按照所述组内索引序列中的索引号的顺序,依次播放所述当前组内与各索引号一一对应的多媒体文件;
按照所述组切换策略继续选择其他组的多媒体文件进行随机播放。
其中,所述选择其他组的多媒体文件进行随机播放包括:
按照所述当前组的组内索引以及其他任一组的组序号得到相应的文件序号,并播放所述文件序号对应的多媒体文件;或者,
对其他任一组的多媒体文件,重新采用洗牌算法得到组内索引,并按照该组内索引以及该组的组序号得到文件序号,并播放所述文件序号对应的多媒体文件。
较佳地,所述组切换策略为:
对各个组按照分组时产生的组序号依次切换;或者,
将组作为元素,采用洗牌算法进行随机排序,再按照随机排序得到的组序号依次切换各个组。
按照所述组内索引序列中的索引号的顺序,依次播放所述当前组内与各索引号一一对应的多媒体文件包括:
按照所述组内索引序列以及当前组的组序号得到文件序号序列,并按照文件序号序列中文件序号的顺序,依次播放每一文件序号所对应的多媒体文件。
其中,按照所述组内索引序列中的索引号的顺序,依次播放所述当前组内与各索引号一一对应的多媒体文件包括:
对于所述组内索引序列中的每个索引号,按顺序依次执行下述操作:
按照索引号以及当前组的组序号,得到该索引号对应的文件序号;
播放该文件序号所对应的多媒体文件。
播放文件序号所对应的多媒体文件的过程中,若收到回退播放的指令,进一步包括:
判断所要回退播放的多媒体文件是否在当前组中,若是,则按照索引序列中前一个组内索引对应的文件序号播放多媒体文件;否则,根据组内索引计算上一组的文件序号=(l-2)×M+iM,其中l为当前组的组序号,iM为第M个组内索引,并根据所计算的文件序号播放多媒体文件。
本发明实施例还提出一种多媒体文件的随机播放装置,包括:
分组单元,用于将待播放的多媒体文件进行分组;
播放单元,按照洗牌算法对各组多媒体文件进行随机排序播放。
所述分组单元包括:
将待播放的多媒体文件的顺序号取模,将取模所得数值相同的多媒体文件分为一组的模块;或者,
将顺序号连续的M个多媒体文件分为一组的模块,M为一预定数值;或者,
将指定特征信息相同的多媒体文件分为一组的模块。
所述播放单元包括:
按照预定的组切换策略选择一组多媒体文件作为当前组的模块;
按照洗牌算法得到所述当前组的组内索引序列的模块;
按照所述组内索引序列中的索引号的顺序,依次播放所述当前组内与各索引号一一对应的多媒体文件的模块;
按照所述组切换策略继续选择其他组的多媒体文件进行随机播放的模块。
所述组切换策略为:
对各个组按照分组时产生的组序号依次切换;
或者,将组作为元素,采用洗牌算法进行随机排序,再按照随机排序得到的组序号依次切换各个组。
所述按照组内索引序列中的索引号的顺序,依次播放所述当前组内与各索引号一一对应的多媒体文件包括:
按照所述组内索引序列以及当前组的组序号得到文件序号序列;
按照文件序号序列中文件序号的顺序,依次播放每一文件序号所对应的多媒体文件。
按照所述组内索引序列中的索引号的顺序,依次播放所述当前组内与各索引号一一对应的多媒体文件包括:
对于所述组内索引序列中的每个索引号,按顺序依次执行下述操作:
按照索引号以及当前组的组序号,得到该索引号对应的文件序号;
播放该文件序号所对应的多媒体文件。
所述播放单元在收到回退播放的指令时,判断所要回退播放的多媒体文件是否在当前组中,若是,则按照索引序列中前一个组内索引对应的文件序号播放多媒体文件;否则,根据组内索引计算上一组的文件序号=(l-2)×M+iM,其中l为当前组的组序号,iM为第M个组内索引,并根据所计算的文件序号播放多媒体文件。
从以上技术方案可以看出,通过对多媒体文件进行分组,再对每一组进行随机排序,可以极大减小排序所需的计算量,降低对多媒体播放装置的硬件需求,同时使媒体播放设备硬件的数值精度也能满足随机排序的要求。
附图说明
图1为本发明实施例提出的排序方法的实现流程图;
图2为图1所示流程中步骤103的洗牌算法的一种实现流程图;
图3为图1所示流程中步骤103至104的一种实现流程图;
图4为本发明实施例提出的多媒体播放装置的框图。
具体实施方式
现有技术中的随机排序方法遇到的困难在于,随着待排序的多媒体文件数目的增长,所需的存储空间的增长是非线性的,换句话说,存储空间增长的速度要快得多,可能会超出媒体播放设备的硬件能力。本发明方案按照预定的分组策略将待播放的多媒体文件进行分组;按照洗牌算法对各组多媒体文件进行随机排序播放。这样可以降低所需的存储空间,同时使媒体播放设备硬件的数值精度也能满足随机排序的要求。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细阐述。
图1为本发明实施例提出的排序方法的实现流程,包括如下步骤:
步骤101:判断待排序的多媒体文件数目N是否超出预先设置的阈值M,若是,则执行步骤102,否则按照现有的随机排序算法对多媒体文件进行排序并播放。
步骤102:按照预定的分组策略将待排序的多媒体文件分成L组,其中每组的多媒体文件数目都小于或等于阈值M。较佳地,前L-1组的多媒体文件数目为M,最后1组的多媒体文件数目小于或等于M。
所述分组策略,可以是按照多媒体文件排序前的顺序号进行分组,例如将多媒体文件的顺序号取模,将取模所得数值相同的多媒体文件分为一组;或者将具有连续的顺序号的M个多媒体文件分为一组。或者,也可以按照多媒体文件的特征信息进行分组,例如,在MP3格式的多媒体文件中记录有如下特征信息:专辑名称、歌手名称,则分组时可以将具有相同歌手名称或专辑名称的多媒体文件分为一组或者分到同一组中,如果一组中多媒体文件数目超过阈值M,再对这一组按照序号进行拆分,使得拆分后得到的每组的多媒体文件数目均小于等于M。
阈值M的选取由实际系统决定,如采用标准C的rand函数,则M至多为32767,因为其输出值范围是0~0x7fff。阈值M也可以由用户自定义。
步骤103:按照组切换策略选择一组作为当前组,对当前组内的多媒体文件采用洗牌算法进行随机排序。组切换策略可以是对各个组按照分组时产生的组序号依次切换;也可以是将组作为元素,采用洗牌算法进行随机排序,再按照随机排序形成的组序号依次切换。
每一个多媒体文件都具有一个唯一的文件序号,所述文件序号由组序号(l)和组内索引(i)构成,两者计算就可得到多媒体文件的文件序号=f(l,i)=(l-1)×M+i。其中,(l-1)×M是偏移量(offset)。该文件序号表示多媒体文件被播放的次序,而前述多媒体文件的顺序号则是多媒体文件按照某种规则排序得到的,例如按照文件大小、修改时间、文件名排序等。文件序号与前述多媒体文件的顺序号是不同的概念。
步骤104:按照随机排序后的文件序号依次播放当前组内的多媒体文件。
步骤105:判断是否所有组均被选择完毕,若是,则停止播放,否则转至步骤103。
本发明更多实施例中,若上述判断结果为是,也可以转至步骤103或转至步骤102,进行循环播放。
本发明实施例中,设置一包含M个存储单元的缓存队列,所述存储单元用于存储洗牌算法得到的组内索引。
所述步骤103至步骤104的具体实现流程如图2所示,包括如下步骤:
步骤201:设置缓存队列中各个存储单元的初始组内索引;首次执行时,设置变量n=M,设置第x个缓存单元的初始组内索引为x,1≤x≤M;非首次执行时,将上一组随机排序得到的组内索引作为各个存储单元的初始组内索引;
步骤202、任意选取随机数k,1≤k<n;交换第k个存储单元和第n个存储单元的组内索引;
步骤203:判断是否变量n=2,若是,对当前组的随机排序完成,执行步骤204;否则令变量n=n-1并跳转至步骤202;
步骤204:得到第x个存储单元对应的文件序号=(l-1)×M+ix,其中l为当前组的组序号,1≤l≤L;ix为第x个存储单元中存储的组内索引,1≤ix≤M;按照存储单元的顺序,依次播放存储单元对应的文件序号对应的多媒体文件。
上述实现流程实际是将随机排序与播放分离成独立的步骤,首先按照洗牌算法计算得到当前组的全部组内索引;然后按照组内索引以及当前组的组序号得到文件序号,并按照文件序号依次播放当前组内的多媒体文件。
以上只是给出洗牌算法的一种具体实现示例,本发明并未将洗牌算法的范围限定于此。
在多媒体文件播放的过程中,可能还会涉及到与随机播放有关的特殊操作。例如,用户要求回退播放上一个多媒体文件,或者用户在播放的过程中向播放列表添加新的多媒体文件或将已有的多媒体文件从播放列表中删除。
在回退操作中,要求能够记录已播放的上一个多媒体文件的排序标识,并且应该能回溯尽可能多的排序标识。如果当前播放的多媒体文件是一组的第一个多媒体文件,在这种情况下回退,则必然需要回退到上一组的多媒体文件。以上所述实施例步骤103-104中,对于当前组中所有多媒体文件排序后,再依次播放,则缓存队列中记录的都是当前组的排序标识,无法再回溯到上一组,极端情况下,如果当前播放的多媒体文件是该组中第一个被播放的多媒体文件,则无法进行回退操作。一种较佳的替代方案是:按照洗牌算法得到当前组内的一个尚未播放的多媒体文件的文件序号,并按照所述文件序号播放对应的多媒体文件;重复上述步骤直到当前组内的多媒体文件均被播放。实际上是将所述步骤103至步骤104分成M个子步骤来执行,每个子步骤确定并播放一个多媒体文件。其流程图如图3所示,包括:
步骤301:设置缓存队列中各个存储单元的初始组内索引;首次执行时,设置变量j=1,设置第x个缓存单元的初始组内索引为x,1≤x≤M;非首次执行时,将上一组随机排序得到的组内索引作为各个存储单元的初始组内索引;
步骤302:任意选取随机数k,j<k<M;交换第k个存储单元和第j个存储单元的组内索引;
步骤303:计算第j个存储单元对应的文件序号=(l-1)×M+ij,并播放该文件序号对应的多媒体文件;其中l为当前组的组序号,ij为第j个存储单元中存储的组内索引;
步骤304:令j=j+1,判断j是否等于M-1,若是,则当前组多媒体文件的播放完成,否则转至步骤302。
这样在播放过程中的任一时刻,缓存队列中就会保留相当数量的上一组的排序结果,根据缓存队列中记录的组内索引计算上一组的文件序号,,并据此确定并播放上一个多媒体文件。所述回退播放的处理过程包括:
收到回退播放的指令,判断所要回退播放的多媒体文件是否在当前组中,若是,则按照缓存队列中前一个存储单元对应的文件序号播放多媒体文件;否则,根据缓存队列中记录的组内索引计算上一组的文件序号=(l-2)×M+iM,其中l为当前组的组序号,iM为第M个存储单元中存储的组内索引,并根据所计算的文件序号播放多媒体文件。
例1:对10个多媒体文件按5个一组进行分组洗牌排序。
第二组的偏移量是5,缓存队列中的序号加5就是其真正的序号。
假设第一组洗牌完以后缓存队列的顺序是5,3,1,2,4;以它做第二组的初始值,如果已经切到第二组并播放过一个多媒体文件,第二组内顺序变为:1,3,5,2,4,其中第1个存储单元和第3个存储单元的内容发生了交换。
回退的时候根据第一组偏移和第二组后则可以正确回退的数目为5-2(因已进行了一次操作),这时可看到上一次取出的数“4”,再往前依次为2,5,3,其中5是错的(正确的应该是1,但1已经在本次取值是和5互换了)。实际中由于M值会比较大(一般大于100),回退的个数会比较小,所以出错的概率会很低。
如果需要在随机播放过程中插入/删除多媒体文件,则必须先判断要插入/删除的多媒体文件是否在当前组中,如果不是,则对当前组不进行处理,直接将文件总数目加/减1;若是,则对当前组进行相应处理,具体如下:
假设当前组是第l组,阈值是M,待插入或删除的多媒体文件序号j满足:
(l-1)×M<j<l×M,则表示该多媒体文件在当前组中。
如果要删除该多媒体文件,则将所有大于j的文件序号减1,组内多媒体文件数目减1,多媒体文件总数目减1;如果要插入该多媒体文件,则将所有大于j的文件序号加1,组内多媒体文件数目加1,多媒体文件总数目加1。
例2:删除文件序号为7的多媒体文件。
若正在取第一组则不会对当前组有影响,直接对多媒体文件总数目减1。
若正在取第二组,则文件序号7映射到缓存队列中的组内索引应该为2,假设缓存队列中组内索引依次为:1,3,5,2,4,那么需要对大于2的组内索引减1,并将组内索引2之后的其他组内索引向前移动一位,同时对组内文件数和文件总数减1。
删除后组内索引顺序为:1,2(=3-1),4(=5-1),3(=4-1),5,其中有效数据只有前4个,第5个设为5是为了避免下一组时出错。
插入与删除类似,只是被插入的组的组内索引总数可以暂时大于阈值M,被插入的组内索引之后的组内索引依次向后移动一位。也可以采用更简单的策略即只允许在最后插入。
本发明实施例还提出另一种更为简单的随机播放方法,先按阈值M进行分组,设组数为L,保证每个组元素数目相近。播放第1组多媒体文件之前,采用洗牌算法对当前组内的多媒体文件进行随机排序得到组内索引,将组内索引作为第1组的文件序号;播放第l组多媒体文件之前,按照已得到的组内索引以及当前组的组序号得到文件序号,1<l≤L。这就相当于对每个组采用与第一组一样的排序进行播放,即缓存队列中的一个元素同时对应L个多媒体文件。
该方法的特点可以用更小的计算量获得随机播放效果。
本发明实施例提出一种多媒体播放装置,包括:
分组单元,用于将待播放的多媒体文件进行分组;
播放单元,按照洗牌算法对各组多媒体文件进行随机排序播放。
所述分组单元包括:
将待播放的多媒体文件的顺序号取模,将取模所得数值相同的多媒体文件分为一组的模块;或者,
将顺序号连续的M个多媒体文件分为一组的模块,M为一预定数值;或者,
将指定特征信息相同的多媒体文件分为一组的模块。
所述播放单元包括:
按照预定的组切换策略选择一组多媒体文件作为当前组的模块;
按照洗牌算法得到所述当前组的组内索引序列的模块;
按照所述组内索引序列中的索引号的顺序,依次播放所述当前组内与各索引号一一对应的多媒体文件的模块;
按照所述组切换策略继续选择其他组的多媒体文件进行随机播放的模块。
所述组切换策略为:
对各个组按照分组时产生的组序号依次切换;
或者,将组作为元素,采用洗牌算法进行随机排序,再按照随机排序得到的组序号依次切换各个组。
所述按照组内索引序列中的索引号的顺序,依次播放所述当前组内与各索引号一一对应的多媒体文件包括:
按照所述组内索引序列以及当前组的组序号得到文件序号序列;
按照文件序号序列中文件序号的顺序,依次播放每一文件序号所对应的多媒体文件。
按照所述组内索引序列中的索引号的顺序,依次播放所述当前组内与各索引号一一对应的多媒体文件包括:
对于所述组内索引序列中的每个索引号,按顺序依次执行下述操作:
按照索引号以及当前组的组序号,得到该索引号对应的文件序号;
播放该文件序号所对应的多媒体文件。
所述播放单元在收到回退播放的指令时,判断所要回退播放的多媒体文件是否在当前组中,若是,则按照索引序列中前一个组内索引对应的文件序号播放多媒体文件;否则,根据组内索引计算上一组的文件序号=(l-2)×M+iM,其中l为当前组的组序号,iM为第M个组内索引,并根据所计算的文件序号播放多媒体文件。
本发明实施例还提出一种多媒体播放装置,如图4所示,包括:
分组单元401,按照预定的分组策略将待排序的多媒体文件分成L组,其中每组的多媒体文件数目都小于或等于阈值M;
随机排序单元402,按照预定的组切换策略选择分组单元401所分成的一组作为当前组,按照洗牌算法进行随机排序后得到当前组的组内索引;
播放单元403,按照随机排序单元402得到的组内索引以及当前组的组序号得到文件序号,按照所述文件序号依次播放当前组内的多媒体文件。
所述随机排序单元402可以对每一组都进行随机排序;随机排序单元402在播放任一组多媒体文件之前,均采用洗牌算法对当前组内的多媒体文件进行随机排序得到组内索引;所述播放单元403根据来自随机排序单元402的组内索引以及当前组的组序号得到文件序号。
或者随机排序单元402仅进行一次随机排序,播放单元403按照该随机排序的结果播放各个组,具体为:随机排序单元402仅在播放第1组多媒体文件之前,采用洗牌算法对当前组内的多媒体文件进行随机排序得到组内索引;所述播放单元403在播放第1组多媒体文件之前,存储来自随机排序单元402的组内索引,并将所述组内索引作为第1组的文件序号;播放第l组多媒体文件之前,按照已存储的组内索引以及当前组的组序号得到文件序号,1<l≤L.
较佳地,所述分组单元401得到的前L-1组的多媒体文件数目为M,最后1组的多媒体文件数目小于或等于M。
所述随机排序单元402在选择当前组时,对各个组按照分组时产生的组序号依次切换;
或者,将组作为元素,采用洗牌算法进行随机排序,再按照随机排序得到的组序号依次切换各个组。
随机排序单元402和播放单元403实现随机排序和播放可以有两种具体方式:
方式一:首先随机排序单元402按照洗牌算法计算得到当前组的全部组内索引;
然后播放单元403按照组内索引以及当前组的组序号得到文件序号,并按照文件序号依次播放当前组内的多媒体文件。
在方式一中,所述随机排序单元402进一步包括:
缓存队列模块404,包含M个存储单元组成的缓存队列,所述存储单元用于存储洗牌算法得到的组内索引;
洗牌算法模块405,用于按照洗牌算法,改变所述缓存队列模块中各个缓存单元存储的组内索引,具体包括:
a3、设置缓存队列中各个存储单元的初始组内索引;首次执行时,设置变量n=M,设置第x个缓存单元的初始组内索引为x,1≤x≤M;非首次执行时,将上一组随机排序得到的组内索引作为各个存储单元的初始组内索引;
b3、任意选取随机数k,1≤k<n;交换第k个存储单元和第n个存储单元的组内索引;
c3、判断是否变量n=2,若是,完成对当前组的随机排序,输出缓存队列;否则令变量n=n-1并跳转至步骤b1。
所述播放单元403用于根据来自随机排序单元402的缓存队列,得到各个存储单元对应的文件序号,其中第x个存储单元对应的文件序号=(l-1)×M+ix,其中l为当前组的组序号,1≤l≤L;ix为第x个存储单元中存储的组内索引,1≤ix≤M;按照存储单元的顺序,依次播放存储单元对应的文件序号对应的多媒体文件
方式二:随机排序单元402按照洗牌算法得到一个组内索引,播放单元403根据该组内索引得到当前组内的一个尚未播放的多媒体文件的文件序号,并按照所述文件序号播放对应的多媒体文件;重复上述步骤直到当前组内的多媒体文件均被播放。
在方式二中,随机排序单元402包括:
缓存队列模块,包含M个存储单元组成的缓存队列,所述存储单元用于存储洗牌算法得到的组内索引;
洗牌算法模块,用于按照洗牌算法,改变所述缓存队列模块中各个缓存单元存储的组内索引,具体包括:
a4、设置缓存队列中各个存储单元的初始组内索引;首次执行时,设置变量j=1,设置第x个缓存单元的初始组内索引为x,1≤x≤M;非首次执行时,将上一组随机排序得到的组内索引作为各个存储单元的初始组内索引;
b4、任意选取随机数k,j<k<M;交换第k个存储单元和第j个存储单元的组内索引,其中j-1表示当前组中已被播放的多媒体文件的数目;将第j个存储单元存储的组内索引ij输出至播放单元403;
c4、收到播放单元403的播放完毕指示后,令j=j+1,判断j是否等于M-1,若是,完成当前组的随机排序,否则转至步骤b4;
所述播放单元403用于根据来自随机排序单元402的组内索引ij计算第j个存储单元对应的文件序号=(l-1)×M+ij,其中l为当前组的组序号,并播放所述文件序号对应的多媒体文件,播放完毕后向随机排序单元402发送播放完毕指示。
在方式二中,所述播放单元403在收到回退播放的指令时,判断所要回退播放的多媒体文件是否在当前组中,若是,获取缓存队列中前一个存储单元中的组内索引,根据所述组内索引以及当前组的组序号得到文件序号,并按照所述文件序号播放多媒体文件;否则,根据缓存队列第M个存储单元中存储的组内索引以及当前组的组序号计算文件序号=(l-2)×M+iM,其中l为当前组的组序号,iM为第M个存储单元中存储的组内索引,并根据所计算的文件序号播放多媒体文件。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (15)

1.一种多媒体文件的随机播放方法,其特征在于,包括如下步骤:
将待播放的多媒体文件进行分组;
按照洗牌算法对各组多媒体文件进行随机排序播放。
2.根据权利要求1所述的方法,其特征在于,将待播放的多媒体文件进行分组包括:
对待播放的多媒体文件的顺序号取模,并将取模所得数值相同的多媒体文件分为一组;或者,
将顺序号连续的M个待播放多媒体文件分为一组,M为一预定数值;或者,
将指定特征信息相同的待播放多媒体文件分为一组。
3.根据权利要求1所述的方法,其特征在于,按照洗牌算法对各组多媒体文件进行随机排序播放包括:
按照预定的组切换策略选择一组多媒体文件作为当前组;
按照洗牌算法得到所述当前组的组内索引序列;
按照所述组内索引序列中的索引号的顺序,依次播放所述当前组内与各索引号一一对应的多媒体文件;
按照所述组切换策略继续选择其他组的多媒体文件进行随机播放。
4.根据权利要求3所述的方法,其特征在于,所述选择其他组的多媒体文件进行随机播放包括:
按照所述当前组的组内索引以及其他任一组的组序号得到相应的文件序号,并播放所述文件序号对应的多媒体文件;或者,
对其他任一组的多媒体文件,重新采用洗牌算法得到组内索引,并按照该组内索引以及该组的组序号得到文件序号,并播放所述文件序号对应的多媒体文件。
5.根据权利要求3所述的方法,其特征在于,所述组切换策略为:
对各个组按照分组时产生的组序号依次切换;或者,
将组作为元素,采用洗牌算法进行随机排序,再按照随机排序得到的组序号依次切换各个组。
6.根据权利要求3所述的方法,其特征在于,按照所述组内索引序列中的索引号的顺序,依次播放所述当前组内与各索引号一一对应的多媒体文件包括:
按照所述组内索引序列以及当前组的组序号得到文件序号序列,并按照文件序号序列中文件序号的顺序,依次播放每一文件序号所对应的多媒体文件。
7.根据权利要求3所述的方法,其特征在于,按照所述组内索引序列中的索引号的顺序,依次播放所述当前组内与各索引号一一对应的多媒体文件包括:
对于所述组内索引序列中的每个索引号,按顺序依次执行下述操作:
按照索引号以及当前组的组序号,得到该索引号对应的文件序号;
播放该文件序号所对应的多媒体文件。
8.根据权利要求7所述的方法,其特征在于,播放文件序号所对应的多媒体文件的过程中,若收到回退播放的指令,进一步包括:
判断所要回退播放的多媒体文件是否在当前组中,若是,则按照索引序列中前一个组内索引对应的文件序号播放多媒体文件;否则,根据组内索引计算上一组的文件序号=(l-2)×M+iM,其中l为当前组的组序号,iM为第M个组内索引,并根据所计算的文件序号播放多媒体文件。
9.一种多媒体文件的随机播放装置,其特征在于,包括:
分组单元,用于将待播放的多媒体文件进行分组;
播放单元,按照洗牌算法对各组多媒体文件进行随机排序播放。
10.根据权利要求9所述的装置,其特征在于,所述分组单元包括:
将待播放的多媒体文件的顺序号取模,将取模所得数值相同的多媒体文件分为一组的模块;或者,
将顺序号连续的M个多媒体文件分为一组的模块,M为一预定数值;或者,
将指定特征信息相同的多媒体文件分为一组的模块。
11.根据权利要求9所述的多媒体播放装置,其特征在于,所述播放单元包括:
按照预定的组切换策略选择一组多媒体文件作为当前组的模块;
按照洗牌算法得到所述当前组的组内索引序列的模块;
按照所述组内索引序列中的索引号的顺序,依次播放所述当前组内与各索引号一一对应的多媒体文件的模块;
按照所述组切换策略继续选择其他组的多媒体文件进行随机播放的模块。
12.根据权利要求11所述的装置,其特征在于,所述组切换策略为:
对各个组按照分组时产生的组序号依次切换;
或者,将组作为元素,采用洗牌算法进行随机排序,再按照随机排序得到的组序号依次切换各个组。
13.根据权利要求11所述的装置,其特征在于,所述按照组内索引序列中的索引号的顺序,依次播放所述当前组内与各索引号一一对应的多媒体文件包括:
按照所述组内索引序列以及当前组的组序号得到文件序号序列;
按照文件序号序列中文件序号的顺序,依次播放每一文件序号所对应的多媒体文件。
14.根据权利要求11所述的装置,其特征在于,按照所述组内索引序列中的索引号的顺序,依次播放所述当前组内与各索引号一一对应的多媒体文件包括:
对于所述组内索引序列中的每个索引号,按顺序依次执行下述操作:
按照索引号以及当前组的组序号,得到该索引号对应的文件序号;
播放该文件序号所对应的多媒体文件。
15.根据权利要求14所述的多媒体播放装置,其特征在于,所述播放单元在收到回退播放的指令时,判断所要回退播放的多媒体文件是否在当前组中,若是,则按照索引序列中前一个组内索引对应的文件序号播放多媒体文件;否则,根据组内索引计算上一组的文件序号=(l-2)×M+iM,其中l为当前组的组序号,iM为第M个组内索引,并根据所计算的文件序号播放多媒体文件。
CN200910205095XA 2009-10-30 2009-10-30 一种随机播放方法和装置 Pending CN102054509A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910205095XA CN102054509A (zh) 2009-10-30 2009-10-30 一种随机播放方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910205095XA CN102054509A (zh) 2009-10-30 2009-10-30 一种随机播放方法和装置

Publications (1)

Publication Number Publication Date
CN102054509A true CN102054509A (zh) 2011-05-11

Family

ID=43958751

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910205095XA Pending CN102054509A (zh) 2009-10-30 2009-10-30 一种随机播放方法和装置

Country Status (1)

Country Link
CN (1) CN102054509A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103544974A (zh) * 2012-07-17 2014-01-29 北京千橡网景科技发展有限公司 随机播放方法及播放装置
CN104426652A (zh) * 2013-08-30 2015-03-18 上海复旦微电子集团股份有限公司 数据处理方法和装置
CN104967906A (zh) * 2015-01-15 2015-10-07 腾讯科技(深圳)有限公司 一种随机播放方法及装置
CN104966526A (zh) * 2015-01-14 2015-10-07 腾讯科技(深圳)有限公司 一种随机播放方法及装置
CN104978981A (zh) * 2015-01-29 2015-10-14 腾讯科技(深圳)有限公司 一种音乐随机播放方法及装置
CN106293681A (zh) * 2015-06-13 2017-01-04 龙岩市新罗区智电电子厂 自动更新音乐的播音装置
CN103811039B (zh) * 2012-11-09 2017-07-18 炬才微电子(深圳)有限公司 文件的随机播放方法及便携式播放装置
CN108255460A (zh) * 2018-01-11 2018-07-06 上海展扬通信技术有限公司 音乐随机播放方法、移动终端及计算机可读存储介质
CN110472073A (zh) * 2019-08-20 2019-11-19 深圳传音控股股份有限公司 随机播放方法、装置及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1777931A (zh) * 2003-02-28 2006-05-24 Lg电子株式会社 具有用于管理记录其上的视频数据的随机/洗牌重现的数据结构的记录媒体以及记录和重现的方法和装置
CN101248419A (zh) * 2005-08-22 2008-08-20 新日铁系统集成株式会社 信息处理系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1777931A (zh) * 2003-02-28 2006-05-24 Lg电子株式会社 具有用于管理记录其上的视频数据的随机/洗牌重现的数据结构的记录媒体以及记录和重现的方法和装置
CN101248419A (zh) * 2005-08-22 2008-08-20 新日铁系统集成株式会社 信息处理系统

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103544974A (zh) * 2012-07-17 2014-01-29 北京千橡网景科技发展有限公司 随机播放方法及播放装置
CN103811039B (zh) * 2012-11-09 2017-07-18 炬才微电子(深圳)有限公司 文件的随机播放方法及便携式播放装置
CN104426652A (zh) * 2013-08-30 2015-03-18 上海复旦微电子集团股份有限公司 数据处理方法和装置
CN104966526A (zh) * 2015-01-14 2015-10-07 腾讯科技(深圳)有限公司 一种随机播放方法及装置
CN104966526B (zh) * 2015-01-14 2017-06-23 广州酷狗计算机科技有限公司 一种随机播放方法及装置
CN104967906A (zh) * 2015-01-15 2015-10-07 腾讯科技(深圳)有限公司 一种随机播放方法及装置
CN104967906B (zh) * 2015-01-15 2017-11-10 广州酷狗计算机科技有限公司 一种随机播放方法及装置
CN104978981A (zh) * 2015-01-29 2015-10-14 腾讯科技(深圳)有限公司 一种音乐随机播放方法及装置
CN104978981B (zh) * 2015-01-29 2017-08-01 广州酷狗计算机科技有限公司 一种音乐随机播放方法及装置
CN106293681A (zh) * 2015-06-13 2017-01-04 龙岩市新罗区智电电子厂 自动更新音乐的播音装置
CN108255460A (zh) * 2018-01-11 2018-07-06 上海展扬通信技术有限公司 音乐随机播放方法、移动终端及计算机可读存储介质
CN110472073A (zh) * 2019-08-20 2019-11-19 深圳传音控股股份有限公司 随机播放方法、装置及计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN102054509A (zh) 一种随机播放方法和装置
US8893131B2 (en) System and/or method for bulk loading of records into an ordered distributed database
CN102016789B (zh) 数据处理装置和处理数据的方法
US8332404B2 (en) Data processing apparatus and method of processing data
CN103136243B (zh) 基于云存储的文件系统去重方法及装置
CN102999519B (zh) 一种数据库的读写方法及系统
CN102156751B (zh) 一种提取视频指纹的方法及装置
EP2344959B1 (en) Index compression in databases
CN100356344C (zh) 数据记录装置
EP2419875A2 (en) Sequenced transmission of digital content items
CN109240607B (zh) 一种文件读取方法和装置
CN103425435B (zh) 磁盘存储方法及磁盘存储系统
KR20160100211A (ko) 대용량 오디오 핑거프린트 데이터베이스의 온라인 실시간 업데이팅을 구성하기 위한 방법 및 장치
CN101496007B (zh) 数字档案特别是音频和/或视频文件的自动管理
US20030159010A1 (en) Method, device and computer program product for processing information in a memory
CN105589929A (zh) 图像检索方法和装置
CN110347643A (zh) 一种磁盘间ntfs卷克隆方法及装置
CN109597574A (zh) 分布式数据存储方法、服务器及可读存储介质
WO2006095356A1 (en) A method of logging transactions and a method of reversing a transaction
CN103593447A (zh) 用于数据库表的数据处理方法和装置
US20090187578A1 (en) Information processing device, information processing method and computer program
CN103425802B (zh) 一种磁盘文件的快速检索方法
CN110517656A (zh) 歌词节奏生成方法、设备、存储介质及装置
CN109901796A (zh) 基于外存的排序选择方法、装置、外存储设备及存储介质
JPH0855013A (ja) ソート処理方法および装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20110511