有什么方法可以在ActionScript 3中暂停NetStream类的网络流量?

jse*_*ims 0 flash actionscript-3

这是我的用例:

我向用户展示一组小型播放视频.当用户点击其中一个小视频时,我会暂停所有小视频并加载点击的视频的更高比特率版本.

一切正常,除非它真的很慢,一些网络诊断表明问题是所有小视频继续加载,即使我在他们的网络上调用了pause().

要重新编写代码:

假设我有:

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

var ns1:NetStream = new NetStream(nc);        

var vid1:Video = new Video(WIDTH, HEIGHT);
vid1.attachNetStream(ns1);
ns1.play("video1.mp4");
stage.addChild(vid1);
Run Code Online (Sandbox Code Playgroud)

几秒钟后... vid1仍在加载,我想要做的是暂停vid1的视频流以及加载vid1的网络流量,以便下面的代码可以尽快运行

ns1.pause();

var ns2:NetStream = new NetStream(nc);
var vid2:Video = new Video(WIDTH, HEIGHT);
vid2.attachNetStream(ns2);
ns2.play("video2.mp4");
stage.addChild(vid2);
Run Code Online (Sandbox Code Playgroud)

...然后一段时间后用户解雇了vid2,所以我恢复了vid1的播放

ns1.resume();
Run Code Online (Sandbox Code Playgroud)

有没有办法告诉ns1停止读取它的套接字?如果我打电话ns1.close(),那么我无法恢复播放ns1.resume().

如果我需要使用流媒体协议,那么在加载所有小视频时握手的重量是多少?我正在尝试快速加载大量低比特率(50kbps)视频.

谢谢!

wel*_*rat 5

问题是电影继续加载,即使它们没有播放.您可以在YouTube上轻松查看:只需点击视频,然后点击暂停 - 进度条就会继续增长.

我相信没有其他方法可以阻止它,但是当它暂停时关闭每个NetStream.接受稍微延迟和/或跳转到下一个相邻的关键帧,您可以在最后一个位置继续播放电影,但:分配了流的视频对象应该仍然显示最后一帧,直到有新内容为止,或者video.clear()是调用,并且您可以使用ns.time重新连接后使用并返回到最后一个播放位置ns.seek ().

  • 别客气.你可以接受这个答案来回报我......;) (2认同)