asd

6

Abr

Adobe Flash Player 9 con soporte para Video h.264 o de alta definición (HD)

Publicado por: LeoBaraldi

Adobe flash 9.0.115.0 que ya se encuentra disponible para descargar trae como novedad el soporte de video en alta resolución bajo el estándar h.264 o MPEG-4 parte 10. Este formato de compresión está diseñado para mejorar notablemente la calidad del video y su compresión con relación a la calidad / peso, logrando una excelente imagen, sea a modo ventana como fullscreen. En versiones anteriores de Flash Player cuando usábamos un componente de video o la clase netStream estábamos limitados a solo poder llamar archivos FLV, pero ya en esta nueva versión podremos llamar y cargar archivos FLV, MOV, MP4 y 3GP.
Lamentablemente el Flash Video Encoder no codifica en h.264 y por lo tanto lo deberemos hacer desde otros programas como por ejemplo Adobe Premier.
A continuación les dejo un ejemplo como siempre para que puedan verlo funcionar y puedan descargárselo. Recuerda que si no ves el video es porque tu Flash Player es antiguo.
IMPORTANTE: Cuando usen video h.264 en sus proyectos recuerden que para pre visualizarlos lo deben hacer desde su navegador web.
Action:

Actionscript:
  1. //url del video, en este caso lo levantamos de apple
  2. var URLvideo:String = "http://movies.apple.com/movies/disney/wall-e/wall-e-vignette_h480p.mov";
  3. //definimos variables
  4. var duracion:Number = 0;
  5. var ancho:Number = 0;
  6. var alto:Number = 0;
  7. var anchoInicial:Number = Stage.width;
  8. var anchoMax:Number = System.capabilities.screenResolutionX;
  9. //escuchador para nuestro Stage
  10. var escuchador:Object = new Object();
  11. var escala:Number = 100;
  12. //nuestro campo de texto y posicion
  13. datos_txt.html = true;
  14. datos_txt.wordWrap = true;
  15. datos_txt._x = datos_txt._y=10;
  16. //creamos un objeto para la recepcion del flujo de video
  17. var mi_nc:NetConnection = new NetConnection();
  18. mi_nc.connect(null);
  19. //creamos un controlador para el video
  20. var stream_ns:NetStream = new NetStream(mi_nc);
  21. stream_ns.setBufferTime(10);
  22. //
  23. mi_video.attachVideo(stream_ns);
  24. //suavizamos el video
  25. mi_video.smoothing = true;
  26. //posicionamos al centro de la pantalla el video
  27. mi_video._x = (Stage.width/2)-(mi_video._width/2);
  28. mi_video._y = (Stage.height/2)-(mi_video._height/2);
  29. stream_ns.play(URLvideo);
  30. //leemos la duracion del video, ancho y alto del video
  31. stream_ns.onMetaData = function(infoObject:Object) {
  32. duracion = Number(Math.floor(infoObject.duration));
  33. ancho = Number(Math.floor(infoObject.width));
  34. alto = Number(Math.floor(infoObject.height));
  35. };
  36. //calculamos buffer, tiempo, fps y segundos reproducidos
  37. var bufferInterval:Number = setInterval(checkBufferTime, 100, stream_ns);
  38. function checkBufferTime(stream_ns:NetStream):Void {
  39. var bufferPorc:Number = Math.min(Math.round(stream_ns.bufferLength/stream_ns.bufferTime*100), 100);
  40. datos_txt.htmlText = "<span style="color: #ff0000;"><strong><span style="text-decoration: underline;">ESTADISTICAS</span></strong></span>";
  41. datos_txt.htmlText += "<strong>Tiempo de buffer: </strong>"+stream_ns.bufferTime+"''";
  42. datos_txt.htmlText += "<strong>Porcentaje en buffer: </strong> "+bufferPorc+"%";
  43. datos_txt.htmlText += "<strong>FPS: </strong>"+Math.floor(stream_ns.currentFps);
  44. datos_txt.htmlText += "<strong>Segundos transcurridos: </strong>"+Math.floor(stream_ns.time)+"'' de "+duracion+"''";
  45. datos_txt.htmlText += "<strong>Ancho: </strong>"+ancho+"px | <strong>Alto: </strong>"+alto+"px";
  46. }
  47. //accion para el boton pantalla completa
  48. full_btn._x = Stage.width-(full_btn._width+10);
  49. full_btn._y = 10;
  50. full_btn.onRelease = function() {
  51. Stage.displayState = Stage.displayState == "normal" ? "fullScreen" : "normal";
  52. };
  53. //acciones si se cambio el estado de la pantalla
  54. escuchador.onResize = function() {
  55. //porcentaje de escala para el video
  56. escala = Math.floor((Stage.width/848)*100);
  57. //
  58. if (Stage.displayState == "normal") {
  59. mi_video._width = ancho;
  60. mi_video._height = alto;
  61. } else {
  62. mi_video._width = (ancho*escala)/100;
  63. mi_video._height = (alto*escala)/100;
  64. }
  65. reacomodar();
  66. };
  67. Stage.addListener(escuchador);
  68. //reacomodar los elementos segun el estado de la pantalla
  69. function reacomodar() {
  70. full_btn._x = Stage.width-(full_btn._width+10);
  71. full_btn._y = 10;
  72. mi_video._x = (Stage.width/2)-(mi_video._width/2);
  73. mi_video._y = (Stage.height/2)-(mi_video._height/2);
  74. }

Leonardo David Baraldi

Leonardo Baraldi

Nací en Villa Carlos Paz, tengo 33 años y me dedico a desarrollos para la web desde el año 99, preferentemente en las aéreas de ActionScript y CSS. Trabajo para la firma Manifesto Solutions como jefe de producción.

ultimos post

Usa Firefox es mejor che!!!
Copyright © 2008 LeoBaraldi. Todos los derechos reservados.
Designed by LeoBaraldi and powered by Wordpress | RSS Feed
Love WordPress
Manifesto
Manifesto solutions
Sponsort Oficial de LeoBaraldi