一种多媒体数据的随机播放方法和装置的制造方法

文档序号:10625488阅读:225来源:国知局
一种多媒体数据的随机播放方法和装置的制造方法
【专利摘要】本发明实施例提供了一种多媒体数据的随机播放方法和装置,该方法包括:在预置的多媒体数据中识别未播放的第一多媒体数据;在连续的区间中记录所述第一多媒体数据在所述多媒体数据中的数据序号;在所述区间的范围内随机生成一目标数值;查询所述目标数值对应的数据序号;播放所述数据序号对应的第一多媒体数据。本发明实施例减少了循环遍历的次数,减少了时间复杂度,同时,并没有更改播放列表及其长度这两个变量,避免增加模块之间的耦合度,避免模块之间相互产生影响,因此,并没有影响到其他模块的使用,保证了安全性。
【专利说明】
-种多媒体数据的随机播放方法和装置
技术领域
[0001] 本发明设及计算机处理的技术领域,特别是设及一种多媒体数据的随机播放方法 和一种多媒体数据的随机播放装置。
【背景技术】
[0002] 随着移动通信技术的发展,电子产品在人们的生活、学习、工作中的应用越来越 多。
[0003] 在电子产品中,用户经常随机播放音乐、壁纸、屏保等多媒体数据。
[0004] 在随机播放时,需要使用播放列表及其长度运两个变量,而运两个变量的变化设 及多个模块,为了减少禪合度,避免模块之间相互产生影响,现有随机播放时不会改变运两 个变量的值,多次进行循环遍历,时间复杂度比较高。

【发明内容】

[0005] 鉴于上述问题,为了解决上述随机播放的时间复杂度比较高的问题,本发明实施 例提出了一种多媒体数据的随机播放方法和相应的一种多媒体数据的随机播放装置。
[0006] -方面,本发明实施例公开了一种多媒体数据的随机播放方法,包括:
[0007] 在预置的多媒体数据中识别未播放的第一多媒体数据;
[000引在连续的区间中记录所述第一多媒体数据在所述多媒体数据中的数据序号;
[0009] 在所述区间的范围内随机生成一目标数值;
[0010] 查询所述目标数值对应的数据序号;
[0011] 播放所述数据序号对应的第一多媒体数据。
[0012] 另一方面,本发明实施例公开了一种多媒体数据的随机播放装置,包括:
[0013] 多媒体数据识别模块,用于在预置的多媒体数据中识别未播放的第一多媒体数 据;
[0014] 数据序号记录模块,用于在连续的区间中记录所述第一多媒体数据在所述多媒体 数据中的数据序号;
[0015] 目标数值随机生成模块,用于在所述区间的范围内随机生成一目标数值;
[0016] 数据序号查询模块,用于查询所述目标数值对应的数据序号;
[0017] 多媒体数据播放模块,用于播放所述数据序号对应的第一多媒体数据。
[001引本发明实施例包括W下优点:
[0019]本发明实施例在预置的多媒体数据中识别未播放的第一多媒体数据,在连续的区 间中记录第一多媒体数据在多媒体数据中的数据序号,在区间的范围内随机生成一目标数 值,播放该目标数值对应的数据序号的第一多媒体数据,减少了循环遍历的次数,减少了时 间复杂度,同时,并没有更改播放列表及其长度运两个变量,避免增加模块之间的禪合度, 避免模块之间相互产生影响,因此,并没有影响到其他模块的使用,保证了安全性。
【附图说明】
[0020]图1是本发明的一种多媒体数据的随机播放方法实施例的步骤流程图;
[0021 ]图2是本发明实施例的一种未播放的第一多媒体数据的识别流程图;
[0022] 图3是本发明实施例的一种第一多媒体数据的数据序号的记录流程图;
[0023] 图4是本发明的一种多媒体数据的随机播放装置实施例的结构框图。
【具体实施方式】
[0024] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实 施方式对本发明作进一步详细的说明。
[0025] 参照图1,示出了本发明的一种多媒体数据的随机播放方法实施例的步骤流程图, 具体可W包括如下步骤:
[0026] 步骤101,在预置的多媒体数据中识别未播放的第一多媒体数据;
[0027] 在具体实现中,本发明实施例可W应用在电子设备中,具体可W包括移动设备,例 如,手机、平板电脑、智能手表等等,也可W包括固定设备,例如,电视、个人电脑等等,本发 明实施例对此不加 W限制。
[00巧]运些电子设备的操作系统可W包括An化oid(安卓)、I0S、Windows陆one、Windows 等等,通常可W支持各种应用的运行,例如,音频播放器、视频播放器等等。
[0029] 在运些电子设备中,预先存储有多媒体数据,该多媒体数据包括图像数据、音频数 据、视频数据,等等,经常用于随机播放。
[0030] 例如,对于图像数据,其可W表现为壁纸、屏保等形式。
[0031] 又例如,对于音频数据,其可W表现为音乐、歌曲等形式。
[0032] 又例如,对于视频数据,其可W表现为MV(Music Video,音乐录像带)、电影等形 式。
[0033] 随机播放的要求,一般是随机播放播放列表中的多媒体数据,不能重复播放之前 已播放过的多媒体数据,直至所有多媒体数播放结束,因此,下一个播放对象一般是未播放 的多媒体数据。
[0034] 在本发明实施例中,未播放的多媒体数据可W称之为第一多媒体数据,此外,已播 放的多媒体数据可W称之为第二多媒体数据。
[0035] 在本发明的一个实施例中,如图2所示,步骤101可W包括如下子步骤:
[0036] 子步骤S11,读取预置的多媒体数据的播放列表和历史播放记录;
[0037] 在随机播放中,一般要应用几个变量:
[003引 1、播放列表 mPlayList[i](i = 0,l,2,3...);
[0039] 播放列表mPlayList中按照一定的顺序存放着要播放的所有多媒体数据的地址。
[0040] 2、播放列表 mPlayList的长度为mPlayList len;
[0041 ] 播放列表mPlayList的长度为mPlayListlen-般指播放列表mPlayList [i]所包含 的多媒体数据的数量。
[0042] 3、播放历史记录mHistoiy;
[0043] 播放历史记录mHistcxry中存放着已播放的第二多媒体数据在播放列表mPlayList
[i ]中的数据序号mPlayPos (又称下标)。
[0044] 子步骤S12,按照所述播放列表的长度创建一数组;
[0045] 在本发明实施例中,依据播放列表的长度创建一数组,即该数组中键值对(数组序 号与数值)的数量与该播放列表的长度相等。
[0046] 在数组中,数组序号一般从0开始递增,因此,数组序号的范围为0- (1]1口1曰71^131:1^6]1-1),因此,在本发明实施例中可^创建数组化曰。43[;[],其中,1 = 0,1,2, 3,· · ,(mPlayListLen-1)。
[0047] 子步骤S13,从所述历史播放记录中读取已播放的第二多媒体数据在所述播放列 表中的数据序号;
[0048] 子步骤S14,依次判断所述数组序号与所述数据序号是否匹配;若否,则执行子步 骤S15,若是,则执行子步骤S16;
[0049] 子步骤S15,将所述数组序号的数值赋值为第一数值;
[0050] 子步骤S16,将所述数组序号的数值赋值为第二数值。
[0051] 如果数组序号与数据序号不匹配,则可W在该数组序号的数值赋值为表示未播放 的第一多媒体数据的第一数值。
[0052] 如果数组序号与数据序号匹配,则可W在该数组序号的数值赋值为表示已播放的 第二多媒体数据的第二数值。
[0053] 通常情况下,为了将第二数值与数组序号区分,在本发明实施例的一个示例中,第 一数值可W小于或等于值最小的数组序号、大于或等于值最大的数组序号,假设第一数值 为曰,组序号的范围为0-(111?1曰7^31:1^6]1-1),贝1|曰《0,曰>111?1曰71^13化6]1-1,即曰是除0- (mPlayListLen-1)之外的任意数值。
[0054] 当第一数值小于或等于值最小的数组序号时,第二数值小于第一数值;
[0055] 当第一数值大于或等于值最大的数组序号时,第二数值大于第一数值。
[0化6] 假设第二数值为b,则当a《0时,b<a;当曰>111?1日7]^131:]^6]1-1时,b>a。
[0057] 在Amlroid系统中,在java语言中,创建的数组在初始化之前,所有的数值均为0。
[0058] 在本发明实施例中,为了减少计算量,可W将第一数值设置为0,将第二数值设置 为-1,因此,可W在播放历史记录mHistory中提取已播放的第二多媒体数据的数组序号,将 数组中相应的数组序号对应的数值设置为第二数值-1。
[0059] 步骤102,在连续的区间中记录所述第一多媒体数据在所述多媒体数据中的数据 序号;
[0060] 在具体实现中,可W在多媒体数据中识别出未播放的第一多媒体数据,并在连续 的区间中记录其在多媒体数据中的数据序号,即数据序号之间并未间断。
[0061 ] 在本发明的一个实施例中,如图3所示,步骤102可W包括如下子步骤:
[0062] 子步骤S21,在所述数组中依次读取所述数组序号的数值;
[0063] 在本发明实施例中,可W循环判断数组中数组序号的数值是否为表征未播放的第 一多媒体数据的第一数值,W将数组序号(即多媒体数据的下标)赋值至数组的前Μ个数组 序号的数值中,组成连续的区间。
[0064] 其中,Μ为未播放的第一多媒体数据的数量numUnPlayed,numUnPlayed =播放列表 的长度mPlaylen-播放历史记录的数量mHistoiy. size。
[0065] 在赋值给前Μ个数组序号的数值的过程中,每次赋值,可W在数组中依次读取数组 序号的数值,所谓依次,是从第一个数组序号(即0)开始读取数值,如果该数值是表征未播 放的第一多媒体数据的第一数值,则赋值,否则,读取下一个数组序号的数值,即第二个数 组序号(即1)的数值,如此递增,直至读取识别表征未播放的第一多媒体数据的第一数值完 毕,然后将运个数组的数组序号赋值给前Μ项中尚未使用此过此赋值的那一项,并对前Μ项 依次运样赋值下去。
[0066] 子步骤S22,识别所述数值的属性;当确定所述数值为第一数值时,执行子步骤 S23;当确定所述数值为第二数值时,返回执行子步骤S21。
[0067] 在本发明实施例中,数值的属性包括两个,表征未播放的第一多媒体数据的第一 数值,W及,表征已播放的第二多媒体数据的第二数值。
[0068] 如果数值的属性为表征未播放的第一多媒体数据的第一数值,则可W计算其数据 序号。
[0069] 如果数值的属性为表征已播放的第二多媒体数据的第二数值,则可W跳过该数 值,继续循环,读取下一个数值。
[0070] 在具体实现中,可W将数值与第一数值或第二数值进行比较,则可W判断出该数 值的属性。
[0071] 在一个示例中,如果第一数值小于或等于值最小的数组序号、大于或等于值最大 的数组序号。
[0072] 当第一数值小于或等于值最小的数组序号时,第二数值小于第一数值;
[0073] 当第一数值大于或等于值最大的数组序号时,第二数值大于第一数值。
[0074] 则可W判断数值是否小于第一数值(如0);若是,则确定数值为第二数值(如-1); 若否,则确定数值为第一数值(如0)。
[0075] 当然,上述识别方式只是作为示例,在实施本发明实施例时,若第一数值、第二数 值具有其他限制,则可W根据实际情况设置其他识别方式,本发明实施例对此不加 W限制。 另外,除了上述识别方式外,本领域技术人员还可W根据实际需要采用其它识别方式,本发 明实施例对此也不加 W限制。
[0076] 子步骤S23,按照所述数组序号计算所述第一多媒体数据在所述播放列表中的数 据序号;
[0077] 由于数组是按照多媒体数据的播放列表的长度进行创建的,因此,多媒体数据的 数据序号与数组的数组序号存在一定的关系。
[007引例如,包I建的数组为 tracks[i],其中,i = 0,l ,2,3,…,(mPlayLis1:Len-l),则i的 值与多媒体数据的数据序号相同。
[0079] 子步骤S24,将所述数据序号赋值给所述数组中前N个数组序号的数值;
[0080] 在具体实现中,可W按照顺序将数据序号赋值给数组中前N个数组序号的数值。
[0081] 例如,第一个识别到的数据序号赋值给第一个数组序号(如0),第二个识别到的数 据序号赋值给第二个数组序号(如1),等等。
[0082] 当然,除了顺序之外,也可W按照乱序将数据序号赋值给数组中前N个数组序号的 数值,本发明实施例对此不加 W限制。
[0083] 子步骤S25,判断是否记录所述第一多媒体数据的数据序号完毕;若是,则执行子 步骤S26,若否,则返回执行子步骤S21;
[0084] 在每次循环中,若判断记录到的第一多媒体数据的数据序号的数量等于第一多媒 体数据的数量numUnPlayed,则可W认为记录完毕。
[0085] 子步骤S26,结束记录所述第一多媒体数据在所述多媒体数据中的数据序号。
[0086] 若记录所述第一多媒体数据的数据序号完毕,则可W结束循环操作。
[0087] 步骤103,在所述区间的范围内随机生成一目标数值;
[0088] 在本发明实施例中,可W在连续的区间的范围内,调用随机函数,生成一目标数 值,即该目标数值大于区间的起始值,小于区间的终止值。
[0089] 在具体实现中,若在数组tracks[i]的前Μ个数组序号中记录第一多媒体数据的数 据序号,则可W在数组中前Μ个数组序号的范围内随机生成一目标数值。
[0090] 步骤104,查询所述目标数值对应的数据序号;
[0091] 在本发明实施例中,通过目标数值,可W在该区间中查找到相应的数据序号。
[0092] 在具体实现中,若在数组tracks[i]的前Μ个数组序号中记录第一多媒体数据的数 据序号,则可W在数组中查询与目标数值相等的数组序号,提取所述数组序号数值,作为数 据序号。
[0093] 步骤105,播放所述数据序号对应的第一多媒体数据。
[0094] 在具体实现中,可W在播放列表中读取该数据序号对应的地址,从该地址加载第 一多媒体数据进行播放。
[0095] 本发明实施例在预置的多媒体数据中识别未播放的第一多媒体数据,在连续的区 间中记录第一多媒体数据在多媒体数据中的数据序号,在区间的范围内随机生成一目标数 值,播放该目标数值对应的数据序号的第一多媒体数据,减少了循环遍历的次数,减少了时 间复杂度,同时,并没有更改播放列表及其长度运两个变量,避免增加模块之间的禪合度, 避免模块之间相互产生影响,因此,并没有影响到其他模块的使用,保证了安全性。
[0096] 为使本领域技术人员更好地理解本发明实施例,W下通过具体的示例来说明本发 明实施例中多媒体数据的随机播放方法。
[0097] 假设总共有5首歌曲,播放列表mPlayList中存放着运五首歌曲的地址,即 mPlayList[4],数据序号分别为0、1、2、3、4,播放列表mPlayList的长度mPlayListlen = 5。 [009引假设第2首歌曲和第4首歌曲是已播放的歌曲,记录在播放记录mHistory中,其对 应的数据序号是1和3。
[0099 ] -、应用目前某个歌曲的随机播放方法:
[0100] 1、按照播放列表mPlayList的长度mPlayListlen创建数组化acks,并按照数组序 号进行赋值,tracks[i] = i,i = 0,1,2,3,..., (mPlayListlen-1)。
[0101 ] 在本示例中,由于播放列表mPlayList的长度mPlayListlen = 5,即可W创建5个键 值对键值对(数组序号与数值)的数组tracks[4]:
[0102]_
[0103]~2、从播放历史记录mHistory中取出已播放的歌曲的数据序号,并在数组tracks [i]中,将与数据序号相等的数组序号的数值置为-1。
[0104]在本示例中,从播放记录mHistory中提取已播放的歌曲的数据序号1和3,将数据 序号为1的第二数值-1赋值给数组序号为1的数值,将数据序号为3的第二数值-1赋值给数 组序号为3的数值。
[01化]赋值之后的数组tracks[4]为:
[0106]
[0107] 3、先随机生成得到一个数值skip(0<ski^numUnPlayed),运个skip表示在所有未 播放的歌曲中第skip首歌曲,遍历数组,查找第skip首未播放的歌曲。
[010引假设skip = 2,设置中间值k = -l,tracks[++k]<0作为数值的属性的判断条件, skip<0作为终止条件。
[0109] 在第一轮循环中,tracks [++k] = tracks [ 0 ] <0,运个判断条件不成立,表示hacks [0 ]的数值为表征未播放的歌曲的第一数值。
[0110] 第一轮循环结束,k的值加1,skip的值减1,即k = 0,skip = l。
[0111] 由于skip = 1 <0,终止条件不成立,循环继续。
[0112] 在第二轮循环中,tracks[++k]=化acks[ 1 ]<0,运个判断条件成立,表示tracks [1 ]的数值为表征已播放的歌曲的第二数值,跳过该数值。
[0113] k的值再加 1,即k = l,第二轮循环继续。
[0114] tracks [++k] = hacks [ 2 ] <0,运个判断条件不成立,表示tracks [ 2 ]的数值为表征 未播放的歌曲的第一数值。
[0115] 第二轮循环结束,k的值加1,skip的值减1,即k = 2,skip = 0。
[0116] 由于skip = 0<0,终止条件不成立,循环继续。
[0117] 在第二轮循环中,tracks[++k]=化acks [3]<0,运个判断条件成立,表示tracks [1 ]的数值为表征已播放的歌曲的第二数值,跳过该数值。
[011引k的值再加1,即k = 3,第Ξ轮循环继续。
[0119] tracks [++k] = hacks [4] <0,运个判断条件不成立,表示tracks [4]的数值为表征 未播放的歌曲的第一数值。
[0120] 第Ξ轮循环结束,k的值加 1,skip的值减1,即k = 4,skip = -l。
[0121] 由于skip = -K0,终止条件成立,循环结束。
[0122] 因此,数组序号4对应的数据序号为4,即数据序号为4的歌曲为待播放的歌曲。
[0123] 4、播放该数据序号对应的歌曲。
[0124] 在示例中,可W播放第5首歌曲。
[0125] 二、应用本发明实施例的随机播放方法
[01%] 1、按照播放列表mPlayList的长度mPlayListlen创建数组化acks,并W区分已播 放的歌曲和未播放的歌曲为目的进行赋值;
[0127] 在本示例中,由于播放列表mPlayList的长度mPlayListlen = 5,即可W创建5个键 值对键值对(数组序号与数值)的数组tracks[4]:
[012 引

[0129] 创建的数组tracks[4]在初始化之前,所有的数值均为0。
[0130] 从播放记录mHistory中提取已播放的歌曲的数据序号1和3。
[0131] 未播放的歌曲的第一数值设置为0,已播放歌曲的第二数值设置为-1。
[0132] 将数据序号为1的第二数值-1赋值给数组序号为1的数值,将数据序号为3的第二 数值-1赋值给数组序号为3的数值。
[0133] 赋值之后的数组tracks[4]为:
[0134]
[01巧]2、将数组tracks中数组序号为前numUnPlayed项的数值,赋值为未播放歌曲的数 组序号,其中,numUnPlayed =播放列表的长度mPlaylen-播放历史记录的数量 mHistory.size。
[0136] 在本示例中,num加 Played = 5-2 = 3,设置第一中间值i = -l,第二中间值j = 0, racks[++i]<0作为数值的属性的判断条件,jCnumUnPlayed作为循环条件。
[0137] 在第一次循环中,tracks [++i] = tracks [0] <0,运个判断条件不成立,表示 tracks [ 0 ]的数值为表征未播放的歌曲的第一数值。
[013引对tracks [ j ] = i,即 tracks [ 0 ] = 0。
[0139] 第一轮循环结束,i和j的值加1,即i = 0,j = l。
[0140] 第一轮循环之后的数组tracks[4]为:
[0141]
[0142] 由于j = 1 < 3,循环条件成立,循环继续。
[0143] 在第二轮循环中,tracks[++i ] = tracks[ 1 ] <0,运个判断条件成立,表示hacks [1 ]的数值为表征已播放的歌曲的第二数值,跳过该数值。
[0144] i的值再加1,即i = l,第二轮循环继续。
[0145] tracks[++i] =tracks[2] <0,运个判断条件不成立,表示1:racks[2]的数值为表 征未播放的歌曲的第一数值。
[0146] 对tracks [ j ] = i,即 tracks [ 1 ] = 2。
[0147] 第一轮循环结束,i和j的值加1,即i = 2,j = 2。
[0148] 第一轮循环之后的数组tracks[4]为:
[0149]
[0150] 由于j = 2<3,循环条件成立,循环继续。
[0151 ] 在第S轮循环中,tracks[++i] = tracks[3] <0,运个判断条件成立,表示hacks [3]的数值为表征已播放的歌曲的第二数值,跳过该数值。
[0152] i的值再递增1,即i = 3,第二轮循环继续。
[0153] tracks[++i] =tracks[4] <0,运个判断条件不成立,表示1:racks[4]的数值为表 征未播放的歌曲的第一数值。
[0154] 对tracks [ j ] = i,即 tracks [ 2 ] = 4。
[0155] 第Ξ轮循环结束,巧日j的值加1,即i = 3,j = 3。
[0156] 第Ξ轮循环之后的数组tracks[4]为:
[0157]
[0158] 由于j = 3 < 3,循环条件不成立,循环结束。
[0159] 3、在数组tracks中前num化Played项数组序号的范围内,随机生成一目标数值查 找与目标数值相等的数组序号的数值,获得未播放的歌曲的数据序号。
[0160] 4、播放该数据序号对应的歌曲。
[0161] 在本示例中,可W在0-2的范围内随机生成一目标数值,假设为1,即提取数组序号 为1的数值,即2,播放数据序号mPlayPos为2的歌曲,即播放第3首歌曲。
[0162] 针对上述示例,假设多媒体数据的数量为N,N为正整数:
[0163] 应用目前某个歌曲的随机播放方法的平均时间复杂度:
[0164] 在步骤1中,每次都要通过循环η次赋值,平均时间复杂度为0(N);
[0165] 在步骤2中,播放历史记录的数量mHistory. size的大小是变化的,分别从0到N,共 N+1次,所W平均时间复杂度为0(N/2);
[0166] 在步骤3中,从整个循环来看,每次k的值都会保留下来下来,而k的值不可能大于 N,即总的歌曲数目,也就是++k的运行次数不会大于N.
[0167] 在运算最少的情况中,skip = 0,k = 0,只运行一次,在运算最多的情况中,运行N 次,所W,平均时间复杂度也为〇(N/2)。
[016引因此,总的时间复杂度为0(N)+0(N/2)+0(N/2)=0(2N)。
[0169] 应用本发明实施例的随机播放方法:
[0170] 在步骤1中,播放历史记录的数量mHistory. size的大小是变化的,分别从0到N,共 N+1次,所W平均时间复杂度为0(N/2);
[0171] 在步骤2中,在整个循环中,每次i的值会保存下来,i的值最大不超过N-1,因为循 环跳出条件KunNumPlayed,j的最大值为unNumPlayed-1,j的循环次数为unNumPlayed次, 而在tracks[ i ]中,共有unNumPlayed首歌的值不小于0,因此整个赋值完成后,tracks [unNumPlayed-1 ]的值是所有未播放歌曲中最后一首,小于或等于(N-1)的。
[0172] 所W,i的值也就小于或等于(N-1),在运算最少的情况中,numUnPlayed=l,track
[0] = 0,那么运行一次,在运算最多的情况中,numUnPlayed = N,那么运行N次,所W,平均时 间复杂度也为〇(N/2)。
[0173] 在步骤3中,只运行1次,时间复杂度为0(1),由于多媒体数据的数量N-般比1大很 多,因此,此时间复杂度0(1) -般可W忽略。
[0174] 因此,总的时间复杂度为 0(N/2)+0(N/2)+0(l)>0(N)。
[0175] 综上所述,本发明实施例的多媒体数据的随机播放方法,由于在数组赋值时区分 了已播放的多媒体数据和未播放的多媒体数据,节约了部分时间,并且,更改循环过程,使 得平均时间复杂度大约是目前随机播放方法的一半,在空间复杂度上,并没有引入新的、大 的变量,同时,并没有改变播放列表及其长度,对随机播放的整体流程也没有做出大的改 变,避免增加模块之间的禪合度,避免模块之间相互产生影响,因此,并没有影响到其他模 块的使用,保证了安全性。
[0176] 需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组 合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依 据本发明实施例,某些步骤可W采用其他顺序或者同时进行。其次,本领域技术人员也应该 知悉,说明书中所描述的实施例均属于优选实施例,所设及的动作并不一定是本发明实施 例所必须的。
[0177] 参照图4,示出了本发明的一种多媒体数据的随机播放装置实施例的结构框图,具 体可W包括如下模块:
[0178] 多媒体数据识别模块401,用于在预置的多媒体数据中识别未播放的第一多媒体 数据;
[0179] 数据序号记录模块402,用于在连续的区间中记录所述第一多媒体数据在所述多 媒体数据中的数据序号;
[0180] 目标数值随机生成模块403,用于在所述区间的范围内随机生成一目标数值;
[0181 ]数据序号查询模块404,用于查询所述目标数值对应的数据序号;
[0182] 多媒体数据播放模块405,用于播放所述数据序号对应的第一多媒体数据。
[0183] 在本发明的一个实施例中,所述多媒体数据识别模块401可W包括如下子模块:
[0184] 播放信息读取子模块,用于读取预置的多媒体数据的播放列表和历史播放记录;
[0185] 数组创建子模块,用于按照所述播放列表的长度创建一数组;
[0186] 数据序号读取子模块,用于从所述历史播放记录中读取已播放的第二多媒体数据 在所述播放列表中的数据序号;
[0187] 匹配子模块,用于依次判断所述数组序号与所述数据序号是否匹配;若否,则调用 第一赋值子模块,若是,则调用第二赋值子模块;
[0188] 第一赋值子模块,用于将所述数组序号的数值赋值为第一数值;
[0189] 第二赋值子模块,用于将所述数组序号的数值赋值为第二数值。
[0190] 在本发明的一个实施例中,所述数据序号记录模块402可W包括如下子模块:
[0191] 数值依次读取子模块,用于在所述数组中依次读取所述数组序号的数值;
[0192] 属性识别子模块,用于识别所述数值的属性;
[0193] 数据序号计算子模块,用于在确定所述数值为第一数值时,按照所述数组序号计 算所述第一多媒体数据在所述播放列表中的数据序号;
[0194] 第Ξ赋值子模块,用于将所述数据序号赋值给所述数组中前Μ个数组序号的数值, Μ为所述第一多媒体数据的数量;
[01%]循环判断子模块,用于判断是否记录所述第一多媒体数据的数据序号完毕;若是, 则调用结束子模块,若否,则返回调用所述数值依次读取子模块;
[0196] 调用结束子模块,用于结束记录所述第一多媒体数据在所述多媒体数据中的数据 序号;
[0197] 跳跃子模块,用于在确定所述数值为第二数值时,返回调用所述数值依次读取子 模块。
[0198] 在本发明实施例的一个示例中,所述第一数值小于或等于值最小的数组序号、大 于或等于值最大的数组序号;
[0199] 当所述第一数值小于或等于值最小的数组序号时,所述第二数值小于所述第一数 值;
[0200] 当所述第一数值大于或等于值最大的数组序号时,所述第二数值大于所述第一数 值;
[0201 ]所述属性识别子模块可W包括如下单元:
[0202] 数值判断单元,用于判断所述数值是否小于所述第一数值;若是,则调用第一确定 单元,若否,则调用第二确定单元;
[0203] 第一确定单元,用于确定所述数值为第二数值;
[0204] 第二确定单元,用于确定所述数值为第一数值。
[0205] 在本发明的一个实施例中,所述目标数值随机生成模块403可W包括如下子模块:
[0206] 数组序号生成子模块,用于在所述数组中前Μ个数组序号的范围内随机生成一目 标数值。
[0207] 在本发明的一个实施例中,所述数据序号查询模块404可W包括如下子模块:
[0208] 数组序号查询子模块,用于在所述数组中查询与所述目标数值相等的数组序号;
[0209] 数据序号提取子模块,用于提取所述数组序号的数值,作为数据序号。
[0210] 在本发明的一个实施例中,所述多媒体数据播放模块405可W包括如下子模块:
[0211] 地址读取子模块,用于在所述播放列表中读取所述数据序号对应的地址;
[0212] 多媒体数据加载子模块,用于从所述地址加载所述第一多媒体数据进行播放。
[0213] 对于装置实施例而言,由于其与方法实施例基本相似,所W描述的比较简单,相关 之处参见方法实施例的部分说明即可。
[0214] 本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与 其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0215] 本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算 机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和 硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可 用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上 实施的计算机程序产品的形式。
[0216] 本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序 产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图 中的每一流程和/或方框、W及流程图和/或方框图中的流程和/或方框的结合。可提供运些 计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设 备的处理器W产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执 行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中 指定的功能的装置。
[0217] 运些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备 W特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包 括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方 框或多个方框中指定的功能。
[0218] 运些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得 在计算机或其他可编程终端设备上执行一系列操作步骤W产生计算机实现的处理,从而在 计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程 和/或方框图一个方框或多个方框中指定的功能的步骤。
[0219] 尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基 本创造性概念,则可对运些实施例做出另外的变更和修改。所W,所附权利要求意欲解释为 包括优选实施例W及落入本发明实施例范围的所有变更和修改。
[0220] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将 一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示运些实体或操作 之间存在任何运种实际的关系或者顺序。而且,术语"包括"、"包含"或者其任何其他变体意 在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包 括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为运种过程、方法、物品 或者终端设备所固有的要素。在没有更多限制的情况下,由语句"包括一个……"限定的要 素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0221] W上对本发明所提供的一种多媒体数据的随机播放方法和一种多媒体数据的随 机播放装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了 阐述,W上实施例的说明只是用于帮助理解本发明的方法及其核屯、思想;同时,对于本领域 的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上 所述,本说明书内容不应理解为对本发明的限制。
【主权项】
1. 一种多媒体数据的随机播放方法,其特征在于,包括: 在预置的多媒体数据中识别未播放的第一多媒体数据; 在连续的区间中记录所述第一多媒体数据在所述多媒体数据中的数据序号; 在所述区间的范围内随机生成一目标数值; 查询所述目标数值对应的数据序号; 播放所述数据序号对应的第一多媒体数据。2. 根据权利要求1所述的方法,其特征在于,所述在预置的多媒体数据中识别未播放的 第一多媒体数据的步骤包括: 读取预置的多媒体数据的播放列表和历史播放记录; 按照所述播放列表的长度创建一数组; 从所述历史播放记录中读取已播放的第二多媒体数据在所述播放列表中的数据序号; 依次判断所述数组序号与所述数据序号是否匹配; 若否,则将所述数组序号的数值赋值为第一数值; 若是,则将所述数组序号的数值赋值为第二数值。3. 根据权利要求2所述的方法,其特征在于,所述在连续的区间中记录所述第一多媒体 数据在所述多媒体数据中的数据序号的步骤包括: 在所述数组中依次读取所述数组序号的数值; 识别所述数值的属性; 当确定所述数值为第一数值时,按照所述数组序号计算所述第一多媒体数据在所述播 放列表中的数据序号; 将所述数据序号赋值给所述数组中前Μ个数组序号的数值,Μ为所述第一多媒体数据的 数量; 判断是否记录所述第一多媒体数据的数据序号完毕; 若是,则结束记录所述第一多媒体数据在所述多媒体数据中的数据序号; 若否,则返回执行所述依次读取所述数组中数组序号对应的数值的步骤; 当确定所述数值为第二数值时,返回执行所述依次读取所述数组中数组序号对应的数 值的步骤。4. 根据权利要求3所述的方法,其特征在于,所述第一数值小于或等于值最小的数组序 号、大于或等于值最大的数组序号; 当所述第一数值小于或等于值最小的数组序号时,所述第二数值小于所述第一数值; 当所述第一数值大于或等于值最大的数组序号时,所述第二数值大于所述第一数值; 所述识别所述数值的属性的步骤包括: 判断所述数值是否小于所述第一数值; 若是,则确定所述数值为第二数值; 若否,则确定所述数值为第一数值。5. 根据权利要求3所述的方法,其特征在于,所述在所述区间的范围内随机生成一目标 数值的步骤包括: 在所述数组中前Μ个数组序号的范围内随机生成一目标数值。6. 根据权利要求3或4或5所述的方法,其特征在于,所述查询所述目标数值对应的数据 序号的步骤包括: 在所述数组中查询与所述目标数值相等的数组序号; 提取所述数组序号的数值,作为数据序号。7. 根据权利要求2-6任一项所述的方法,其特征在于,所述播放所述数据序号对应的第 一多媒体数据的步骤包括: 在所述播放列表中读取所述数据序号对应的地址; 从所述地址加载所述第一多媒体数据进行播放。8. -种多媒体数据的随机播放装置,其特征在于,包括: 多媒体数据识别模块,用于在预置的多媒体数据中识别未播放的第一多媒体数据; 数据序号记录模块,用于在连续的区间中记录所述第一多媒体数据在所述多媒体数据 中的数据序号; 目标数值随机生成模块,用于在所述区间的范围内随机生成一目标数值; 数据序号查询模块,用于查询所述目标数值对应的数据序号; 多媒体数据播放模块,用于播放所述数据序号对应的第一多媒体数据。9. 根据权利要求8所述的装置,其特征在于,所述多媒体数据识别模块包括: 播放信息读取子模块,用于读取预置的多媒体数据的播放列表和历史播放记录; 数组创建子模块,用于按照所述播放列表的长度创建一数组; 数据序号读取子模块,用于从所述历史播放记录中读取已播放的第二多媒体数据在所 述播放列表中的数据序号; 匹配子模块,用于依次判断所述数组序号与所述数据序号是否匹配;若否,则调用第一 赋值子模块,若是,则调用第二赋值子模块; 第一赋值子模块,用于将所述数组序号的数值赋值为第一数值; 第二赋值子模块,用于将所述数组序号的数值赋值为第二数值。10. 根据权利要求9所述的装置,其特征在于,所述数据序号记录模块包括: 数值依次读取子模块,用于在所述数组中依次读取所述数组序号的数值; 属性识别子模块,用于识别所述数值的属性; 数据序号计算子模块,用于在确定所述数值为第一数值时,按照所述数组序号计算所 述第一多媒体数据在所述播放列表中的数据序号; 第三赋值子模块,用于将所述数据序号赋值给所述数组中前Μ个数组序号的数值,Μ为 所述第一多媒体数据的数量; 循环判断子模块,用于判断是否记录所述第一多媒体数据的数据序号完毕;若是,则调 用结束子模块,若否,则返回调用所述数值依次读取子模块; 调用结束子模块,用于结束记录所述第一多媒体数据在所述多媒体数据中的数据序 号; 跳跃子模块,用于在确定所述数值为第二数值时,返回调用所述数值依次读取子模块。
【文档编号】G11B27/10GK105989866SQ201610511008
【公开日】2016年10月5日
【申请日】2016年6月30日
【发明人】孙卓, 张博
【申请人】青岛海信移动通信技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1