2015-07-13 2 views
0

Видеопроигрыватель создается с использованием «Видео» в скрипте действия Flash 3.0. И воспроизводил видео, используя чистый поток. Код примера:Как загрузить текст субтитров для Flash Video?

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 formeted файл для видео, любое решение в as3 для загрузки SRT для видео на flash.

+0

написать собственный собственный синтаксический анализатор. – BotMaster

+1

Вы смотрели на СТО внутри Блокнота? Его просто текстовый файл с временными кодами и соответствующим текстом. Вы можете ** [Поиск Google] (https://www.google.co.uk/?gws_rd=cr&ei=nqYkUqj1Osi20QXAhoHoDQ#q=as3+srt+parser) ** для парсерного файла SRT на основе AS3 или сделать это самостоятельно просто отслеживайте видео timecode и используйте enterFrame, чтобы проверить, является ли video_timecode == expected_SRT_Text_time (как указано во времени в SRT-файле) и отображает такой текст .. –

ответ

1

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

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

Смежные вопросы