Как загрузить текст субтитров для Flash Video?

Видеоплеер создается с использованием «Видео» в сценарии flash action 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 для загрузки SRT для видео на флэш.


person sureshunivers    schedule 13.07.2015    source источник
comment
написать свой парсер.   -  person BotMaster    schedule 13.07.2015
comment
Вы смотрели SRT внутри Блокнота? Это просто текстовый файл с тайм-кодами и соответствующим текстом. Вы можете поиск Google для синтаксического анализатора файлов SRT на основе AS3 или сделайте это самостоятельно, просто отслеживая временной код видео и используя enterFrame, чтобы проверить, соответствует ли video_timecode == ожидаемому_SRT_Text_time (как закодировано время в файле SRT), и отобразить такой текст.   -  person VC.One    schedule 13.07.2015


Ответы (1)


Написать синтаксический анализатор .srt не так уж сложно. Используйте CuePoint API, предоставляемый AS3, для добавления контрольных точек в экземпляр 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");

Вместо отслеживания вывода вы можете отображать текст в текстовом поле на экране.

person Pranav Negandhi    schedule 13.07.2015