Estas últimas se manejan con JavaScript y, a simple vista, no parecen gran cosa ya que sólo hacen más o menos lo mismo que el reproductor en si mismo pero no es así, el poder manejar el reproductor con códigos, abre una serie de posibilidades que serán parte de otra entrada.
La forma más sencilla de probar estas funciones es usar la librería SWFObject que podemos cargar directamente desde Google:
<script src='http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js' type='text/javascript'></script>
<div id="contenedorPlayer"> Cargando ... </div> <script type="text/javascript"> var params = { allowScriptAccess: "always", bgcolor: "#cccccc" }; var atts = { id: "objetoPlayer" };swfobject.embedSWF("http://www.youtube.com/v/XXXXXXXXXXX?border=0&enablejsapi=1&playerapiid=YTplayerDemo","contenedorPlayer", "425", "344", "8", null, null, params, atts); </script>
// los controles function play() { if (YTplayerDemo) { YTplayerDemo.playVideo(); } } function pause() { if (YTplayerDemo) { YTplayerDemo.pauseVideo(); } } function stop() { if (YTplayerDemo) { YTplayerDemo.stopVideo(); } } function mute() { if (YTplayerDemo) { YTplayerDemo.mute(); } } function unMute() { if (YTplayerDemo) { YTplayerDemo.unMute(); } } // cargar y ejecutar el video function loadNewVideo(id, inicio) { if (YTplayerDemo) { YTplayerDemo.loadVideoById(id, parseInt(inicio)); } } // cargar el video y no ejecutarlo function cueNewVideo(id, inicio) { if (YTplayerDemo) { YTplayerDemo.cueVideoById(id, inicio); } } // eliminar el video function clearVideo() { if (YTplayerDemo) { YTplayerDemo.clearVideo(); } } // extraer información del video function getBytesLoaded() { if (YTplayerDemo) { return YTplayerDemo.getVideoBytesLoaded(); } } function getBytesTotal() { if (YTplayerDemo) { return YTplayerDemo.getVideoBytesTotal(); } } function getCurrentTime() { if (YTplayerDemo) { return YTplayerDemo.getCurrentTime(); } } function getDuration() { if (YTplayerDemo) { return YTplayerDemo.getDuration(); } } function getStartBytes() { if (YTplayerDemo) { return YTplayerDemo.getVideoStartBytes(); } } function getVolume() { if (YTplayerDemo) { return YTplayerDemo.getVolume(); } } function getPlayerState() { if (YTplayerDemo) {r eturn YTplayerDemo.getPlayerState(); } } // mostrar información del video function getEmbedCode() { alert(YTplayerDemo.getVideoEmbedCode()); } function getVideoUrl() { alert(YTplayerDemo.getVideoUrl()); } function setYTplayerDemoState(newState) { mostrarINFO("salidaStatus", newState); } function mostrarINFO(donde, valor) { document.getElementById(donde).innerHTML = valor; } function actualizarINFO() { mostrarINFO("salidaCargado", getBytesLoaded()); mostrarINFO("salidaBytes", getBytesTotal()); mostrarINFO("salidaDuracion", getDuration()); mostrarINFO("salidaTiempo", getCurrentTime()); mostrarINFO("salidaInicial", getStartBytes()); mostrarINFO("salidaVolumen", getVolume()); } // establecer funciones varias function seekTo(seconds) { if (YTplayerDemo) { YTplayerDemo.seekTo(seconds, true); } } function setVolume(newVolume) { if (YTplayerDemo) { YTplayerDemo.setVolume(newVolume); } } // manejo del API function onYouTubePlayerReady(playerId) { YTplayerDemo = document.getElementById("objetoPlayer"); setInterval(actualizarINFO, 250);actualizarINFO(); YTplayerDemo.addEventListener("onStateChange", "onYTplayerDemoStateChange"); YTplayerDemo.addEventListener("onError", "onPlayerError"); } function onPlayerError(errorCode) { alert("ERROR al cargar el video " + errorCode); } function onYTplayerDemoStateChange(newState) { setYTplayerDemoState(newState); }
7 comentarios:
Estoy deseando ver esas posibilidades :O
Muy buen articulo! te felicito Jmiur! :) me gusta..esperando la otra parte del post..
Hola Jmiur, tienes un premio para tí, esperando en mi Blog, Felictaciones!!!! pasa por él. Un fuerte abrazo
La semana que viene estará lista la segunda parte pero, la más interesante, para mi gusto, será la tercera :D No, esto no es autopromo :D
DE INTERES: Te alo agradezco mucho, aunque no sepa cuál es tu blog porque el perfil es privado :)
No, no es autopromo es dejarnos con más curiosidad todavía jajajaja
Interesante comp siempre JMiur, esperando con ansias las siguientes partes :P
MMMM esto de crear expectativas puede ser contraproducente :$
:D
¿Quiere dejar un comentario?
recuerde que los comentarios están siendo moderados y serán publicados a la brevedad ...
Nota: sólo los miembros de este blog pueden publicar comentarios.
Si le gusta ir a lo seguro utilice este botón para abrir los comentarios en una ventana modal en esta misma pagina.
Si añora tiempos idos, use este enlace para agregar un comentario al viejo estilo ...