我正在尝试audio
在 Opera 12.16(现在的最新版本)中播放一个元素,我注意到它不适用于mp3
文件,但它适用于文件ogg
。
这是我目前仅使用 mp3 文件而不适用于 Opera 的小提琴:http: //jsfiddle.net/hMnsd/1/
解决方案似乎做了这样的事情(如w3c website中所指出的):
<audio controls>
<source src="horse.ogg" type="audio/ogg">
<source src="horse.mp3" type="audio/mpeg">
Your browser does not support the audio tag.
</audio>
我现在使用这个函数来生成声音:
function notificationSound(){
var audioElement = document.createElement('audio');
audioElement.setAttribute('src', "http://"+ document.domain +"/files/notification2.mp3");
audioElement.setAttribute('type', 'audio/mpeg');
audioElement.setAttribute('autoplay', 'autoplay');
//audioElement.load()
audioElement.addEventListener("load", function() {
audioElement.play();
}, true);
}
为了添加ogg
文件,我尝试生成所需的结构但没有成功:
var audioElement = document.createElement('audio');
var audioSource1 = document.createElement('source');
var audioSource2 = document.createElement('source');
//mp3 file
audioSource1.setAttribute('src', "http://"+ document.domain +"/files/notification2.mp3");
audioSource1.setAttribute('type', 'audio/mpeg');
//ogg file
audioSource2.setAttribute('src', "http://"+ document.domain +"/files/notification2.ogg");
audioSource2.setAttribute('type', 'audio/ogg');
audioElement.setAttribute('autoplay', 'autoplay');
audioElement.append(audioSource2); //opera
audioElement.append(audioSource1);
//audioElement.load()
$.get();
audioElement.addEventListener("load", function() {
audioElement.get(0).play();
}, true);
如何完成它以使其在带有ogg
文件的 Opera 中也能正常工作?