Главная > Видео, Основы > Загрузка и воспроизведение видео с использованием ActionScript 3.0

Загрузка и воспроизведение видео с использованием ActionScript 3.0

Вспомним, что нам нужно было для того, чтобы воспроизвести FLV файл с помощью Flash. В ActionScript 2.0 нужно было выполнить следующую последовательность действий:

1. Создать новый объект Video в вашей библиотеке (выбрать New Video в меню опций библиотеки);
2. Перетащить объект Video на сцену и дать имя экземпляру;
3. Добавить в первый кадр код.

Например такой:

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

ns.onMetaData = function(item:Object):Void  {
	trace("metaData");

 	// Устанавливаем размеры видео.
 	myVideo._width = item.width;
 	myVideo._height = item.height;

 	// Центрируем видео на сцене.
 	myVideo._x = (Stage.width-myVideo._width)/2;
 	myVideo._y = (Stage.height-myVideo._height)/2;
};

ns.onCuePoint = function(item:Object):Void  {
	trace("cuePoint");
	trace(item.name+"\t"+item.time);
};

myVideo.attachVideo(ns);
ns.play("http://www.helpexamples.com/flash/video/cuepoints.flv");

Код на ActionScript 3.0 в целом выглядит так же... только нам не нужно добавлять никаких компонентов в библиотеку и вообще писать на "чистом AS3" и компилировать с помощью Flex SDK. Смотрим:

package {
	import flash.display.Sprite;
	import flash.media.Video;
	import flash.net.NetConnection;
	import flash.net.NetStream;

	/**
	 * @author Michael Yesutin
	 */
	public class Main extends Sprite {
		private var video : Video;
		private var nc : NetConnection;
		private var ns : NetStream ;

		public function Main() {
			video = new Video();
			addChild(video);

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

			ns = new NetStream(nc);
			ns.client = {onMetaData:ns_onMetaData, onCuePoint:ns_onCuePoint};

			video.attachNetStream(ns);
			ns.play("http://www.helpexamples.com/flash/video/cuepoints.flv");
		}

		private function ns_onMetaData(item : Object) : void {
			trace("metaData");

			// Устанавливаем размеры видео.
			video.width = item.width;
			video.height = item.height;

			// Центрируем видео на сцене.
			video.x = (stage.stageWidth - video.width) / 2;
			video.y = (stage.stageHeight - video.height) / 2;
		}

		private function ns_onCuePoint(item : Object) : void {
			trace("cuePoint");
			trace(item.name + "\t" + item.time);
		}
	}
}
  1. Alex
    31 июля 2009 в 08:40 | #1

    У меня это не работает.
    Я взял др. пример
    В данном примере динамически создается экземпляр FLVPlayback.
    Чтобы применить этот пример на практике, выполните следующие действия.

    Поместите компонент FLVPlayback на рабочий стол в положение 0,0 и задайте экземпляру имя player
    Введите вместо videoPath абсолютный или относительный путь к FLV-файлу.
    Сохраните этот код под именем FLVPlaybackExample.as в том же каталоге, что и FLA-файл.
    Присвойте классу Document в FLA-файле значение FLVPlaybackExample.
    package
    {
    import fl.video.FLVPlayback;
    import flash.display.Sprite;

    public class FLVPlaybackExample extends Sprite {

    private var videoPath:String = «http://www.helpexamples.com/flash/video/caption_video.flv»;

    public function FLVPlaybackExample() {
    player.source = videoPath;
    player.skinBackgroundColor = 0x666666;
    player.skinBackgroundAlpha = 0.5;
    }
    }
    }

  2. 5 октября 2010 в 00:35 | #2

    to Alex.
    Не понятно, какой код сохранить. Где должен быть компонент FLVPlayback, в каком документе?

  3. 16 мая 2011 в 17:39 | #3

    Спасибо, очень нужна вещь!!!

  4. Евгений
    27 декабря 2012 в 00:17 | #4

    Да херня какая-то… напишите как с нуля свой видеоплеер запрограммировать на сайт при помощи AS3.0, тогда респект выложу

  1. 4 марта 2008 в 12:41 | #1