0

我完全不知道如何检测我的 FLVPlayback 组件实例是否已收到一个不存在或由于某种原因无法播放的源。

我已经将处理程序附加到我能想到的每个事件中......特别是......

        videoPlayer.addEventListener(VideoEvent.COMPLETE, vidEnd);
        videoPlayer.addEventListener(VideoEvent.READY, vidStart);
        videoPlayer.addEventListener(VideoEvent.PLAYHEAD_UPDATE, vidMoved);         
        videoPlayer.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);           
        videoPlayer.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);

但是当剪辑丢失或损坏时,这些都不会触发。

我也试过这个:

            try{
                videoPlayer.source = "http://localhost:18888/" + folder + "/" + nextUrl;
            }catch(e:VideoError){
                trace("http://localhost:18888/" + folder + "/" + nextUrl + " couldn't be found");
                playNextItem();
            }

但这也行不通。我完全被难住了。这样做的正确方法是什么?

TIA

4

1 回答 1

2

如果可以,请不要使用 FLVPlayback,因为它在幕后做了太多“神奇”的事情,而且有点麻烦。它基本上只是VideoPlayer类的包装器。

如果你必须使用 FLVPlayback,你可以访问被包装的 VideoPlayer FLVPlayback.getVideoPlayer,然后监听VideoState.STATE_CHANGE和监听VideoPlayer.state。如果是VideoState.CONNECTION_ERROR,则表示您的视频源无法加载或播放。

于 2011-09-23T05:05:45.683 回答