AS2: нет видео с netstream, только аудио - PullRequest
1 голос
/ 14 ноября 2011

Итак, у меня проблема с AS2 при загрузке видео netstream.

my_vid = _root.createEmptyMovieClip("my_vid", _root.getNextHighestDepth());
var video:Video = new Video();
var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
video.attachVideo(ns);
my_vid.attachVideo(video);

and later 
ns.play("http://localhost/video.mp4");

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

Я определенно делаю что-то не так, но что?

1 Ответ

1 голос
/ 15 ноября 2011

Ваша проблема в том, что вы никогда не прикрепляете видеообъект к сцене.Эта строка my_vid.attachVideo(video); ничего не делает, потому что MovieClip не имеет метода с именем attachVideo.

. Вам необходимо создать видеообъект в своей библиотеке и добавить его на сцену.Для этого выполните следующие действия в IDE:

  1. Нажмите стрелку в правом верхнем углу панели libray и выберите New Video... в раскрывающемся списке.
  2. В диалоговом окне, Выберите переключатель Video (ActionScript-controlled) и нажмите кнопку ОК.
  3. Перетащите вновь созданный видеообъект на сцену и присвойте ему имя экземпляра (например, myVideo).
  4. Выберите ваш видеообъектна сцене и нажмите F8, чтобы создать из нее новый символ.
  5. Установите для символа тип MovieClip, установите флажок «Экспорт для ActionScript» и введите идентификатор (например, videoContainer), затем нажмите OK.
  6. Удалите символ со сцены, сохранив его в библиотеке.

Теперь в вашей библиотеке есть элемент, который вы можете прикрепить с помощью кода, который уже содержит готовый видеообъектработать.Ваш код должен быть изменен следующим образом, при условии, что вы использовали те же имена, что и я.

//attach the container from the library
my_vid = _root.attachMovie("videoContainer", "my_vid" _root.getNextHighestDepth());
//create a reference to the video object inside the container
var video:Video = my_vid.myVideo;
var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
video.attachVideo(ns);
//
// ...
//
ns.play("http://localhost/video.mp4");
...