摘要:下载,我使用的版本是最新的解压下载文件,就是官方提供全景视频,将整个目录放入服务中,直接访问就可以预览了。
使用 krpano 制作全景视频
krpano的强大我就不多说了,了解过的人应该都知道,现在市场上只要应用全景的几乎都是使用的krp来实现,krp官方提供了插件,全景视频使用的是 videoplayer 插件,使用全景摄像机录制视频,在将他们播放到网页上,可以操作鼠标改变视角,也可以在移动设备上使用VR眼镜观看。
搭建好环境,需要一个本地web服务,我使用的是nodeJS。
下载krpano,我使用的版本是最新的krpano 1.19-pr5
解压下载文件,/krpano-1.19-pr5/krpano/examples/videopano 就是官方提供全景视频DEMO,将krpano整个目录放入web服务中,直接访问index.html就可以预览了。
也可以直接下载我放在github上的代码,里面代码有我的注释。
购买注册如果只是自己学习就不用购买了,krpano不限制下载,但是demo中央会有demo version的视频水印,如果是商用则建议大家支持正版。
LICENSE 购买地址 根据自己的需要选择相应的版本,秘钥会发送到你的注册邮箱中,我们打开刚刚下载到的文件找到生成文件的工具 krpano Tools。
双击打开就能看到下面的界面
粘贴你的秘钥然后点击注册就完成了
点击 Generate Viewers 按钮,输入文件名后,一般都输入 krpano,完成后会生成两个同名文件,将原始文件替换掉就成了,打开视频,按下O键,就可以看到你的注册信息了。
具体可以看中文网里的文章 购买、下载、注册
基本配置首先要了解两个配置,一个是入口文件配置,一个是插件配置,这两个配置都很简单
初始化配置embedpano({ swf:"player.swf", xml:"videopano.xml", target:"pano", html5:"auto", passQueryParameters:true, onready:function(krpano){ } });
官方文档
plugin 配置官方文档
videopano.xml 和 videointerface.xml这是两个最重要的文件,videopano.xml 是主配置文件,videointerface.xml是皮肤配置文件,videointerface 通过 include 引入合并,videointerface 代码较长我就不贴了,代码中我将用到的都加了注释。
XML静态代码videointerface_addsource("超清", "%CURRENTXML%/video-1024x512.mp4|%CURRENTXML%/video-1024x512.webm", ""); videointerface_addsource("高清", "%CURRENTXML%/video-1920x960.mp4|%CURRENTXML%/video-1920x960.webm", ""); videointerface_addsource("流畅", "%CURRENTXML%/video-1920x960.mp4|%CURRENTXML%/video-1920x960.webm", ""); videointerface_play("高清");
我们后面面对的几乎都是krp的静态代码,所以了解清楚它们的功效非常有必要,你可以把它理解为我们HTML代码中的标签,每个标签有自己的属性也有相同属性,我这里只列几个我们用到的,其他的如果有兴趣可以看这里,官方文档中有详细介绍。
场景标签, 当浏览器加载完XML,scnen标签里的内容不会被解析,而是需要手动调用,loadscene(videopano);krp一次只会加载一个scene,当加载了某个scene,其他的scene就会被移除,我们可以在一开始定义多个scene,再按照场景进行切换。
引入外部文件,可以将一个XML按功能切成不同的模块,在通过include装载到一个文件中。
引用插件,将插件引入我们的工程中,例如我们这里引入的是video。
定义动态代码,理解为Function
stopdelayedcall(skin_autohide); set(layer[skin_control_bar].state, "visible"); tween(layer[skin_control_bar].y, get(skin_settings.controlbar_offset)); tween(layer[skin_control_bar].alpha, 1.0);
设置鼠标/移动设备/键盘 对视频的控制 官方文档
定义光标类型,官方文档
一般用来定义公共样式,比如定义一张雪碧图
这个元素很强大,可以有多种功能,插入图片,生成容器,基本上我们在播放器上能看到的东西都是用它生成的。
事件元素
定义右键菜单内容
JS和Action互相调用
JS调用Action
function krpanoReady(krpano){ setTimeout(function(){ krpano.call("skin_video_playpause_click"); }, 1000); }
Action调用JS,如果要读取一个变量,则一定要写在get函数中,否则只是一个string
常用动作,内置Actionjs(test(get(device)));
if(...,true,false)
if函数,接收三个参数,第一个参数为条件,第二参数为true,第三个参数为false
delayedcall(name, time, callback)
相当于settimeout
stopdelayedcall(name)
销毁delated
tween(layer[skin_control_bar].alpha, 1.0); • variable,要做变化的属性 • value,变化的值 • time (optionally),变化时间,单位为秒 • tweentype (optionally),动画类型,默认为 linear • donecall (optionally), 动画结束的回调 • updatecall (optionally),动画执行过程中的回调
动画
set(var1, "value")
赋值或者定义变量,第一个变量可以是自定义也可以是krp的元素的变量。看下官方给的例子。
set(var1, "hello"); set(var2, get(var1)); set(fullscreen, true); set(layer[p1].visible, false); set(hotspot[h1].scale, 2.5); set(contextmenu.item[0].caption, "hello item"); set(events.onxmlcomplete, null);
get(var1, "value")
获取变量值
copy(var1, "value")
Action 接收参数copy是set的升级版,我们看到set的第二个例子,如果第二个参数是一个变量,必须要加get动作,但是copy就不需要,其他和set类似。
我们调用action的时候会传参数进来,这时候在action接收传过来的参数的语法是 %1
大于和小于copy(t1, %1); // A copy(t2, %2); // B copy(t3, %3) // C test("A", "B","C")
在krp中不能使用 < or >,必须是用 GT 和 LT
video事件set(plugin[video].onvideoready, skin_video_updatestate() ); set(plugin[video].onvideoplay, skin_video_updatestate() ); set(plugin[video].onvideopaused, skin_video_updatestate() ); set(plugin[video].onvideocomplete, skin_video_updatestate() ); set(plugin[video].onerror, skin_video_error() );
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/79813.html
摘要:为了实现全立体的全景图效果,我们采用了软件将普通鱼眼图片渲染为全景图说明代码有过调整,并不能保证运行,主要说明实现思路。显示全景图要将图片显示出来,我们必须按照规则生成必须的配置文件。我们将根据上传图片是生成的唯一码作为依据生成全景图。 为了实现全立体的3D全景图效果,我们采用了Krpano软件将普通鱼眼图片渲染为720°全景图 说明:代码有过调整,并不能保证运行,主要说明实现思路。首...
摘要:淘宝造物节的活动页就是全景的一个很赞的页面,它将全景图分割成等份,相邻的元素构成的夹角,相邻两侧面相对于棱柱中心所构成的夹角。 本文转自凹凸实验室:https://aotu.io/notes/2016/08... showImg(https://segmentfault.com/img/remote/1460000011381045); 前言 3D 全景并不是什么新鲜事物了,但以前...
摘要:在定义时的方法中的第三个参数,实际上是文件中元素的内部呈现。但是除了元素的各种属性意外,还有几个特殊的属性和方法在定义时,其中一个接口中的第一个参数,是内部访问的直接媒介接口对象。数组中的元素也是继承与,并且额外提供了和属性。 krpano中有好多object,krpano Plugin Interface, krpano Plugin Object, krpano Base Obje...
摘要:近日,腾讯云与北京未来媒体科技携手成立了全景中国实验室。腾讯云具有独家的音视频技术,同时拥有直播点播短视频等多款成熟的云产品,多年的技术积淀成为全景走向市场的根基。近日,腾讯云与北京未来媒体科技携手成立了4K全景(中国)实验室。腾讯云方面表示:4K全景属于现代视听的一种新形态,打破了传统视频的单向参与模式,可通过遥控器进行控制,实现360°观看视角,还可对细节进行放大,用户体验与VR媲美。据...
阅读 3725·2021-09-22 10:57
阅读 1913·2019-08-30 15:55
阅读 2699·2019-08-30 15:44
阅读 1731·2019-08-30 15:44
阅读 1875·2019-08-30 15:44
阅读 2244·2019-08-30 12:49
阅读 1052·2019-08-29 18:47
阅读 3134·2019-08-29 16:15