<audio>
!
<audio controls src="http://media.w3.org/2010/07/bunny/04-Death_Becomes_Fur.oga"> Votre navigateur ne supporte pas l'élément audio. </audio>
Ou encore...
<audio controls="controls"> <source src="song.ogg" type="audio/ogg" /> <source src="/song.mp3" type="audio/mp3" /> Votre navigateur ne supporte pas l'élément audio. </audio>
<video>
, l'élément <audio>
a une API JavaScript API,
et on peut lui associer des éléments <track>
jeu testable à plusieurs sur http://jeuweb-amsel.rhcloud.com:8000/
try { var context = new AudioContext(); ... } catch(e) { alert('Web Audio API n'est pas supporté par votre navigateur'); }
Les échantillons sont en mémoire vive (pas de streaming),
Jeux, applications musicales, etc.
Modèle de graphe pour les traitements temps réel.
var dogBarkingBuffer = null; var context = new AudioContext(); function loadDogSound(url) { var request = new XMLHttpRequest(); request.open('GET', url, true); request.responseType = 'arraybuffer'; // Decode asynchronously request.onload = function() { context.decodeAudioData(request.response, function(buffer) { dogBarkingBuffer = buffer; }, onError); } request.send(); }
var context = new AudioContext(); function playSound(buffer) { // create sound source var source = context.createBufferSource(); // What to play, an audio buffer source.buffer = buffer; // connect source to destination (speakers in that case) source.connect(context.destination); // Play the sound source.start(0); }
// Create the filter var filter = context.createBiquadFilter(); // Create the audio graph. source.connect(filter); filter.connect(context.destination); // Create and specify parameters for the low-pass filter. filter.type = "lowpass"; // Low-pass filter. See BiquadFilterNode docs filter.frequency.value = 440; // Set cutoff to 440 HZ // Playback the sound. source.start(0);
function gotStream(stream) { var context = new AudioContext(); // Create an AudioNode from the stream. var mediaStreamSource = audioContext.createMediaStreamSource( stream ); // Connect it to the destination to hear yourself // (or any other node for processing!) mediaStreamSource.connect( audioContext.destination ); } navigator.getUserMedia( {audio:true}, gotStream );
var context = new AudioContext(); // Create a source node with 1024, the number of samples to generate // on each call. 0, our node has NO INPUTS as far as we just want to generate sound // 2 for stereo... var node = context.createScriptProcessor(1024, 0, 2); // Specify the audio generation function node.onaudioprocess = generateAudio; // Connect the node to a destination, i.e. the audio output. node.connect(context.destination);