一种分段式flash全景视频播放方法及系统与流程

文档序号:12133698阅读:389来源:国知局
一种分段式flash全景视频播放方法及系统与流程

本发明涉及网络视频播放技术领域,尤其涉及一种分段式flash全景视频播放方法及系统。



背景技术:

现有技术adobe flash内部提供的方法中:Flash全景3d视频只局限于完整片源MP4格式的flash视频播放器,flash全景视频一般视频源格式为MP4,不支持其他格式例如分段视频格式的播放,而此时,NetStream播放HTTP视频的模式为普通模式;Away3D模块(即(3D建模插件)的3d材质模块包提取方法是通过截取当前video类显示对象的位图图像,然后将其传递给away3d中的位图截取容器对象move,由move将位图图像数据进行3d化处理后,再发送给flashplayer呈现全景效果,当启用MP4时video类显示对象可以正常启用;

但是当video类显示对象在HLS(流媒体直播协议,HTTP Live Streaming)模式下时,NetStream对象的播放HTTP视频模式为数据生成模式,而在数据生成模式下,Away3D模块的材质采集位图处理类里,无法采集或者获取video类显示对象的位图数据,从而导致Away3D模块无法获取材质位图,进而无法对视频内容进行渲染。

Flash全景3d视频只局限于完整片源MP4格式的flash视频播放器,无法兼容HLS分段视频。

【注:NetStream类提供从本地文件系统或HTTP地址播放Flash视频文件的方法和属性,使用NetStream对象以通过NetConnection对象对视频进行流式处理,反馈视频流的状态消息。】

【注:Flash端如何播放视频很大程度上受NetStream提供的功能所限。所以这里大致介绍下NetStream提供的功能和一些限制,NetStream提供两种可以播放HTTP视频的模式,普通模式和数据生成模式。

在普通模式下,往NetStream传入要播放的HTTP视频资源地址,NetStream就会开始加载视频并开始播放。可以暂停视频播放,但是不能暂停数据的加载,可以在已经加载过的数据部分随意seek,但是不能seek到未加载的部分。数据加载完毕之后仍然可以进行播放,seek等操作,但是如果调用了close方法关闭流,那么如果数据未加载完毕,就会停止加载,并且不能做任何播放,seek等操作,这相当于原来加载的数据都白费,不能再使用。所以如果要把视频分段后随意在各个视频分段里来回seek,就必须让每个分段视频均对应一个NetStream实例。

在数据生成模式下,NetStream提供更加灵活的加载方式。NetStream通过appendBytes方法可以添加外部的二进制数据来播放视频,添加数据的顺序就是播放的顺序。可以通过URLStream对象加载视频文件数据,理论上所有加载过的数据都可以被重复利用。】



技术实现要素:

本发明实施例的目的在于提出一种分段式flash全景视频播放方法,旨在解决现有技术当video显示对象video类显示对象在HLS模式下时,Away3D模块的材质采集位图处理类里,无法采集或者获取video显示对象video类显示对象的位图数据,从而导致Away3D模块无法获取材质位图,进而无法对视频内容进行渲染的问题。

本发明实施例是这样实现的,一种分段式flash全景视频播放方法,所述方法包括:

创建video类显示对象;

创建第一Sprite图片剪辑对象作为装载video类显示对象的父容器;

通过NetStream对象中的NetConnection对象加载本地文件系统或HTTP地址中的Flash视频文件,使其在video类显示对象中显示加载的视频文件内容;

创建Away3D显示对象;

设置Away3D模块中move类里的第二Sprite图片剪辑对象的内容位图截取方法为readGraphicsData();

通过所述内容位图截取方法readGraphicsData()对所述第一Sprite图片剪辑对象中的video显示对象video类显示对象中的视频文件内容进行位图内容截取,将所述视频文件内容转换成二进制数据的位图图像;

将所述二进制数据的位图图像进行3D化处理,发送给Away3D显示对象上进行显示。

本发明实施例的另一目的在于提出一种分段式flash全景视频播放系统,所述系统包括

video显示对象video类显示对象创建及显示模块,用于创建video类显

示对象及在video类显示对象中显示视频内容;

第一Sprite图片剪辑对象创建模块,用于创建第一Sprite图片剪辑对象作为装载video类显示对象的父容器;

NetStream对象模块,用于通过NetStream对象中的NetConnection对象模块加载本地文件系统或HTTP地址中的Flash视频文件,使其在video类显示对象中显示加载的视频文件内容;

Away3D显示对象创建及显示模块,用于创建Away3D显示对象及在Away3D

显示对象中显示3D视频内容;

所述Away3D显示对象是在Flash Player显示界面上创建的;

第二Sprite图片剪辑对象设置模块,用于设置Away3D模块中move类里的第二Sprite图片剪辑对象的内容位图截取方法为readGraphicsData();通过所述内容位图截取方法readGraphicsData()对所述第一Sprite图片剪辑对象中的video显示对象video类显示对象中的视频文件内容进行位图内容截取,将所述视频文件内容转换成二进制数据的位图图像;

图像3D化处理模块,用于将所述二进制数据的位图图像进行3D化处理,发送给Away3D显示对象上进行显示。

本发明的有益效果

本发明方法在数据生成模式下,通过创建第一Sprite图片剪辑对象作为装载video类显示对象的父容器,将Away3D模块中的材质采集位图处理类中的第二Sprite图片剪辑对象的内容位图截取方法设置为readGraphicsData(),通过readGraphicsData()方法对所述第一Sprite图片剪辑对象中的video类显示对象中的视频文件内容进行位图内容截取,将所述视频文件内容转换成二进制数据的位图图像,避开了在数据生成模式下无法获取材质位图数据内容导致的错误,在flash视频的全景模式away3d+MP4的基础上,达到hls+away3d有效兼容,进而现分段式视频的在线观看,并在节省带宽的前提下保证全景效果流畅。

附图说明

图1是本发明优选实施例一种分段式flash全景视频播放方法流程图;

图2是本发明优选实施例一种分段式flash全景视频播放系统结构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对本发明进行进一步详细说明,为了便于说明,仅示出了与本发明实施例相关的部分。应当理解,此处所描写的具体实施例,仅仅用于解释本发明,并不用以限制本发明。

本发明实施例方法在数据生成模式下,通过创建第一Sprite图片剪辑对象作为装载video类显示对象的父容器,将Away3D模块中的材质采集位图处理类中的第二Sprite图片剪辑对象的内容位图截取方法设置为readGraphicsData(),通过readGraphicsData()方法对所述第一Sprite图片剪辑对象中的video类显示对象中的视频文件内容进行位图内容截取,将所述视频文件内容转换成二进制数据的位图图像,避开了在数据生成模式下无法获取材质位图数据内容导致的错误,在flash视频的全景模式away3d+MP4的基础上,达到hls+away3d有效兼容,进而实现分段式视频的在线观看,并在节省带宽的前提下保证全景效果流畅。

实施例一

图1是本发明优选实施例一种分段式flash全景视频播放方法流程图;所述方法包括以下步骤:

S102,创建video类显示对象;

所述video类显示对象是在Flash Player内部创建的;

S104,创建第一Sprite图片剪辑对象作为装载video类显示对象的父容器;

S103,通过NetStream对象中的NetConnection对象加载本地文件系统或HTTP地址中的Flash视频文件,使其在video类显示对象中显示加载的视频文件内容;

在本发明实施中,video类显示对象是在HLS视频分段模式下,此时NetStream对象的播放HTTP视频模式为数据生成模式;在数据生成模式下,Away3D模块中的材质采集的位图处理类中的图片剪辑对象内容位图截取方法,无法采集或者获取video类显示对象的位图数据,从而导致Away3D模块无法获取材质位图,进而无法对视频内容进行渲染。

S104,创建Away3D显示对象;

所述Away3D显示对象是在Flash Player显示界面上创建的;

S105,设置Away3D模块中move类里的第二Sprite图片剪辑对象的内容位图截取方法为readGraphicsData();

S106,通过所述内容位图截取方法readGraphicsData()对所述第一Sprite图片剪辑对象中的video类显示对象中的视频文件内容进行位图内容截取,将所述视频文件内容转换成二进制数据的位图图像;

S107,将所述二进制数据的位图图像进行3D化处理,发送给Away3D显示对象上进行显示。

所述步骤S104和S105也可移至步骤S101之前。

实施例二

图2是本发明优选实施例一种分段式flash全景视频播放系统结构图。所述系统包括:

video类显示对象创建及显示模块,用于创建video类显示对象及在

video类显示对象中显示视频内容;

第一Sprite图片剪辑对象创建模块,用于创建第一Sprite图片剪辑对象作为装载video类显示对象的父容器;

NetStream对象模块,用于通过NetStream对象中的NetConnection对象模块加载本地文件系统或HTTP地址中的Flash视频文件,使其在video类显示对象中显示加载的视频文件内容;

在本发明实施中,video类显示对象是在HLS视频分段模式下,此时NetStream对象的播放HTTP视频模式为数据生成模式;在数据生成模式下,Away3D模块中的材质采集的位图处理类中的图片剪辑对象内容位图截取方法,无法采集或者获取video类显示对象的位图数据,从而导致Away3D模块无法获取材质位图,进而无法对视频内容进行渲染。

Away3D显示对象创建及显示模块,用于创建Away3D显示对象及在Away3D

显示对象中显示3D视频内容;

所述Away3D显示对象是在Flash Player显示界面上创建的;

第二Sprite图片剪辑对象设置模块,用于设置Away3D模块中move类里的第二Sprite图片剪辑对象的内容位图截取方法为readGraphicsData();通过所述内容位图截取方法readGraphicsData()对所述第一Sprite图片剪辑对象中的video类显示对象中的视频文件内容进行位图内容截取,将所述视频文件内容转换成二进制数据的位图图像;

图像3D化处理模块,用于将所述二进制数据的位图图像进行3D化处理,发送给Away3D显示对象上进行显示。

所述video类显示对象是在Flash Player内部创建的;

所述Away3D显示对象是在Flash Player显示界面上创建的;

本领域的普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序指令相关硬件来完成的,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质可以为ROM、RAM、磁盘、光盘等。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1