一种变比特率mp3播放时间获取方法及系统的制作方法

文档序号:9218258阅读:417来源:国知局
一种变比特率mp3播放时间获取方法及系统的制作方法
【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种变比特率MP3播放时间获取方法及系统。
【背景技术】
[0002]目前,MP3文件在播放时,需要准确获取MP3文件实时的播放时间。
[0003]对于恒定比特率(CBR)MP3文件播放时间计算比较简单,通过播放时的文件指针位置与总文件大小的比值再乘以总播放时间即可得到。但是,对于变比特率(VBR)MP3文件在播放时,由于每帧播放时间相同但每帧大小不同,所以会造成文件指针移动忽快忽慢,如果再用CBR的方法获取实时的播放时间得到的播放时间会时快时慢,非常不准确,尤其对于比特率变化比较大的MP3文件这种现象会更明显,这就严重影响了用户使用,给用户带来不便。

【发明内容】

[0004]有鉴于此,有必要针对上述变比特率MP3文件获取实时播放时间忽快忽慢不准确的问题,提供一种变比特率MP3播放时间获取方法及系统。
[0005]本发明提供一种变比特率MP3播放时间获取方法,包括如下步骤:
[0006]SlO:在变比特率MP3文件播放时,获取变比特率MP3文件的总帧数和总播放时间;
[0007]S20:对应整个变比特率MP3文件的N个位置设置N个索引成员,每个索引成员存储所处位置和所处位置处的播放时间;
[0008]S30:在进行播放时,实时获取文件指针所处的位置,确定文件指针处在哪两个索引成员之间;获取前一个索引成员存储的播放时间,并且获取文件指针与前一个索引成员之间的帧数,通过存储的播放时间加上帧数对应的时间来确定实时的播放时间。
[0009]优选的,所述步骤SlO具体为:在变比特率MP3文件播放时,解析该文件的文件头,由文件头中获取该文件的总帧数和总播放时间。
[0010]优选的,所述步骤S20具体为:对应整个变比特率MP3文件的N个位置设置N个索引成员,且相邻两个索引成员之间时间间隔相同。
[0011]本发明还提供一种变比特率MP3播放时间获取系统,包括
[0012]参数获取单元,在变比特率MP3文件播放时,获取变比特率MP3文件的总帧数和总播放时间;
[0013]索引设置单元,对应整个变比特率MP3文件的N个位置设置N个索引成员,每个索引成员存储所处位置和所处位置处的播放时间;
[0014]播放时间获取单元,在进行播放时,实时获取文件指针所处的位置,确定文件指针处在哪两个索引成员之间;获取前一个索引成员存储的播放时间,并且获取文件指针与前一个索引成员之间的帧数,通过存储的播放时间加上帧数对应的时间来确定实时的播放时间。
[0015]优选的,所述参数获取单元在变比特率MP3文件播放时,解析该文件的文件头,由文件头中获取该文件的总帧数和总播放时间。
[0016]优选的,所述索引设置单元对应整个变比特率MP3文件的N个位置设置N个索引成员,且相邻两个索引成员之间时间间隔相同。
[0017]本发明变比特率MP3播放时间获取方法及系统,对应整个变比特率MP3文件的N个位置设置N个索引成员,每个索引成员存储所处位置处的播放时间,在进行播放时,获取文件指针前一个索引成员存储的播放时间加上与前一个索引成员之间的帧数对应的时间即可确定实时的播放时间,从而既保证了播放时间的准确性,又大大提高了效率,保证了用户使用,给用户带来极大便利。
【附图说明】
[0018]图1是一个实施例中的变比特率MP3播放时间获取方法的流程图。
【具体实施方式】
[0019]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0020]图1是一个实施例中的变比特率MP3播放时间获取方法的流程图,如图1所示,该方法包括如下步骤:
[0021]SlO:在变比特率MP3文件播放时,获取变比特率MP3文件的总帧数和总播放时间。
[0022]在变比特率MP3文件进行播放时,由于是变比特率的,每帧播放时间相同,但是每帧大小不同,文件指针移动会跟随每帧的大小忽快忽慢,造成播放时间不准确。故,首先需要获取该MP3文件的总帧数和总播放时间(总播放时间=总帧数*每帧的播放时间,每帧的播放时间是固定的)。
[0023]在进一步的方式中,该步骤具体为:在变比特率MP3文件播放时,解析该文件的文件头,由文件头中获取该文件的总帧数和总播放时间。
[0024]S20:对应整个变比特率MP3文件的N个位置设置N个索引成员,每个索引成员存储所处位置和所处位置处的播放时间。
[0025]由于变比特率MP3文件每一帧的播放时间相同,通过获取已经播放过的帧数能够准确获取实时的播放时间。但是,通常一个MP3文件包括大量的帧数,如果每次都去读取已经播放的帧数将耗费大量的时间,导致实时的播放时间无法及时获取,不能进行显示。故在该实施例中,对应整个变比特率MP3文件的N个位置设置N个索引成员,即将整个MP3文件所有帧数分成N份产生N个位置,在每个位置处设置一个索引成员,每个索引成员根据所处的位置前的帧数能够获取所处位置处的播放时间并进行存储。N根据MP3文件的帧数进行调整,帧数越大则N越多。
[0026]在进一步的方式中,该步骤具体为:对应整个变比特率MP3文件的N个位置设置N个索引成员,且相邻两个索引成员之间时间间隔相同。即将整个MP3文件的帧数均分为N份,这样利于获取实时的播放时间。
[0027]S30:在进行播放时,实时获取文件指针所处的位置,确定文件指针处在哪两个索引成员之间;获取前一个索引成员存储的播放时间,并且获取文件指针与前一个索引成员之间的帧数,通过存储的播放时间加上帧数对应的时间来确定实时的播放时间。
[0028]对整个MP3文件设置N个索引成员之后,在MP3文件进行播放时,实时获取文件指针所处的位置,然后确定文件指标在哪两个索引成员之间,然后根据前一个索引成员存储的播放时间以及与前一个索引成员之间的帧数来确定实时的播放时间,这样只需要计算与前一个索引成员之间的少量帧数即可准确获取实时的播放时间,从而既保证了播放时间的准确性,又大大提高了效率,保证了用户使用,给用户带来极大便利。
[0029]该方法,对应整个变比特率MP3文件的N个位置设置N个索引成员,每个索引成员存储所处位置处的播放时间,在进行播放时,获取文件指针前一个索引成员存储
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1