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().

