HTML 5 media
Estive para aqui a brincar com a tag <audio> uma das novas funcionalidades do HTML5. Penso que apenas o Safari a suporta para já.
Estive a tentar fazer uma theremin, controlada com o rato: um dos eixos controlava a frequência, outro eixo o vibrato e a scroll-wheel controlava o volume. Tentei gerar amostras curtas, da ordem de 1/4 de segundo, em função das variáveis de controlo, mas ainda tenho alguns problemas a resolver.
O elemento AUDIO fornece um evento “ended” que é invocado quando termina o playback, mas parece-me ter um atraso de meio segundo entre o fim e a invocação do evento. Para contornar esta questão, larguei o “ended” e coloquei um evento agarrado ao timer a gerar e a fazer playback de amostras em sequência, mas tenho problemas de sincronização entre as várias amostras.
Para gerar as amostras dinamicamente estou a construir em memória uma estrutura de um ficheiro WAV, com que alimento o elemento AUDIO com o método “data:”. Neste caso, o atributo “src” do Audio é algo como “data:audio/wav;base64,” + base64_encode(wav).
Sei que estou a abusar com geração de som em tempo real em Javascript, ainda para mais com codificação base64 pelo meio, mas se funcionar bem fica um bom hack…
Sempre pode dar para fazer um dialer DTMF ou um gerador de blips daqui a uns dias.
Pelo menos pode dar para colocar um site a apitar como as caixas do Pingo Doce de cada vez que se passa com o rato num link, tal como faz o anúncio ao site da SIC que passa na SIC Notícias a toda a hora…
5 Comments »
RSS feed for comments on this post. TrackBack URI
Não era o Firefox 3 que ia suportar a tag <audio> e <video> ? já vou pesquisar…
O FF3 ainda não suporta. A página do blog do webkit que faço o link tem um demo. Se te aparecer um vídeo, é porque dá
Não aparece, tenho de ver no safari…, eheh
Pois, o Firefox 3.1 é que vai suportar.
[…] Para o meu protótipo, aproveitei uma brincadeira que fiz há uns meses quando descobri que podia reproduzir audio a partir de uma página HTML apenas com Javascript (e o Safari). O meu demo era uma página HTML que gerava e reproduzia os .WAV para cada acção de um Apple […]