Krpano教程tour.xml详解

本文详细介绍了krpano全景展示系统的核心配置项,包括根元素设置、自动旋转控制、场景与视角设置、预览图及图像资源加载等。通过具体示例展示了如何灵活配置这些参数以实现丰富的全景展示效果。

krpano(唯一根元素)

<krpano version="1.18"     		//版本号  
    onstart=""                  //网页启动时调用的函数  
    basedir="%FIRSTXML%"        //设置程序根目录  
    bgcolor=""                  //页面背景颜色  
    idletime="0.5"              //没用户干预情况下的调用时间  
    colorcorrection="default"   //flash 10配送方案  
    logkey="true"               //是否输出日志  
    showerrors="true"          //是否输出错误信息  
    debugmode="false"          //编译模式是否打开  
>  
//...  
</krpano>  

//krpano作为XML文件唯一根元素,必须设置!  

//样例:   
<krpano version="1.18" onstart="loadscene(scene1);">  
  <scene name="scene1">  
  //...  
  </scene>  
</krpano>  

autorotate(自动旋转、扭曲/移动,缩放 )

<autorotate enabled="false"     //是否开启自动旋转  
    waittime="1.5"      //用户不对屏幕操作后,开始自动旋转的等待秒数  
    accel="1.0"         //旋转扭曲的速度:角度/秒  
    speed="10.0"        //最大旋转速度:角度/秒  
    horizon="0.0"       //旋转到特定的水平位置  
    tofov="off"         //缩放到特定的区域视角  
/>  
  
//当无用户交互时.自动旋转、扭曲/移动,缩放  

//样例:  
<autorotate enabled="true"  
    waittime="5.0"   
    speed="-3.0"   
    horizon="0.0"   
    tofov="120.0"   
/>  

自动旋转控制:

switch(autorotate.enabled);

<krpano version="1.18" onstart="switch(autorotate.enabled);"> 

include

skin_settings

action

scene(场景)

view(默认视角的参数设置和视角限制设置)

<view hlookat="0.0"    //水平视角  -180 至  180 之间  
      vlookat="0.0"    //垂直视角  -90  至  90  之间  
      camroll="0.0"    //镜头旋转视角  
      fovtype="VFOV"   //定义视场角类型  
      fov="90.0"        //默认视角的缩放  
      fovmin="1.0"      //默认视角缩放最大值  
      fovmax="179.0"    //默认视角缩放最小值  
      maxpixelzoom=""   //默认视角最大缩放倍数  
      fisheye="0.0"     //鱼眼视角设置 0.0 至  1.0 之间(扭曲程度)  
      fisheyefovlink="0.5"  //fov值与鱼眼视角的关联值,默认0.5(0.0-3.0之间)  
      stereographic="false" //是否启动立体鱼眼投影效果(小行星)  
      pannini="false"       //启用/禁用“Pannini / vedutismo”投影效果  
      architectural="0.0"   //建筑视角设置 0.0 至  1.0 之间  
      architecturalonlymiddle="false"  //是否只对中间区域的图像实行建筑投影  
      limitview="auto"    //视角限制类型  
      hlookatmin=""   //最小水平视角范围  (-180 .. +180).  
      hlookatmax=""   //最大水平视角范围  (-180 .. +180).  
      vlookatmin=""   //最小垂直视角范围  (-90 .. +90).  
      vlookatmax=""   //最大垂直视角范围  (-90 .. +90).  
/>  

fovtype 几种选项(在手机和平板设备的默认值将MFOV!):

 - vfov -垂直视场,基于屏幕的高度  。
 - HFOV -水平视野,基于屏幕宽度
 - DFOV -看对角线场,基于屏幕的对角线
 - MFOV -最大的视场(动态混合vfov和HFOV)

limitview 几种选项:

 - off--不限制在所有  
 - auto--自动限制(默认)  
 - lookat--限制查看变量直。(接“hlookatmin”,“hlookatmax”,“vlookatmin”,“vlookatmax”)
 - range--限制的地区设置(由“hlookatmin”,“hlookatmax”,“vlookatmin”,“vlookatmax”,只有在这个范围内,允许观察)  
 - fullrage--的地区设置(由“hlookatmin”,“hlookatmax”,“vlookatmin”,“vlookatmax”,但允许放大看到整个图像  )
 - offrange---限制的地区设置(由“hlookatmin”,“hlookatmax”,“vlookatmin”,“vlookatmax”,但不以任何方式限制缩放。  )


//默认视角的参数设置和视角限制设置  
//样例:   
//正常: 
<view hlookat="0" vlookat="0" fov="80" />  
  
//小行星视角
<view hlookat="0"  
      vlookat="90"  
      fisheye="1.0"  
      stereographic="true"  
      fov="150"  
      fovmax="150"  
      />  
  
//平面全景
<view hlookat="0"  
      vlookat="0"  
      maxpixelzoom="1.0"  
      limitview="fullrange"  
      />  

preview(指定一张全景预览图)

<preview type=""              //过渡全景图的类型  
    url="previewpano.jpg"     /过渡全景图路径  
    striporder="LFRBUD"       //定义图像顺序  
    details="16"              //图像细节质量调整,越大越清晰  
/>  

//指定一张全景预览图,以便在读取过程中,过渡显示   

//样例:  
<preview url="pano_preview.jpg" />  
<preview type="grid(CUBE,16,16,512,0xCCCCCC,0xFFFFFF,0x999999);" />  
<preview type="SPHERE" url="spherepreview.jpg" details="16" />  
<preview type="CUBESTRIP" url="cspreview.jpg" />  

image(加载图片资源)

<image type="CUBE"                //全景图类型(六面体)  
       tiled="false"              //是否使用平铺图像  
       tiledimagewidth="..."      //平铺图像宽度  
       tiledimageheight="..."     //平铺图像高度  
       tilesize="..."             //平铺图像大小  
       baseindex="1"              //图像读取默认索引数字(第一个)  
       frames="1"                 //当前图像帧数       
       frame="1"  
       prealign=""                //prealign,采用X|Y|Z轴对齐方式  
 >  
    <cube url="pano_%s.jpg" />  
</image>  
//where "%s" is the placeholder of the cube-side character (l,f,r,b,u,d)  

//以上是数字索引方式读取切片图片,以下是通过定义六个方向的图片路径读取切片,文件后缀要加上_l,_f....方式来识别。  

<image type="CUBE"  
       tiled="false"   
       tiledimagewidth="..."   
       tiledimageheight="..."   
       tilesize="..."  
       baseindex="1"  
       frames="1"   
       frame="1"  
       prealign=""  
 >  
    <left  url="pano_l.jpg" rotate="0" flip="" />  
    <front url="pano_f.jpg" rotate="0" flip="" />  
    <right url="pano_r.jpg" rotate="0" flip="" />  
    <back  url="pano_b.jpg" rotate="0" flip="" />  
    <up    url="pano_u.jpg" rotate="0" flip="" />  
    <down  url="pano_d.jpg" rotate="0" flip="" />  
</image>  
level
cube
<think> 我们正在处理关于krpano 1.23版本中出现'krpano.streamsound is not a function'错误的问题。 根据引用内容,我们知道krpano可以通过调用JS来实现音频播放。但是,错误提示表明`streamsound`不是一个函数,这意味着在krpano 1.23版本中可能没有这个函数,或者我们使用的方式不正确。 查阅引用[1]和引用[2]: 引用[1]提到在krpano中调用JS函数来播放音频和视频,具体是使用`PlayAudio`和`PlayVideo`这样的自定义函数。 引用[2]则提供了krpano调用JS函数的两种方式:`js()`和`jscall()`。 因此,我们可以推断: 1. `streamsound`可能是旧版本krpano中的函数,而在1.23版本中可能已被移除或改名。 2. 或者,用户可能尝试使用了一个未定义的自定义函数。 解决方案: 1. 检查krpano 1.23的文档,确认`streamsound`函数是否存在。但根据错误提示,很可能不存在。 2. 按照引用[1]的方法,使用自定义JS函数来实现音频播放。 步骤: a. 创建一个JS文件(例如action.js),在其中定义音频播放函数。 b.tour.html中引入这个JS文件。 c.krpanoXML文件中使用`js`或`jscall`调用这些函数。 具体操作: 1. 在action.js中定义播放音频的函数,例如: ```javascript function playAudio(audioUrl) { // 创建音频对象并播放 var audio = new Audio(audioUrl); audio.play(); } ``` 2.tour.html的<head>或<body>中引入action.js: ```html <script src="action.js"></script> ``` 3.krpanoXML中调用该函数,例如: ```xml <events ... /> <action name="play_audio"> js(playAudio('audio.mp3')); </action> ``` 4. 然后在需要的地方调用这个action。 注意:如果错误仍然存在,可能是因为函数名不正确或者JS文件没有正确加载。请检查浏览器控制台是否有其他错误。 另外,引用[2]中提到,可以使用`get(variable)`来传递krpano变量。例如,如果音频文件路径存储在krpano变量中,可以这样调用: ```xml <action name="play_audio"> js(playAudio(get(audio_url))); </action> ``` 如果问题是因为旧函数`streamsound`被移除,那么替换为自定义JS函数应该可以解决。 但是,用户提到的是`krpano.streamsound`,这可能是krpano对象的一个方法。如果在新版本中移除了,那么我们就不能使用。因此,自定义函数是可行的替代方案。 总结:使用自定义JS函数来播放音频,并在krpano中调用该函数。 相关问题: 1.krpano中如何调用JavaScript函数? 2. 如何用JavaScript在krpano中控制音频播放? 3. krpano 1.23版本中移除了哪些过时的函数? </think> 针对krpano 1.23版本出现`'krpano.streamsound is not a function'`错误的问题,以下是解决方案及原因分析: ### 错误原因分析 1. **API变更** `streamsound()`是旧版krpano的API,**1.20版本后已被移除**[^1]。在1.23版本中继续调用会导致此错误。 2. **替代方案缺失** 未使用新版音频API(如`audioplayer`插件)替换旧函数调用。 --- ### 解决方案 #### 方法1:使用新版音频接口(推荐) ```xml <!-- 在XML中声明audioplayer插件 --> <plugin name="audioplayer" url="audioplayer.js" alturl="audioplayer.swf" preload="true" keep="true" /> <!-- 播放音频示例 --> <action name="play_audio"> audioplayer.play('audio.mp3'); <!-- 新版API --> </action> ``` #### 方法2:自定义JavaScript播放器 1. **创建JS文件(如`audio.js`)** ```javascript function playStreamSound(url) { const audio = new Audio(url); audio.play(); } ``` 2. **在tour.html中引入JS** ```html <script src="audio.js"></script> ``` 3. **XML中调用自定义函数** ```xml <action name="play_audio"> js(playStreamSound(get(audio_url))); <!-- 通过get()传递参数 --> </action> ``` --- ### 关键注意事项 1. **参数传递** 使用`get(var)`传递krpano变量到JS(如`get(view.hlookat)`)[^2]。 2. **API兼容性** 若需兼容旧项目,**建议升级到1.20+版本**并迁移到`audioplayer`插件。 3. **错误调试** 浏览器控制台输入`krpano`查看当前版本支持的所有函数列表。 --- ### 替代方案对比 | 方案 | 优点 | 缺点 | |---------------------|--------------------------|-----------------------| | `audioplayer`插件 | 官方维护,功能完善 | 需学习新API | | 自定义JS播放器 | 灵活控制播放逻辑 | 需手动处理跨平台兼容 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值