Flash vs < audio >
Como se podrán imaginar este es mi tema preferido, no lo puse antes de video por que ya quedó claro que Flash arrasa con HTML5 en ese contexto, pero en este, aunque no es tan polémico, creo que hay mas equidad entre ambas tecnologias.
<audio> es una etiqueta muy simple que hace referencia a un archivo el cúal podemos cargar, reproducir, loopear y detener; cuenta ademas con la opción de añadir controles para el volúmen y mute.
<audio id="audio" src="song.ogg" controls="controls"> </audio> |
Es muy práctico para cosas simples, pero si lo comparamos con las caracteristicas de audio que tiene Flash, si le añadimos el acceso al micrófono y agregamos que <audio> no tiene soporte para algunos formatos, obtendremos el mismo resultado que con <video>.
¿Entonces por que digo que hay mas equidad entre Flash vs <audio>?
Actualmente se esta desarrollando un API para audio con caracteristicas similares a las que nos llegaron con Flash player 10, concretamente la generación de audio.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | // Actionscript 3 var sound:Sound = new Sound(); sound.addEventListener(Event.SAMPLE_DATA, onSampleData); sound.play(); var freq:Number = 440; var phase:Number = 0; function onSampleData(e:SampleDataEvent):void { for (var c:int=0; c<8000; c++) { phase += 100 / 44100; var waveform:Number = 100 * Math.PI * 2; sample = Math.sin(waveform); e.data.writeFloat(sample); e.data.writeFloat(sample); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | //HTML5 <audio id="a1" src="song.ogg" onloadedmetadata="loadedMetadata(event);" onaudiowritten="audioWritten(event);" controls="controls"> </audio> <script> var a1 = document.getElementById('a1'), a2 = new Audio(), buffer = []; function loadedMetadata(event) { a1.volume = 0; a2.mozSetup(event.mozChannels, event.mozSampleRate, 1); } function audioWritten(event) { var frameBuffer = event.mozFrameBuffer; writeAudio(frameBuffer); } function writeAudio(audio) { buffer = (buffer.length === 0) ? audio : buffer.concat(audio); var written = a2.mozWriteAudio(buffer); //<<-- } </script> |
Gracias a esto ya podemos ver la llegada de algunos sintetizadores y cajas de ritmos en HTMl5:
HTML5 and Javascript Synthesizer from Corban Brook on Vimeo.
Y por supuesto, al igual que AS3, HTML5 tambien es capaz de leer audio, lo que nos permitirá crear desde visualizaciones hasta efectos de audio a los archivos que carguemos (filtros, compresores, delays, ecualizadores, etc)
Creo que todos en alguna ocasión vimos alguna visualización de audio creada en Flash, con la llegada de Flash Player 10 pudimos empezar a jugar con sintetisis y ahora después de algunos años tenemos Digital Workstations directamente en el navegador como Myna, Soundation y por supuesto Audiotool que nos llego con un increible sintetizador creado en AS3:
Creo que en este punto HTMl5 dió un paso muy grande, que si bien no será muy explotado por la mayoría de las personas que hacen web, si nos traerá cosas muy interesantes.
Deja un comentario