【发布时间】:2011-09-30 00:56:41
【问题描述】:
我在 AS3 中制作了一个小型视频播放器,我发现在调用 NetStream.pause() 或 NetStream.togglePause() 之后,不再触发任何状态消息。 如果我在视频缓冲时单击“暂停”按钮,我永远不会收到 Buffer.Full 消息。
这里有一些代码:
_connection = new NetConnection();
_connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
_connection.connect(null);
// create NetStream instance
_stream = new NetStream(_connection);
_stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
// event handler
// not called after the stream has been paused
private function netStatusHandler( e:NetStatusEvent ):void
{
trace("code:", e.info.code);
}
// pause button click handler
private function videoClickHandler( e:MouseEvent ):void
{
_stream.togglePause();
_isPaused = !_isPaused;
controls.playPause.gotoAndPlay((_isPaused) ? 10 : 3);
}
我在这里错过了什么?
谢谢。
【问题讨论】:
-
展示你如何创建_connection
-
更新了代码以显示我是如何创建连接的
-
代码对我来说看起来很粘,您确定正在建立与服务器的连接。和从服务器发送的流 iws?通常对于流媒体,您还必须调用服务器函数。你用的是什么流媒体服务器?
-
我也没有看到像我在答案中发布的那样的错误处理功能。您可能希望顶部包括那些以查看发生了什么。
-
我只是在播放一些基本的 f4v/flv 文件,我没有使用流媒体服务器,但是任何时候它调用 NetStream.pause/togglePause 都不会“发送”更多状态代码。我已经使用计时器对问题进行了排序,并检查了 NetStream.bufferLength 以查看缓冲区是否已满。
标签: flash actionscript-3 netstream