Search code examples
actionscript-3actionflvplayback

How to check for the FLV file existence before playing that using FLVPlayback in Action Script 3?


I'm very new to the Action Scripting, I'm using the FLVPlayback class to play my FLV files.

If I'm trying to play a FLV file which is not existed yet then I am getting a "VideoError: 1000" with message of Unable to make connection to server or to find FLV on server.

I want to check for the FLV file existence using the file URL or path, before playing that FLV by FLVPlayback. Can anybody please suggest a way to do that.

Thanks


Solution

  • The only way to catch the error safely is to listen for the fl.video.VideoEvent.STATE_CHANGE event and act accordingly. Here's a little code snippet on how to do so:

    import fl.video.FLVPlayback;
    import fl.video.VideoEvent;
    import fl.video.VideoState;
    
    var videoPlayer:FLVPlayback;
    videoPlayer.addEventListener( VideoEvent.STATE_CHANGE, onVideoStateChange );
    /** Bad source  **/
    videoPlayer.source = "http://www.helpexamples.com/flash/video/caption_video_error.flv";
    /** Good source **/
    //videoPlayer.source = "http://www.helpexamples.com/flash/video/caption_video.flv";
    
    function onVideoStateChange( evt:VideoEvent ):void
    {
        var videoPlayer:FLVPlayback = evt.target as FLVPlayback;
        switch( evt.state )
        {
            case VideoState.CONNECTION_ERROR:
                trace( 'Connection error' );
                /**
                 * Once you hit this event, you should run some logic to do one or more of the following:
                 *   1. Show an error message to the user
                 *   2. Try to load another video
                 *   3. Hide the FLVPlayback component
                 */
                break;
            default:
                trace( 'Player is: ' + evt.state );
        }
    }
    

    For a full list of possible VideoState constants, visit fl.video.VideoState.