基于HTTP协议的在线流式音频播放方法技术

技术编号:6961126 阅读:242 留言:0更新日期:2012-04-11 18:40
本发明专利技术提出一种基于HTTP协议的在线流式音频播放方法,包括下列步骤:分别创建下载线程和播放线程;所述下载线程下载音频文件的块数据;所述播放线程同时进行音频数据的解码工作,从而达到音乐播放的目的。本发明专利技术提出的基于HTTP协议的在线流式音频播放方法,使播放器在线播放HTTP歌曲的时候可以达到和RTSP协议同样的效果。

【技术实现步骤摘要】

本专利技术涉及到一种手机在线播放器实现的方法,适用于手机等移动通讯终端,也可以应用到网络多媒体设备上,且特别涉及一种基于HTTP协议的在线流式音频播放方法
技术介绍
随着3G网络的逐步完善以及手机多媒体能力的增强,越来越多的用户喜爱在线听歌,手机播放器也支持在线播放歌曲的功能,但是目前大部分的技术模式是采用实时流协议(Real Time Streaming Protocol, RTSP)的服务器和支持帧解码的播放器,服务器发送一帧一帧的数据,播放器进行逐帧的解码,用户可以选择歌曲的某一段进行听歌,减少流量,而对于采用HTTP协议的服务器,则首先需要把整个歌曲下载下来,然后在调用播放器进行歌曲的播放,当网络不好的时候,下载的时间增加,影响用户的使用,而且会增加流量, 用户在听完歌曲后,需要把歌曲删除掉,增加其负担,而且当手机的空间不足的时候,用户并不能进行在线听歌。
技术实现思路
本专利技术提出一种基于HTTP协议的在线流式音频播放方法,使播放器在线播放 HTTP歌曲的时候可以达到和RTSP协议同样的效果。为了达到上述目的,本专利技术提出一种基于HTTP协议的在线流式音频播放方法,包括下列步骤分别创建下载线程和播放线程;所述下载线程下载音频文件的块数据;所述播放线程同时进行音频数据的解码工作,从而达到音乐播放的目的。进一步的,所述下载线程分块下载所述音频文件,并放到内存缓冲区中,所述播放线程将下载线程下载下来的音频数据进行帧解码,并播放出来。进一步的,所述下载音频文件的步骤包括确定每次下载音频文件的数据块大小;把音频文件的URL地址传递给下载线程;下载线程进行音频数据块的下载,并把每次下载的数据保存到内存链表中去;当已下载的数据为整个音频文件大小的20%的时候,通知播放线程,使其开始工作,下载线程继续下载音频数据。进一步的,所述播放线程进行音乐播放的步骤包括等待下载线程发送的开始解码的消息;收到消息,开始对下载线程下载的数据块进行帧解码;获取此音频文件的相关信息,包括音频文件的播放持续时间,每一个音频帧播放的时间,歌词;获取音频帧的数据,把声音播放出来;一个数据块的数据帧解码结束后,释放其占用的内存。进一步的,当用户需要快进,需要的步骤包括用户把播放时间进度拖到某一时间点上;根据时间长度信息,计算出所需要下载的文件的起始点;通知下载线程进行下载音频数据的工作;数据下载好以后,通知播放线程进行帧解码的工作。进一步的,当用户需要回退,需要的步骤如下用户把播放的时间进度回退到某一时间点上;根据时间长度信息,计算出所需要下载文件的起始点;如果所需要下载文件的起始点正好处在当前正在播放音频块数据上,则直接播放,否则的话,通知下载线程进行下载音频数据的工作;数据下载好以后,通知播放线程进行帧解码的工作。本专利技术提供了基于HTTP协议的在线流式音频播放方法,达到了和RTSP协议同等的效果,不需要下载整个音频文件,可以选择歌曲的某一段进行在线播放,不会在手机上生成临时文件。由于采用了以上的方案,当歌曲服务器采用HTTP协议的时候,播放器不需要下载整个歌曲,同样达到了 RTSP协议流式播放的效果。附图说明图1所示为本专利技术较佳实施例的基于HTTP协议的在线流式音频播放方法流程图。图2所示为本专利技术较佳实施例的下载线程和播放线程之间的工作关系图。图3所示为本专利技术较佳实施例的下载线程的工作流程图。图4所示为本专利技术较佳实施例的播放线程的工作流程图。图5所示为本专利技术较佳实施例的快进流程示意图。图6所示为本专利技术较佳实施例的回退流程示意图。具体实施例方式为了更了解本专利技术的
技术实现思路
,特举具体实施例并配合所附图式说明如下。请参考图1,图1所示为本专利技术较佳实施例的基于HTTP协议的在线流式音频播放方法流程图。本专利技术提出一种基于HTTP协议的在线流式音频播放方法,包括下列步骤分别创建下载线程和播放线程;所述下载线程下载音频文件的块数据;所述播放线程同时进行音频数据的解码工作,从而达到音乐播放的目的。进一步的,所述下载线程分段下载所述音频文件,并放到内存缓冲区中,所述播放线程将下载线程下载下来的音频数据进行帧解码,并播放出来。两个线程之间的工作关系如图2所示,下载线程把分段下载的数据保存到音频数据块链表的节点中去,播放线程从音频数据块链表节点取得下载的音频块数据。请参考图3,图3所示为本专利技术较佳实施例的下载线程的工作流程图,所述下载音频文件的步骤包括确定每次下载音频文件的数据块大小;把音频文件的URL地址传递给下载线程;下载线程进行音频数据块的下载,并把每次下载的数据保存到内存链表中去;当已下载的数据为整个音频文件大小的20%的时候,通知播放线程,使其开始工作,下载线程继续下载音频数据。假设HTTP音乐服务器上存放着mp3歌曲,并且知道歌曲的URL地址,其音频文件大小为1000kB,每次下载的数据块大小为50KB,下载线程将每次下载的50KB音频数据块放到一个内存链表中去,当下载的数据量大于等于200KB(文件大小的20% ),通知播放线程进行解码并播放音乐出来,下载线程继续下载余下的音频数据,并放到内存链表中去。请参考图4,图4所示为本专利技术较佳实施例的播放线程的工作流程图,所述播放线程进行音乐播放的步骤包括等待下载线程发送的开始解码的消息;收到消息,开始对下载线程下载的数据块进行帧解码;获取此音频文件的相关信息,包括音频文件的播放持续时间,每一个音频帧播放的时间,歌词;获取音频帧的数据,把声音播放出来;一个数据块的数据帧解码结束后,释放其占用的内存。播放线程收到下载线程发送过来开始解码的消息,播放线程开始工作,首先把歌曲播放的时间长度和歌词信息获取出来,比如歌曲播放的时间长度是5分钟,本地进行一帧一帧的解码,并把声音播放出来,当一个音频数据块的数据解析完毕以后,把音频数据块占用的内存释放出来,并寻找下一个内存块,继续进行音频数据帧解码。请参考图5,图5所示为本专利技术较佳实施例的快进流程示意图,当用户需要快进, 需要的步骤包括用户把播放时间进度拖到某一时间点上;根据时间长度信息,计算出所需要下载的文件的起始点;通知下载线程进行下载音频数据的工作;数据下载好以后,通知播放线程进行帧解码的工作。当前播放的时间点是0分钟,用户选择快进的时间点是4分钟,则需要下载的音频文件起始点为800KB,通知下载线程从800KB开始下载,音频数据下载50KB,(50/200 > = 20% )的时候,通知播放线程进行帧解码,并把声音播放出来,这样就实现了快进的功能。请参考图6,图6所示为本专利技术较佳实施例的回退流程示意图,当用户需要回退, 需要的步骤如下用户把播放的时间进度回退到某一时间点上;根据时间长度信息,计算出所需要下载文件的起始点;如果所需要下载文件的起始点正好处在当前正在播放音频块数据上,则直接播放,否则的话,通知下载线程进行下载音频数据的工作;数据下载好以后,通知播放线程进行帧解码的工作。当前播放的时间点是2分55秒,当前已下载的音频数据大小为600KB,用户选择回退的时间点如果是2分46秒,则需要下载的音频文件起始点为555KB,555KB在当前正在解码的数据块(550KB-600KB)内,则直接通知播放线程进行帧解码,如果用户选择回退的时间点在2分本文档来自技高网
...

【技术保护点】
1.一种基于HTTP协议的在线流式音频播放方法,其特征在于,包括下列步骤:分别创建下载线程和播放线程;所述下载线程下载音频文件的块数据;所述播放线程同时进行音频数据的解码工作,从而达到音乐播放的目的。

【技术特征摘要】

【专利技术属性】
技术研发人员:李敬来
申请(专利权)人:希姆通信息技术上海有限公司
类型:发明
国别省市:31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1