如何为 Flash 视频加载字幕文本?

Posted

技术标签:

【中文标题】如何为 Flash 视频加载字幕文本?【英文标题】:How to load Subtitle text for Flash Video? 【发布时间】:2015-07-13 13:05:32 【问题描述】:

视频播放器是使用 Flash 动作脚本 3.0 中的“视频”创建的。并使用网络流播放视频。示例代码为:

connection = new NetConnection();
connection.connect(null);

关于连接成功流和播放视频。

stream = new NetStream(connection);
video = new Video();
video.width = stage.stageWidth;
video.height = stage.stageHeight;
video.attachNetStream(stream);

stream.play(videoURL);

视频播放正常。我想显示视频的字幕。我有 .srt 格式的视频文件,as3 中的任何解决方案都可以为 Flash 上的视频加载 SRT。

【问题讨论】:

编写自己的解析器。 您看过记事本中的 SRT 吗?它只是带有时间码和相关文本的文本文件。您可以 Google search 使用基于 AS3 的 SRT 文件解析器,或者通过跟踪视频时间码并使用 enterFrame 检查 video_timecode == expected_SRT_Text_time (如 SRT 文件中的时间编码)自行完成并显示这样的文字.. 【参考方案1】:

编写 .srt 解析器并不难。使用 AS3 提供的CuePoint API 在运行时向您的Video 实例添加提示点。然后监听onCuePoint 事件并在文本字段中显示相关文本。

var nc:NetConnection = new NetConnection(); 
nc.connect(null); 

var ns:NetStream = new NetStream(nc); 
var client = ;
client.onCuePoint = function(info:Object):void

    var key:String; 
    for (key in info) 
     
        trace(key + ": " + info[key]); 
    
;
ns.client = client;

var vid:Video = new Video(); 
vid.attachNetStream(ns); 
addChild(vid);
ns.play("video.flv");

您可以在屏幕上的文本字段中显示文本,而不是跟踪输出。

【讨论】:

以上是关于如何为 Flash 视频加载字幕文本?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 YouTube 视频添加启动画面/占位符图像 [关闭]

字幕和电影合成

为啥 DirectShow 加载视频字幕文件?

怎么把字幕放到电影里 把字幕嵌入视频

如何为移动用户使用图片而不是视频

如何在视频上绘制文本以在 iOS 上显示字幕?