2011-02-15 2 views
0

je crée html5 élément audio en dehors d'un DOM:plusieurs sources pour élément audio html5 en dehors d'un DOM

var = new audio Audio();

$ (audio) .attr ('src', ogg_path);

mais comment puis-je utiliser plusieurs sources différentes pour différents navigateurs? Qu'en est-il de .attr ('src', mp3_path) avec ogg_path?

en html Je pourrais écrire

Et audio.has_many_sources. Mais dans $ (audio) .attr ('src') est un seul src, pas Array, hélas, autant que je peux voir.

Nous vous remercions de l'aide

Répondre

1

Ne pas utiliser l'attribut source pour spécifier le fichier audio, utilisez plutôt le source element.

Ainsi, au lieu de l'être HTML:

<audio src='/path/to/audio.ogg' /> 

utilisation:

<audio> 
    <source src='/path/to/audio.ogg' type='audio/ogg' /> 
    <source src='/path/to/audio.mp3' type='audio/mpeg' /> 
</audio> 

Pour un moyen rapide (non jquery) de génération ceci:

function createAudio(sources) { 
    var audio = document.createElement('audio'); 
    for (var i in sources) { 
     var source = document.createElement('source'); 
     source.src = sources[i]; 
     source.type = sources[i].match(/ogg$/) ? 'audio/ogg' : 'audio/mp3'; 
     audio.appendChild(source); 
    } 
    return audio; 
} 

var yourNewAudioElement = createAudio(["/path/to/audio.ogg", "/path/to/audio.mp3"]);