0

我正在尝试对自定义视频播放器的擦洗器进行故障排除,如果 flv 尚未完全加载,我遇到了一个问题,即擦洗器被拖过进度条填充。

播放器在这里: http: //mindfilemultimedia.com/stage/portfolio.html

如果您播放视频,您会看到当 flv 仍在下载时,当您将滑动条移过黄色进度条进入该行的白色部分时,视频播放器将冻结。这样做是因为用户告诉它寻找尚未完全下载的视频部分。我想要它做的是确定flv 是否仍在下载并限制用户只能将scrubber 向上拖动直到黄色进度条的宽度。现在我已经设置了代码来检索 bytesLoaded 和 bytesTotal ,我想做的是说类似(在 actionscript 3 中):

if (videoPlayer.bytesLoaded < videoPlayer.bytesTotal) {
    var newBounds:Rectangle = new Rectangle(0, 0, (videoPlayer.bytesLoaded/videoPlayer.bytesTotal) * MovieClip(root).SeekBar.SeekProgressBar.width, 0);
    MovieClip(root).SeekBar.SeekBarHandle.startDrag(false, newBounds);
}

我绝不是一个动作脚本人,所以这是我尝试做我需要的事情。我感觉它不起作用,因为我错误地访问了进度条和洗涤器句柄的类,但我只是采用默认类,因为 seekbar 是 Fl​​ash 组件。好吧,我可能完全错了。这里的任何帮助将不胜感激。

4

1 回答 1

0

你把这段代码放在哪里?它需要放在某个地方,并定期更新。根据您使用的视频播放器类型,您可以查看它调度的事件并使用事件侦听器定期检查缓冲了多少。您也可以使用输入帧事件,尽管您需要确保在缓冲区完成后停止侦听,因为它会在每一帧上增加额外的开销。

作为旁注,SeekBar 和 SeekBarHandle 可能应该分别是 seekBar 和 seekBarHandle,因为在 actionscript 中以小写字母开头实例名称是标准做法。

于 2009-01-28T09:06:02.420 回答