Flash / ActionScript 3: загрузите файл .FLV в мувиклип и начните воспроизведение этого FLV-файла. - PullRequest
6 голосов
/ 29 июня 2009

Как я могу загрузить FLV-файл в MovieClip (давайте назовем экземпляр "flvPlaceHolder") и начать воспроизведение этого FLV-файла .. используя ActionScript 3?

Ответы [ 5 ]

4 голосов
/ 29 июня 2009

Точно не отвечаю на ваш вопрос, но в дикой природе есть несколько FLV-плееров с открытым исходным кодом. Я бы подошел к проблеме, схватив одну из них и увидев, как они справляются с воспроизведением видео.

FPlayer будет отличной отправной точкой. Вот класс , который выполняет работу. Это довольно просто, но использование такого проекта, вероятно, сэкономит вам время.

Этот фрагмент должен выполнить трюк совершенно голым способом:

var vid:Video = new Video(320, 240);
addChild(vid);

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

var ns:NetStream = new NetStream(nc);
vid.attachNetStream(ns);

var listener:Object = new Object();
listener.onMetaData = function(evt:Object):void {};
ns.client = listener;

ns.play("externalVideo.flv");

отсюда

2 голосов
/ 11 сентября 2009

Чтобы сделать это локально - вырежьте и вставьте следующий код в первый кадр вашего флэш-файла. Конечно, измените имя в конце.

stage.displayState = StageDisplayState.FULL_SCREEN; 

var connection:NetConnection = new NetConnection();
var stream:NetStream;
var video:Video = new Video(1280,960);
var metaObj:Object = new Object();

function onMetaData(data:Object):void
{

}

connection.connect(null);
stream = new NetStream(connection);
stream.client = metaObj;
metaObj.onMetaData = onMetaData;
video.attachNetStream(stream);
addChild(video);
stream.play("name_of_flv.flv");
video.x = 0;
video.y = 0;
1 голос
/ 13 августа 2009

Как указало subha, все сделано с использованием класса NetStream ... однако с этим классом, в частности, довольно сложно работать, и он совершенно не согласован с остальным языком ...

Я бы настоятельно советовал вам использовать какую-то библиотеку, класс или компонент, чтобы обернуть его. Компонент FLVPlayback во Flash (без скинов), в отличие от всех других встроенных компонентов во Flash, действительно прост и очень прост в использовании;)

1 голос
/ 13 августа 2009
var video:Video = new Video();
addChild(video);

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

var ns:NetStream = new NetStream(nc);
ns.client = {};
ns.client.onMetaData = ns_onMetaData;
ns.client.onCuePoint = ns_onCuePoint;
ns.play("http://www.helpexamples.com/flash/video/cuepoints.flv");

video.attachNetStream(ns);

function ns_onMetaData(item:Object):void {
    trace("metaData");
    // Resize video instance.
    video.width = item.width;
    video.height = item.height;
    // Center video instance on Stage.
    video.x = (stage.stageWidth - video.width) / 2;
    video.y = (stage.stageHeight - video.height) / 2;
}

function ns_onCuePoint(item:Object):void {
    trace("cuePoint");
    trace(item.name + "\t" + item.time);
}
0 голосов
/ 02 ноября 2011
var flvPlaceHolder:MovieClip = new MovieClip();    

var vid:Video = new Video(320, 240);
flvPlaceHolder.addChild(vid);
addChild(flvPlaceHolder);
flvPlaceHolder.x = stage.stageWidth/2-vid.width/2;
flvPlaceHolder.y = stage.stageHeight/2-vid.height/2;

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

var ns:NetStream = new NetStream(nc);
vid.attachNetStream(ns);

var listener:Object = new Object();
listener.onMetaData = function(evt:Object):void {};
ns.client = listener;

ns.play("mario.flv");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...