是否可以为jquery点击声音定义一个mp3和ogg文件?

时间:2012-10-29 15:32:02

标签: jquery click mp3 html5-audio ogg

我有这个解决方案在chrome中工作:

Play an audio file using jQuery when a button is clicked

但是firebug控制台说:

HTTP "Content-Type" of "audio/mpeg" is not supported. Load of media resource http://path/to/sound.mp3 failed.

有没有办法在这个脚本中定义一个ogg和mp3文件(假设这样可以让声音在firefox中播放):

<script>
$(document).ready(function() {
var audioElement = document.createElement('audio');
audioElement.setAttribute('src', 'http://path.com/to/sound.mp3');
$('#play_it').click(function() {
audioElement.play();
});
});
</script>
谢谢你。

更新

我尝试在mp3参考下方添加另一个对该文件的引用并且它有效,但不确定这是否是最佳解决方案:

<script>
$(document).ready(function() {
var audioElement = document.createElement('audio');
audioElement.setAttribute('src', 'http://path.com/to/sound.mp3');
audioElement.setAttribute('src', 'http://path.com/to/sound.ogg');
$('#play_it').click(function() {
audioElement.play();
});
});
</script>

1 个答案:

答案 0 :(得分:1)

您必须将<source>元素添加到<audio>元素才能指定不同的声音格式

<audio>
    <source src="sound.ogg" type="audio/ogg">
    <source src="sound.mp3" type="audio/mpeg">
</audio>

jQuery的:

var audioElement = $('audio');
var sourceElement = $('source');
sourceElement.attr('src', 'http://path.com/to/sound.mp3');
sourceElement.attr('type', 'audio/mpeg');
audioElement.append(sourceElement);
sourceElement = $('source');
sourceElement.attr('src', 'http://path.com/to/sound.ogg');
sourceElement.attr('type', 'audio/ogg');
audioElement.append(sourceElement);