多媒体文件读取方法及装置的制造方法_3

文档序号:9420720阅读:来源:国知局
图仅仅是一个较佳实施例的示例图,本领域的技术人员围绕图4所示的多媒体文件读取装置的功能模块,可轻易进行新的功能模块的补充;各功能模块的名称是自定义名称,仅用于辅助理解该多媒体文件读取装置的各个程序功能块,不用于限定本发明的技术方案,本发明技术方案的核心是,各自定义名称的功能模块所要达成的功能。
[0071]本实施例提出一种多媒体文件读取装置,所述多媒体文件读取装置包括:
[0072]确定模块10,用于在检测到基于多媒体文件的播放界面输入的播放位置调整操作时,确定所述调整操作对应的读取位置是否在环形缓冲区内;
[0073]在本实施例中,所述多媒体文件读取装置包括处理模块,所述处理模块用于在接收到多媒体文件的读取指令时,获取预设的环形缓冲区中可用存储空间对应的第三容量值,并写入与所述第三容量值对应的所需数据。所述多媒体文件的读取指令的触发方式包括:a、用户在所述多媒体文件的播放界面点击开始播放时,触发所述多媒体文件的读取指令。b、在所述多媒体文件的播放界面接收到输入的语音播放指令如语音播报开始播放时,触发所述多媒体文件的读取指令。可以理解的是,本实施例中事先创建环形缓冲区,所述环形缓冲区的存储空间根据具体需要进行设置,如多媒体文件为音频文件时,所述环形缓冲区的存储空间可设置为1M,所述多媒体文件为视频文件时,所述环形缓冲区的存储空间可设置为30M,所述多媒体文件为图片文件时,所述环形缓冲区的存储空间可设置为200K。其中,所述环形缓冲区优选包括已读缓存区域、未读缓存区域以及可用区域,所述可用区域也可以理解为空白区域,也就是整个环形缓冲区分为三个区域,且三个区域在逻辑上其首尾可以看成是相连的,已读缓存区域表示这些区域的数据已经被读取过,现在依然保存是为了播放器可能的后向读取要求,未读缓存区域是从网络流或者本地文件里面读取的数据,目前尚未被读取过,可用区域表示未被写入的存储空间。为更好理解本方案,可在所述环形缓冲区中使用3个指针划分其区间,分别是缓存的开始指针Begin,已读取存储指针Done,已写入缓存指针End,Begin和Done构成已读缓存区域,Done和End构成未读缓存区域,End和Begin构成可用区域,由于是环形缓冲区,则End指针移动到末尾的时候又回到缓存的头部,即与所述Begin指针重合。各个区域位置的更新可以通过移动相应的指针实现。
[0074]读取模块20,用于在所述读取位置在所述环形缓冲区的未读缓存区域内时,从所述未读缓存区域中的所述读取位置处开始读取所需数据;
[0075]在本实施例中,在检测到基于多媒体文件所在播放界面输入的播放位置调整操作时,所述确定模块10先确定所述调整操作对应的读取位置是否在所述环形缓冲区内,若在所述环形缓冲区内,所述确定模块10进一步确定所述调整操作对应的读取位置是否在所述未读取缓存区域内,若所述读取位置在所述未读取缓存区域内,则所述读取模块20可直接从所述未读缓存区域的读取位置处开始读取所需数据。
[0076]处理模块30,用于更新所述环形缓冲区中已读缓存区域和所述未读缓存区域的位置以使已被读取的所述所需数据位于所述已读缓存区域内,当所述已读缓存区域对应的容量大于第一容量时,清除部分数据使所述已读缓存区域对应的容量保持为所述第一容量。
[0077]在本实施例中,为了提高多媒体文件读取过程中终端的运行效率,优选在创建环形缓冲区时,先设置已读缓存区域对应的第一容量值,所述第一容量值用于保证在多媒体文件读取过程中,仅保留所述容量值长度的多媒体文件数据即可,超出所述第一容量值的多媒体文件数据可以进行清空,也就是在多媒体文件在读取过程中,所述处理模块30先更新已读缓存区域和所述未读缓存区域的位置使已被读取的所述所需数据位于所述已读缓存区域内,当所述已读缓存区域对应的容量大于第一容量时,所述处理模块30清除部分数据使其所述已读缓存区域对应的容量保持为第一容量。实现了所述环形缓冲区实时保持足够的可用空间,以缓存未写入的多媒体文件数据,即使所述环形缓冲区的存储空间小于待读取的多媒体文件,也由于实时清空缓存,使得实际读取的多媒体文件数据的空间大于所述环形缓冲区的存储空间,提高了环形缓冲区的利用率,而不会因为缓存空间不足而去内存或本地文件中读取多媒体文件数据,也提高了多媒体文件的读取效率。在本实施例中,所述处理模块30更新已读缓存区域和所述未读缓存区域的位置使已被读取的所述所需数据位于所述已读缓存区域内,当所述已读缓存区域对应的容量大于第一容量时,清除部分数据使其所述已读缓存区域对应的容量保持为第一容量从指针角度可理解为:所述确定模块10先确定所述读取位置,将所述读取位置作为已读取存储指针Done,然后所述处理模块30根据所述第一容量值调节开始指针Begin,使得所述开始指针Begin和所述已读取存储指针Done之间的存储空间保持为所述第一容量值,此时,由于所述开始指针Begin移动了,则所述End指针和Begin指针构成可用区域也相应增加了,S卩加大了环形缓冲区的可用空间。可以理解的是,伴随着Begin指针从原位置移动至新位置。原先位于此两位置之间的数据已被清空,即原所述已读缓存区域的部分数据已被清除。
[0078]进一步地,所述读取模块20还用于在所述读取位置在所述已读缓存区域内时,从所述已读缓存区域中的所述读取位置处开始读取所述所需数据。可以理解的是,在检测到基于多媒体文件的播放界面输入的播放位置调整操作,可以理解的是,在检测到基于多媒体文件的播放界面输入的播放位置调整操作,且所述读取位置在所述已读缓存区域内时,则所述读取模块20可直接在所述读取位置处开始读取所述已读缓存区域中的所述所需数据,实现了用户在多媒体文件读取过程中输入了前向操作时,无需重复向缓存重复写入数据也可直接读取述所需数据。
[0079]本实施例提出的多媒体文件读取装置,在预设的环形缓冲区内读取多媒体文件数据,且当读取位置在所述环形缓冲区的未读缓存区域内时,从所述未读缓存区域的读取位置处开始读取所需数据,并在读取所需数据时更新所述环形缓冲区中已读缓存区域和所述未读缓存区域的位置使已被读取的所述所需数据位于所述已读缓存区域内,当所述已读缓存区域对应的容量大于第一容量时,清除部分数据使其所述已读缓存区域对应的容量保持为第一容量,而不是在多媒体文件读取过程中,把多媒体文件数据读取完才清空缓存,本方案在所述环形缓冲区中读取多媒体文件数据时,通过边缓存多媒体文件数据边清空先缓存的部分多媒体文件数据,减小了缓存占用的存储空间,提高了终端的运行效率。
[0080]进一步地,为了提高多媒体文件读取的灵活性,基于第一实施例提出本发明多媒体文件读取装置的第二实施例,参照图5,在本实施例中,所述多媒体文件读取装置与第一实施例中所述装置的区别在于,所述多媒体文件读取装置还包括:
[0081]获取模块40,用于在所述读取位置不在所述环形缓冲区内时,获取所述读取位置在所述多媒体文件中的第一位置,以及所述未读缓存区域中远离所述已读缓存区域的一端在所述多媒体文件中的第二位置;
[0082]所述确定模块10,还用于确定所述多媒体文件中第一位置和第二位置之间的第二容量值是否小于第一预设容量值;
[0083]替换模块50,用于若所述第二容量值小于或等于所述第一预设容量值,从所述未读缓存区域中选取容量为所述第一容量的数据替换所述已读缓存区域中的数据;
[0084]所述处理模块30,还用于删除所述未读缓存区域中的数据,并在所述环形缓冲区内的可用存储空间内继续写入所述多媒体文件中第二位置之后的数据以更新所述未读缓存区域;
[0085]所述读取模块20,还用于当所述读取位置位于所述未读缓存区域内时,从所述未读缓存区域的所述读取位置开始读取所述所需数据。
[0086]在本实施例中,若所述读取位置不在所述环形缓冲区内,说明待读取的多媒体文件数据还没写入成功,在检测到基于多媒体文件所在播放界面输入的调整操作时,所述获取模块40先获取所述调整操作对应的读取位置在所述多媒体文件中的第一位置,以及所述未读缓存区域中远离已读缓存区域的一端在所述多媒体文件中的第二位置,然后所述确定模块10将所述多媒体文件中第一位置和第二位置之间的第二容量值与第一预设容量值进行比对,最后根据比对结果,即可确定所述第二容量值与所述第一预设容量值的大小关系,本实施例中,优选所述第一预设容量值为所述环形缓冲区中可用区域的容量值,当所述第二容量值小于或等于所述第一预设容量值,说明所述读取位置距离所述未读缓存区域中远离已读缓存区域的一端的距离小于或等于所述可用区域,则所述替换模块50可先从所述未读缓存区域中选取容量为所述第一容量的数据替换所述已读缓存区域中的数据,然后所述处理模块30删除所述未读缓存区域中的数据,并在所述环形缓冲区内的可用存储空间内继续写入所述多媒体文件中第二位置之后的数据以更新所述未读缓存区域,当所述读取位置位于所述未读缓存区域内时,所述读取模块20从所述未读缓存区域的所述读取位置开始读取所述所需数据。
[0087]进一步地,为了提高多媒体文件读取的灵活性,基于第二实施例提出本发明多媒体文件读取装置的第三实施例,在本实施例中,
[0088]所述确定模块10,还用于若所述第二容量值大于所述第一预设容量值,确定所述读取位
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1