AS2: нет видео с netstream, только аудио
Так что у меня проблема с 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 ответ
Ваша проблема в том, что вы никогда не прикрепляете видео объект к сцене. Эта линия my_vid.attachVideo(video);
ничего не делает, потому что MovieClip не имеет метода с именем attachVideo
,
Вам нужно создать видео объект в вашей библиотеке и добавить его на сцену. Для этого выполните следующие действия в IDE:
- Нажмите стрелку в правом верхнем углу панели libray и выберите
New Video...
из выпадающего списка. - В диалоговом окне выберите
Video (ActionScript-controlled)
переключатель и нажмите кнопку ОК. - Перетащите только что созданный видеообъект на сцену и присвойте ему имя экземпляра (например,
myVideo
). - Выберите ваш видеообъект на сцене и нажмите F8, чтобы создать из него новый символ.
- Установите для символа тип MovieClip, установите флажок "Экспорт для ActionScript" и укажите идентификатор (например,
videoContainer
), затем нажмите ОК. - Удалите символ со сцены, сохранив его в библиотеке.
Теперь у вас есть элемент в вашей библиотеке, который вы можете прикрепить с помощью кода, который уже содержит видеообъект, готовый к работе. Ваш код должен быть изменен следующим образом, при условии, что вы использовали те же имена, что и я выше.
//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");