本发明专利技术涉及一种获取并存储在线视频数据的方法,通过视频数据库行ID和画质进行视频播放请求;把视频文件真实的URL地址发送给代理服务器,代理服务器返回代理服务器的URL地址给播放器;播放器按代理服务器的URL地址发起播放请求,代理服务器拦截到播放请求后,替换掉播放请求中的请求头相关信息后,把请求转发给视频文件真实的URL地址对应的真实服务器,并获取到视频数据;把获取到视频数据保存到本地文件中,保存后同时把数据再转发到播放器进行播放。本发明专利技术,对在线播放的视频能边播边存(存储到播放者的本地),支持各种系统内置视频播放控件的边播边存,实现一次请求就能在线播放及保存文件,节省手机流量。
【技术实现步骤摘要】
本专利技术涉及在线音视频播放
,具体说是一种获取并存储在线视频数据的方法。
技术介绍
在Android系统中,音频播放可以使用Android系统的AudioTrack类进行音频数据的捕获,从而可以实现边播边存功能。而在视频播放时,使用Android系统播放器不支持让上层拦截数据进行保存操作。而且,系统播放器在不同手机中实现也各不相同。这就导致以下问题的出现:在视频播放时,如果本地数据不全,数据只能全部在线获取,会消耗大量流量,而且下次播放时,由于不能边播边存,还是会再次消耗大量流量,占用资源多,不但耗电大而且增加了使用成本。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种获取并存储在线视频数据的方法,对在线播放的视频能边播边存(存储到播放者的本地),支持各种系统内置视频播放控件的边播边存,实现一次请求就能在线播放及保存文件,节省手机流量。为达到以上目的,本专利技术采取的技术方案是:一种获取并存储在线视频数据的方法,其特征在于,包括如下步骤:步骤1,通过视频的视频数据库行ID和画质进行视频播放请求;步骤2,当拦截获取到的视频文件真实的URL地址时,把真实的URL地址发送给代理服务器,代理服务器返回替换成代理服务器的URL地址,将代理服务器的URL地址发送给播放器;步骤3,播放器按代理服务器的URL地址发起播放请求,代理服务器拦截到播放请求后,替换掉播放请求中的请求头相关信息后,把请求转发给视频文件真实的URL地址对应的真实服务器,并获取到视频数据;步骤4,把获取到视频数据保存到本地文件中,保存后同时把数据再转发到播放器进行播放,即边播边存。在上述技术方案的基础上,其特征在于:所述视频包括但不限于音乐短片MV。在上述技术方案的基础上,步骤1中,首先判断是否是已下载视频,如果是已下载视频,则直接返回已下载视频文件路径,播放器进行本地播放;如果不是已下载视频,进一步判断是否是已缓存过的视频,如果是已缓存过的视频,则直接返回缓存文件路径,播放器进行本地播放;如果不是已缓存过的视频,则进行视频的播放防盗链请求,获取视频文件真实的URL地址。在上述技术方案的基础上,视频播放界面加载后,通过传入的视频信息中的视频数据库行ID和画质,向视频播放管理类请求视频文件真实的URL地址。在上述技术方案的基础上,步骤2中,所述代理服务器指边播边存代理服务器,边播边存代理服务器具体为一个http代理服务器;启动边播边存代理服务器后,创建Http请求接收线程,在127.0.0.1本机IP上,随机打开一个Socket端口,等待播放器的Http请求。在上述技术方案的基础上,步骤2中,把真实的URL地址发送给代理服务器后,首先进行真实的URL地址的302跳转处理(302重定向),得到视频文件的真实URL,并保存在代理服务器中;然后,把视频文件的真实URL中的域名和端口替换为代理服务器等待的本机127.0.0.1地址和随机打开的Socket端口,生成替换的代理服务器的URL地址作为播放URL。在上述技术方案的基础上,步骤3中,代理服务器接收到播放请求后,代理服务器保存播放器请求的Socket,解析请求的Header信息,把请求头中关于源信息替换为代理服务器对应参数;代理服务器新创建Socket,创建时根据软件全局是否打开免流量开关,把免流量代理服务器设置或取消:如果启用免流量代理,则新创建Socket连接到免流量代理服务器IP和对应端口,如果不启用免流量代理,则新创建Socket连接到真实服务器;把替换后的Header信息,通过新创建Socket发送到真实服务器,请求下载视频数据。在上述技术方案的基础上,步骤4中,当代理服务器新创建Socket返回Http响应数据后,首先解析Response的Header信息,得到所返回视频数据的长度、启始位置、数据的开始位置;把解析后的视频数据,通过保存的播放器请求的Socket,回发给播放器,进行播放。在上述技术方案的基础上,步骤4中,视频播放管理类判断本机是否有此视频的未完成缓存文件,如果无未完成缓存文件,则创建新缓存文件,把视频数据保存到新缓存文件中,如果有未完成缓存文件,则按未完成缓存文件的大小,把缺少的视频数据追加到未完成缓存文件中;当缓存结束后,本机文件写入并改名保存,再次播放时,按已缓存过的视频直接使用缓存文件进行播放。在上述技术方案的基础上,步骤4中,在边播边存过程中,如果用户拖动播放条进行跳转播放,则停止把视频数据保存到缓存文件中,只执行视频数据转发下载、播放。本专利技术所述的获取并存储在线视频数据的方法,通过自定义代理服务方式进行边播边存,解决了Android手机内置视频播放控件不一,不支持拦截数据进行文件保存两个问题。本专利技术所述的获取并存储在线视频数据的方法,能方便的设置免流量代理,且这一切都是对播放控件透明的,不需要修改、设置系统播放器。本专利技术所述的获取并存储在线视频数据的方法,具有以下优点:1.实现一次请求就能在线播放及保存文件,节省手机流量。2.实现用户拖动、跳跃播放时边播边存自动终止功能,边播边存不限制用户拖动、跳跃播放。3.实现免流量代理透明设置,不需要设置到播放器上,提高了手机系统兼容性。4.实现一次播放缓存后,在无网时也能多次播放。5.兼容各种品牌手机内置视频播放控件。附图说明本专利技术有如下附图:图1本专利技术流程图。具体实施方式以下结合附图对本专利技术作进一步详细说明。如图1所示,本专利技术所述的获取并存储在线视频数据的方法,所述视频可以为音乐短片MV(MusicVideo),包括如下步骤:步骤1,通过视频的视频数据库行ID和画质进行视频播放请求;首先判断是否是已下载视频,如果是已下载视频,则直接返回已下载视频文件路径,播放器进行本地播放;如果不是已下载视频,进一步判断是否是已缓存过的视频,如果是已缓存过的视频,则直接返回缓存文件路径,播放器进行本地播放;如果不是已缓存过的视频,则进行视频的播放防盗链请求,获取视频文件真实的URL地址;步骤2,当拦截获取到的视频文件真实的URL地址时,把真实的URL地址发送给代理服务器,代理服务器返回替换成代理服务器的URL地址,将代理服务器的URL地址发送给播放器;步骤3,播放器按代理服务器的URL地址发起播放请求,代理服务器拦截到播放请求后,替换掉播放请求中的请求头相关信息后,把请求转发给视频文件真实的URL地址对应的真实服务器,并获取到视频数据;步骤4,把获取到视频数据保存到本地文件中,保存后同时把数据再转发到播放器进行播放,即边播边存。本专利技术采用自定义Http代理服务,把播放器请求URL替换为自己开发的http服务器URL,播放器在请求在线视频进行播放时,所有的http请求URL都会发送到自定义http代理服务器,在自定义的http代理服务器中,进行视频请求转发及数据接收工作,同时把数据拦截后先保存成文件、再发送给播放器进行播放。在上述技术方案的基础上,步骤1中,视频播放请求是指用户从列表选择视频点击播放。在上述技术方案的基础上,步骤1中,视频播放界面加载后,通过传入的视频信息中的视频数据库行ID和画质,向视频播放管理类请求视频文件真实的URL地址。在上述技术方案的基础上,步骤1中,视频播放管理类负责判断是否是已下载本文档来自技高网...
【技术保护点】
一种获取并存储在线视频数据的方法,其特征在于,包括如下步骤:步骤1,通过视频的视频数据库行ID和画质进行视频播放请求;步骤2,当拦截获取到的视频文件真实的URL地址时,把真实的URL地址发送给代理服务器,代理服务器返回替换成代理服务器的URL地址,将代理服务器的URL地址发送给播放器;步骤3,播放器按代理服务器的URL地址发起播放请求,代理服务器拦截到播放请求后,替换掉播放请求中的请求头相关信息后,把请求转发给视频文件真实的URL地址对应的真实服务器,并获取到视频数据;步骤4,把获取到视频数据保存到本地文件中,保存后同时把数据再转发到播放器进行播放,即边播边存。
【技术特征摘要】
1.一种获取并存储在线视频数据的方法,其特征在于,包括如下步骤:步骤1,通过视频的视频数据库行ID和画质进行视频播放请求;步骤2,当拦截获取到的视频文件真实的URL地址时,把真实的URL地址发送给代理服务器,代理服务器返回替换成代理服务器的URL地址,将代理服务器的URL地址发送给播放器;步骤3,播放器按代理服务器的URL地址发起播放请求,代理服务器拦截到播放请求后,替换掉播放请求中的请求头相关信息后,把请求转发给视频文件真实的URL地址对应的真实服务器,并获取到视频数据;步骤4,把获取到视频数据保存到本地文件中,保存后同时把数据再转发到播放器进行播放,即边播边存。2.如权利要求1所述的获取并存储在线视频数据的方法,其特征在于:所述视频包括但不限于音乐短片MV。3.如权利要求1所述的获取并存储在线视频数据的方法,其特征在于:步骤1中,首先判断是否是已下载视频,如果是已下载视频,则直接返回已下载视频文件路径,播放器进行本地播放;如果不是已下载视频,进一步判断是否是已缓存过的视频,如果是已缓存过的视频,则直接返回缓存文件路径,播放器进行本地播放;如果不是已缓存过的视频,则进行视频的播放防盗链请求,获取视频文件真实的URL地址。4.如权利要求3所述的获取并存储在线视频数据的方法,其特征在于:视频播放界面加载后,通过传入的视频信息中的视频数据库行ID和画质,向视频播放管理类请求视频文件真实的URL地址。5.如权利要求1所述的获取并存储在线视频数据的方法,其特征在于:步骤2中,所述代理服务器指边播边存代理服务器,边播边存代理服务器具体为一个http代理服务器;启动边播边存代理服务器后,创建Http请求接收线程,在127.0.0.1本机IP上,随机打开一个Socket端口,等待播放器的Http请求。6.如权利要求1所述的获取并存储在线视频数据的方法,其特征在于:步骤2中,把真实的URL地址发送给代理服务器后,首先进行真实的URL地址的3...
【专利技术属性】
技术研发人员:纪广兴,
申请(专利权)人:北京酷我科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。