我正在尝试解决自定义视频播放器的擦洗器问题,如果flv没有完全加载,我会遇到一个问题,因为擦洗器会被拖过进度条填充。
玩家在这里:http://mindfilemultimedia.com/stage/portfolio.html
如果您播放视频,您将看到,当flv仍在下载时,当您将擦除器移过黄色进度条进入线的白色部分时,视频播放器将冻结。它之所以这样做,是因为用户告诉它寻找尚未完全下载的视频的一部分。我想让它做的是确定flv是否仍在下载,并限制用户只能向上拖动擦洗器,直到达到黄色进度条的宽度。现在,我已经设置了检索bytesLoaded和bytesTotal的代码,我想要做的是这样(在ActionScript3中):
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);
}我不是一个actionscript的人,所以这是我尝试做我需要做的事情。我有一种感觉,它不能工作,因为我没有正确访问进度条和擦洗器句柄的类,但我只是采用默认类,因为搜索栏是一个flash组件。好吧,我可能完全错了。这里的任何帮助都将不胜感激。
发布于 2009-01-28 09:06:02
你打算把这段代码放在哪里?它需要放在某个地方,在那里它会定期更新。根据您使用的视频播放器的类型,您可以查看它调度的事件,并使用事件侦听器定期检查缓冲了多少。您也可以使用enter frame事件,但您需要确保在缓冲区完成后停止侦听,因为这会在每个帧上增加额外的开销。
作为附注,SeekBar和SeekBarHandle应该分别为seekBar和seekBarHandle,因为在ActionScript中以小写字母开头是标准做法。
https://stackoverflow.com/questions/485803
复制相似问题