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

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

Ответы на вопрос(5)

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

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;

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

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

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");
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);
}

Точно не отвечаю на ваш вопрос, но в дикой природе есть несколько 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");

отсюда

 cllpse29 июн. 2009 г., 02:23
Благодарю. Но .. да .. не очень ответили на мой вопрос :)
 29 июн. 2009 г., 02:32
добавлен фрагмент кода.

Ваш ответ на вопрос