Posted in

Control de Flash Video con la API externa

El siguiente procedimiento muestra cómo controlar archivos Flash Video (FLV) mediante controles en una página HTML y ofrece información sobre el vídeo en un campo de texto HTML. Este procedimiento utiliza la API externa para conseguir esta funcionalidad.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>ExternalInterface</title>

<script language="JavaScript">
    // Utilizar una variable para hacer referencia al archivo SWF incorporado.
    var flashVideoPlayer;
    
    /* Cuando se carga la página HTML (mediante el evento onLoad de la etiqueta <body>), ésta llama a la función initialize(). */
    function initialize() {
        /* Comprobar si el navegador es IE. Si es así, flashVideoPlayer es
window.videoPlayer. De lo contrario, será document.videoPlayer.
videoPlayer es el ID asignado a las etiquetas <object> y <embed>. */
        var isIE = navigator.appName.indexOf("Microsoft") != -1;
        flashVideoPlayer = (isIE) ? window['videoPlayer'] : document['videoPlayer'];
    }

    /* Cuando el usuario haga clic en el botón de reproducción del formulario, actualizar el área de texto videoStatus, llamar a la función playVideo() en el archivo SWF y pasarle la URL del archivo FLV. */
    function callFlashPlayVideo() {
        var comboBox = document.forms['videoForm'].videos;
        var video = comboBox.options[comboBox.selectedIndex].value;
        updateStatus("____" + video + "____");
        flashVideoPlayer.playVideo("http://www.helpexamples.com/flash/video/" + video);
    }

    // Llamar a la función pauseResume() del archivo SWF.
    function callFlashPlayPauseVideo() {
        flashVideoPlayer.pauseResume();
    }

    /* La función updateStatus() se llama desde el archivo SWF mediante el método onStatus() del objeto NetStream. */
    function updateStatus(message) {
        document.forms['videoForm'].videoStatus.value += message + "\n";
    }
</script>
</head>
<body bgcolor="#ffffff" onLoad="initialize();">

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
    codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="320" height="240" id="videoPlayer" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="video.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="video.swf" quality="high" bgcolor="#ffffff" width="320" height="240" name="videoPlayer" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>

<form name="videoForm">
    Select a video:<br />
    <select name="videos">
        <option value="lights_long.flv">lights_long.flv</option>
        <option value="clouds.flv">clouds.flv</option>
        <option value="typing_long.flv">typing_long.flv</option>
        <option value="water.flv">water.flv</option>
    </select>
    <input type="button" name="selectVideo" value="play" onClick="callFlashPlayVideo();" />
    <br /><br />

    Playback <input type="button" name="playPause" value="play/pause" onClick="callFlashPlayPauseVideo();" />

    <br /><br />
    Video status messages <br />
    <textarea name="videoStatus" cols="50" rows="10"></textarea>
</form>

</body>
</html>

Este código HTML define cuatro funciones de JavaScript: initialize(), callFlashPlayVideo(), callFlashPlayPauseVideo() y updateStatus(). La función initialize() se llama dentro de la etiqueta body del evento onLoad. Las funciones callFlashPlayVideo() y callFlashPlayPauseVideo() se llaman cuando el usuario hace clic en el botón Reproducir o Reproducir/Pausar dentro del documento HTML y se activan las funciones playVideo() y pauseResume().

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *


The reCAPTCHA verification period has expired. Please reload the page.