所以我在加载netstream视频时遇到AS2问题。
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");
我实际上可以听到背景音频,但由于某些原因,我看不到任何图片。我试着只听一个没有电影剪辑的视频,反之亦然,只听音频。
我肯定做错了什么,但是什么?
你的问题是你从来没有把视频对象附加到舞台上。my_vid.attachVideo(video);
这一行什么也不做,因为MovieClip没有一个叫做attachVideo
的方法。
您需要在库中创建一个视频对象并将其添加到舞台。要做到这一点,请在IDE中执行以下步骤:
- 点击库面板右上角的箭头,从下拉菜单中选择
New Video...
。 - 在对话框中,选中"
Video (ActionScript-controlled)
"单选按钮,单击"OK"。 - 将新创建的视频对象拖到舞台上,并给它一个实例名(例如
myVideo
)。 - 在舞台上选择你的视频对象,按F8从它创建一个新的符号。
- 设置符号类型为MovieClip,勾选Export for ActionScript复选框并给出标识符(例如
videoContainer
),然后按OK。 - 从舞台上删除符号,将其保留在库中。
现在你的库中有了一个可以用代码附加的项目,它已经包含了一个可以工作的视频对象。您的代码应该修改如下,假设您使用了与我上面所做的相同的名称。
//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");