krpano之字幕添加
字幕是指介绍语音的字幕,字幕随着语音的播放而滚动,随语音暂停而暂停。字幕添加的前提是用之前的方法添加过介绍语音。
原理:
字幕层在溢出隐藏的父元素中向右滑动,当点击声音控制按钮时,字幕位置被固定,再次点击时继续右滑。
效果截图:

步骤及原理:
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之字幕添加的更多相关文章
- 设置EDIUS字幕时有哪些要注意的
我们在用EDIUS添加字幕,有时候可能会遇到以下麻烦.例如有的字体在EDIUS中找不到,诗歌的排版问题还有怎么给字幕加光效等等.今天小编主要来给大家解决这三个问题,让你们知道EDIUS字幕设置时应该注 ...
- [C#]为微软ASP.NET官方教学视频增加字幕
前言 Microsoft Virtual Academy提供了学习ASP.NET的大量视频材料.(注1) 由于视频服务器位于海外,国内浏览速度并不理想,幸好官方提供了视频的下载地址以及英文字幕文件. ...
- win7下MKVToolNix进行mkv字幕封装
MKVToolNix下载地址(https://www.fosshub.com/MKVToolNix.html) 下载安装后打开,当时没创建桌面图标,GUI地址(C:\ProgramData\Micro ...
- Camtasia对录制视频字幕编辑的教程
我们小时候会有这样的疑问,电视剧上的字幕是怎么做成的呢.字幕又是怎么不会从一幕到下一幕而产生不对应的呢.这就是影视的后期处理的结果了,利用视频的编辑软件,工作者们可以在特定的时间内加上相对应的台词,然 ...
- Atitit osi tcp ip 对应attilax总结
Atitit osi tcp ip 对应attilax总结 Atitit 网络摄像机又叫IP CAMERA(简称IPC)常见的协议组合 网络摄像机又叫IP CAMERA(简称IPC)由网络编码模块和模 ...
- HTML标签marquee实现滚动效果
html标签 - <marquee></marquee>可以实现多种滚动效果,无需js控制.使用marquee标记不仅可以移动文字,也可以移动图片,表格等.只需要在<ma ...
- 用AE (Adobe After Effects) 处理视频
这话要从年会说起,我们组的年会节目需要一段场外亲友团的评价视频,于是我们就靠在公司门口的logo前拍了这么一段.但是呢,有很多的不理想: 画面抖动 杂音好烦(中午吃饭时拍的,还有好大的微波炉好了的声音 ...
- PR视屏剪切
一款常用的视频编辑软件,由Adobe公司推出.现在常用的有CS4.CS5.CS6.CC.CC 2014及CC 2015版本.是一款编辑画面质量比较好的软件,有较好的兼容性,且可以与Adobe公司推出的 ...
- FFmpeg视频处理
FFmpeg是一个用于音视频处理的自由软件,被广泛用于音视频开发.FFmpeg功能强大,本文主要介绍如何使用FFmpeg命令行工具进行简单的视频处理. 安装FFmpeg可以在官网下载各平台软件包或者静 ...
随机推荐
- 【ccf 2017/12/4】行车路线(dijkstra变形)
问题描述 小明和小芳出去乡村玩,小明负责开车,小芳来导航. 小芳将可能的道路分为大道和小道.大道比较好走,每走1公里小明会增加1的疲劳度.小道不好走,如果连续走小道,小明的疲劳值会快速增加,连续走s公 ...
- fastjson缺陷--map转换json时出现$ref的情况
DisableCircularReferenceDetect来禁止循环引用检测: JSON.toJSONString(..., SerializerFeature.DisableCircularRef ...
- JQuery动态隐藏和显示DIV
<head> <script language="javascript"> function HideWeekMonth() { $("#tt1& ...
- Android event logcat的研究
经常有这样的需求:在程序A启动之后,在这个程序上覆盖一个界面,让用户输入密码后才能启动程序A,这类场景主要集中在安全软件中. 那应该怎样得知某某程序启动了,系统没有相应的广播,这很难知道程序启动了. ...
- Chrome 开发者控制台使用技巧
Chrome 有内置的开发者工具.它拥有丰富的特性,比如元素(Elements).网络(Network)和安全(Security).今天,我们主要关注一下 JavaScript 控制台. 当我最初写代 ...
- mac地址常识及获取
mac常识: 网卡地址这个概念有点混淆不清.因为实际上有两个地址,mac地址和物理地址,一般说网卡地址我是指物理地址,不知道别人怎么看?物理地址指的是网卡上的存放地址的ROM里的地址,mac地址是这块 ...
- 【MFC】MoveWindow();函数使用详解
摘自:http://blog.csdn.net/yjkwf/article/details/5281207 CWnd::MoveWindow 详解 2010-02-02 16:08 3432人阅读 评 ...
- 【SQL】分组数据,过滤分组-group by , having
学习笔记,原文来自http://blog.csdn.net/robinjwong/article/details/24845125 创建分组 - GROUP BY 分组是在SELECT语句的GROUP ...
- 浪潮各机型管理芯片BMC IP(智能平台管理接口)设置
NF5240m3/NF5140m3/NF5280m3/SA5212H2/NP5540M3NF5270M3/NF5170M3/NF8420m3 IPMI主板集成管理芯片BMC IP 设置开机按DEL键进 ...
- 织梦 dede 笔记
将项目转移到另一服务器 方法: https://www.genban.org/news/dedecms-13096.html 在实际中,我走的是第二种方法 方法一: 1 后台>系统>备份 ...