DOM之外的html5音频元素的几个来源

时间:2011-02-15 18:43:03

标签: html5 audio

我在DOM之外创建html5音频元素:

var audio = new Audio();

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

但我如何为不同的浏览器使用几种不同的来源? .attr('src',mp3_path)和ogg_path怎么样?

在html中我可以写

     

和audio.has_many_sources。但是在$(audio).attr('src')是唯一的src,而不是Array,唉,据我所见。

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

请勿使用source属性指定音频文件,而应使用source element

因此,而不是HTML:

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

使用:

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

快速(非jquery)生成此方法:

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"]);