2011-10-05 76 views
3

我有来自服务器的视频流,后来我想并排添加另一个视频。这一切都很好,我做到了。现在我的问题出现时,我想删除视频。我设法将其从显示中删除,但我可以听到该视频仍在后台播放。那么,我该如何停止播放该视频? 这里是我的设置视频编码:as3 - 如何停止视频和分离NetStream

ns = new NetStream(connection); 
ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); 
ns.play(item[1].toString() + ".flv"); 
video = new Video(); 
video.attachNetStream(ns); 
video.width = 160; 
video.height = 120; 
videoWrapper = new UIComponent(); 
videoWrapper.addChild(video); 
videos.addElement(videoWrapper); 

这里是去除

videos.removeElement(myVideos[p][1]); // myVideos[p][1] is a reference of videoWrapper 

回答

6

可以通过调用video.attachNetStream(null)断开连接,或者与ns.close();

它关闭流可能最好做两个。

+0

好吧,我不能说,video.attachNetStream(空)不工作,它的工作,停止视频,但只有当启动任何其他视频。即时通讯工作本地主机,所以也许视频已经下载,这就是为什么它仍然在播放。无论如何,即时通讯不知道如何把ns.close()。我只参考videoWrapper,所以我用getChildAt(0)从该参考中提取视频,但如何获得现在的“ns”? – Giedrius

+1

ns的名字来自你自己的代码:'ns = new NetStream(connection);'你应该保留这个实例。我不认为你可以从视频实例中获得。 –

+0

我也很好奇;你为什么要在视频屏幕上添加一个带有视频屏幕的组件? –

4

在一个正常视频对象,不叫attachNetStream(null),因为AS3,以后不会让清除视频的最后一个视频帧与.clear() 看起来像一个bug。 使用ns.close(),然后使用vid.clear(),以便视频对象可以再次透明。

的StageVideo,这是不同的: 你可以调用vid.attachNetStream(null),它将从太的StageVideo去掉最后一帧。 要小心,它不会停止播放本身。你必须致电ns.close();