字幕是指介绍语音的字幕,字幕随着语音的播放而滚动,随语音暂停而暂停。字幕添加的前提是用之前的方法添加过介绍语音。

原理:

字幕层在溢出隐藏的父元素中向右滑动,当点击声音控制按钮时,字幕位置被固定,再次点击时继续右滑。

效果截图:

步骤及原理:

1.在皮肤.xml文件中添加父元素layer

<!--字幕功能增加-父元素-->
<layer name="skin_subtitles" type="container" visible="true" zorder="100"
css="" maskchildren="true"
style=" " align="top" edge="bottom" x="5" y="-5" rotate="0.0" width="70%" height="30px" scale="1.0"
altscale="1.0" alpha="1.0" bgcolor="0xcccccc" bgalpha="1.0" onclick="" ondown="" onup="" onloaded="" >
</layer>

2.为每一个场景添加字幕。

  在每一个场景标签<scene>中添加字幕标签,模板为:

<!--字幕-->
<layer name="subtitles_text" url="%SWFPATH%/plugins/textfield.swf" align="right" edge="left" x="-150" y="0" parent="skin_subtitles"
html="虚拟现实教学中心通过五大区域形成了课程讲解、沉浸式体验、一键式课程操作、角色扮演互动、课堂效果智能评估等完善的功能框架。"
style=""
widthss="1400"
timess="30"
zorder="101" enabled="false" background="false" border="false"
visible="true" />

  其中自定义的属性及含义为:

    parent="skin_subtitles" 定义父元素,将字幕放入第一步定义好的父元素位置。

    html=“”   字幕内容,将需要显示的字幕输入,不可以换行。

    widthss=“1400”  字幕块的宽,也是字幕停止时,左端点的相对位置。需要手动输入,可通过F12查询字幕快的值。

    timess=“30” 介绍音频的长度。需手动输入,就是音频播放时间。用来控制字幕滚动时间。

3.介绍语音控制按钮(暂停/播放按钮)的属性修改

  3.1增加属性

    tfaaa=“true” 标识字幕显示动态。

  3.2 onclick方法中调用字幕控制方法。

    原介绍语音控制按钮:

<plugin name="snd"  style="skin_base|skin_glow" crop="0|768|64|64" align="righttop" x="15" y="17" scale="0.5" alpha="1"
onloaded="if(ismobile,set(scale,1));"
onclick="pausesoundtoggle(bggsnd1); switch(crop, 0|768|64|64, 64|768|64|64);"
/>

    修改后控制按钮:

<plugin name="snd"  style="skin_base|skin_glow" crop="0|768|64|64" align="righttop" x="15" y="17" scale="0.5" alpha="1"
onloaded="if(ismobile,set(scale,1));" tfaaa="true"
onclick="pausesoundtoggle(bggsnd1); switch(crop, 0|768|64|64, 64|768|64|64);subtitles_controller()"
/>

    字幕控制方法代码:(字幕控制方法代码插入至全局事件下方即可)

<!--字幕控制函数-->
<action name="subtitles_controller">
if(tfaaa,
tween(layer[subtitles_text].x,get(layer[subtitles_text].x),0);set(tfaaa,false),
mul(mh,layer[subtitles_text].timess,get(layer[subtitles_text].x));
div(mh,get(mh),layer[subtitles_text].widthss);
sub(mh,layer[subtitles_text].timess,get(mh));
mod(md,get(mh),1);
sub(mh,get(mh),get(md));
tween(layer[subtitles_text].x,get(layer[subtitles_text].widthss),get(mh));
set(tfaaa,true);
);
</action>

4.在tour.xml中添加全局事件

<events onremovepano="tween(layer[subtitles_text].x,-150,0.1);"
onnewpano="tween(layer[subtitles_text].x,get(layer[subtitles_text].widthss),get(layer[subtitles_text].timess));" />

在切换场景时,上一个场景关闭,将字幕条放在父元素右边固定位置。下一个场景打开时字幕自动向右移。其移动结束位置,和移动时间设置为之前手动输入的数值。

但是场景中全局事件只能有一个,所以需要把这个整合到介绍语音的全局事件内。否则介绍语音不播放。

 <events onremovepano="stopsounds();tween(layer[subtitles_text].x,-150,0.1);"
onnewpano="automusic();tween(layer[subtitles_text].x,get(layer[subtitles_text].widthss),get(layer[subtitles_text].timess));" />

原创:转载请标明出处

krpano之字幕添加的更多相关文章

  1. 设置EDIUS字幕时有哪些要注意的

    我们在用EDIUS添加字幕,有时候可能会遇到以下麻烦.例如有的字体在EDIUS中找不到,诗歌的排版问题还有怎么给字幕加光效等等.今天小编主要来给大家解决这三个问题,让你们知道EDIUS字幕设置时应该注 ...

  2. [C#]为微软ASP.NET官方教学视频增加字幕

    前言 Microsoft Virtual Academy提供了学习ASP.NET的大量视频材料.(注1) 由于视频服务器位于海外,国内浏览速度并不理想,幸好官方提供了视频的下载地址以及英文字幕文件. ...

  3. win7下MKVToolNix进行mkv字幕封装

    MKVToolNix下载地址(https://www.fosshub.com/MKVToolNix.html) 下载安装后打开,当时没创建桌面图标,GUI地址(C:\ProgramData\Micro ...

  4. Camtasia对录制视频字幕编辑的教程

    我们小时候会有这样的疑问,电视剧上的字幕是怎么做成的呢.字幕又是怎么不会从一幕到下一幕而产生不对应的呢.这就是影视的后期处理的结果了,利用视频的编辑软件,工作者们可以在特定的时间内加上相对应的台词,然 ...

  5. Atitit osi tcp ip 对应attilax总结

    Atitit osi tcp ip 对应attilax总结 Atitit 网络摄像机又叫IP CAMERA(简称IPC)常见的协议组合 网络摄像机又叫IP CAMERA(简称IPC)由网络编码模块和模 ...

  6. HTML标签marquee实现滚动效果

    html标签 - <marquee></marquee>可以实现多种滚动效果,无需js控制.使用marquee标记不仅可以移动文字,也可以移动图片,表格等.只需要在<ma ...

  7. 用AE (Adobe After Effects) 处理视频

    这话要从年会说起,我们组的年会节目需要一段场外亲友团的评价视频,于是我们就靠在公司门口的logo前拍了这么一段.但是呢,有很多的不理想: 画面抖动 杂音好烦(中午吃饭时拍的,还有好大的微波炉好了的声音 ...

  8. PR视屏剪切

    一款常用的视频编辑软件,由Adobe公司推出.现在常用的有CS4.CS5.CS6.CC.CC 2014及CC 2015版本.是一款编辑画面质量比较好的软件,有较好的兼容性,且可以与Adobe公司推出的 ...

  9. FFmpeg视频处理

    FFmpeg是一个用于音视频处理的自由软件,被广泛用于音视频开发.FFmpeg功能强大,本文主要介绍如何使用FFmpeg命令行工具进行简单的视频处理. 安装FFmpeg可以在官网下载各平台软件包或者静 ...

随机推荐

  1. hdu4619

    题解: 最大独立集问题 显然对于每一对交叉的建边 然后求出最大独立集 最大独立集=n-最大匹配 代码: #include<cstdio> #include<cmath> #in ...

  2. ZOJ 3211 Dream City(线性DP)

    Dream City Time Limit: 1 Second      Memory Limit: 32768 KB JAVAMAN is visiting Dream City and he se ...

  3. 移动端 HTML5 <video> 视频播放优化实践

    遇到的挑战 移动端HTML5使用原生<video>标签播放视频,要做到两个基本原则,速度快和体验佳,先来分析一下这两个问题. 下载速度 以一个8s短视频为例,wifi环境下提供的高清视频达 ...

  4. ng 双向数据绑定

    1.方向1:model->View模型数据绑定到视图 绑定的方式:①双花括号 ②常见的ng指令(ngRepeat ngIf ngShow....) 效果:数据一旦绑定到视图上,随着数据的修改,视 ...

  5. 大白话讲解如何给github上项目贡献代码

    本文献给对git很迷茫的新手,注意是新手,但至少会点基本操作,有点基本概念的新手,我不会从怎么用github和git是什么开始讲的.如果作为新手你看书又看不进去,原理又太复杂,又没有直接了当告诉我们怎 ...

  6. phpcmsV9搜索分页数量

    phpcmsV9搜索结果自定义控制分页条数,具体方法: 打开搜索模型文件夹phpcms/modules/search/index.php, 找到第85行: $result = $this->db ...

  7. 遇到eclipse安装插件一直报错问题(版本问题)

    刚好用了一个插件,然后在线安装报错了,一直报错,之前用的这个插件是直接解压贴的,现在在线安装出错,就很尬,我又有点懒,不想再去下载,贴,所以查了下,有网友说是eclipse的插件版本问题,更新了下,成 ...

  8. Hibernate HQL查询(1)

    1. 查询整个映射对象所有字段 //直接from查询出来的是一个映射对象,即:查询整个映射对象所有字段           String hql ="from Users";   ...

  9. jQuery使用prop设置checkbox全选、反选

    $(function(){     var checkbox = $("input[type='checkbox']");     //全选     $('#select-all' ...

  10. MAC OS X常用命令总结

    附录:UNIX常用命令 ============================================================================ 1.  cd     ...