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

原理:

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

效果截图:

步骤及原理:

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

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

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

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

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

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

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

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

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

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

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

  3.1增加属性

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

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

    原介绍语音控制按钮:

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

    修改后控制按钮:

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

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

  1. <!--字幕控制函数-->
  2. <action name="subtitles_controller">
  3. if(tfaaa,
  4. tween(layer[subtitles_text].x,get(layer[subtitles_text].x),0);set(tfaaa,false),
  5. mul(mh,layer[subtitles_text].timess,get(layer[subtitles_text].x));
  6. div(mh,get(mh),layer[subtitles_text].widthss);
  7. sub(mh,layer[subtitles_text].timess,get(mh));
  8. mod(md,get(mh),1);
  9. sub(mh,get(mh),get(md));
  10. tween(layer[subtitles_text].x,get(layer[subtitles_text].widthss),get(mh));
  11. set(tfaaa,true);
  12. );
  13. </action>

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

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

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

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

  1. <events onremovepano="stopsounds();tween(layer[subtitles_text].x,-150,0.1);"
  2. 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. 探索Asp.net mvc 的文件上传

    (转自:http://www.cnblogs.com/n-pei/archive/2010/10/15/1852635.html) 最近因为TeamVideo需要用到视频和图片上传功能,所以试着Goo ...

  2. jsp中解决乱码问题

    解决中文乱码 a) 第一种: String name=new String(name.getBytes("ISO-8859-1"),"UTF-8"); b) 第 ...

  3. 旧书重温:0day2【5】shellcode变形记

    紧接上一篇,结合第一篇 //这篇文章主要成功溢出一个带有缓冲区溢出的小程序,其中我们的shellcode被strcpy截断了所以我们需要变形shellcode,这个实验中也出现了很多意想不到的拦路虎, ...

  4. 修改CentOS7网卡名称为传统名称eth0格式

    1.调整网卡名称 进入网卡目录```[root@tools]# cd/etc/sysconfig/network-scripts/``` 修改名称```[root@network-scripts]# ...

  5. 运行python代码

    IPython IPython 'magic' function documentation

  6. Ant入门之引用外部jar文件

    笔者在java项目开发中经常遇到引用外部Jar包的情况,使用ant打包过程中需要对其引用.现在此简单记忆以飨来者. 此处引用Log4j,具体程序HelloLog4j.java: package oat ...

  7. Python基本特殊方法之__format__

    __format__()方法 __format__()传参方法:someobject.__format__(specification) specification为指定格式,当应用程序中出现&quo ...

  8. 后台导入导出Excel

    Excel导出 定义数据模型 参考财付通的批量提现Excel的格式,定义模型如下 private int recordId; //提现id private String cname; //提现人名称 ...

  9. ArcGIS Runtime SDK for WPF之测量距离和面积

    bu不多说,上代码 using System.Windows; using ESRI.ArcGIS.Client; using ESRI.ArcGIS.Client.Tasks; using ESRI ...

  10. raw_in_fields

    在admin后台类中加入raw_id_fields(只适用于外键)后,会显示外键的详细信息