2011-06-05 57 views
1

我正尝试在Javascript中创建HTML 5音频标签。我无法使其工作并预加载:JavaScript中的HTML5音频:我做错了什么?

var audioElement = document.createElement('audio'); 

var source1 = document.createElement('source'); 
source1.type= 'audio/ogg'; 
source1.src= 'assets/audio/ost.ogg'; 
source1.setAttribute("preload","auto"); 
audioElement.appendChild(source1); 

var source2 = document.createElement('source'); 
source2.type= 'audio/mpeg'; 
source2.src= 'assets/audio/ost.mp3'; 
source2.setAttribute("preload","auto"); 
audioElement.appendChild(source2); 

audioElement.preload = auto; 
audioElement.load(); 

任何想法?

谢谢。

编辑:

这里就是我最后做的人不知道。工程在FF3.6,FF4,Safari 5的,IE9,铬11,歌剧11.11(PC)

var audioElement = document.createElement('audio'); 
audioElement.setAttribute("preload", "auto"); 
audioElement.autobuffer = true; 

var source1 = document.createElement('source'); 
source1.type= 'audio/ogg'; 
source1.src= 'assets/audio/ost.ogg'; 
audioElement.appendChild(source1); 

var source2 = document.createElement('source'); 
source2.type= 'audio/mpeg'; 
source2.src= 'assets/audio/ost.mp3'; 
audioElement.appendChild(source2); 

然后:

audioElement.load(); 

感谢您的帮助,凯文。

回答

2

<source>元素不能具有属性preload,并且您忘记在音频对象的预加载属性周围加上引号。

所以,删除您sourceX对象setAttribute('preload', 'auto'),把引号将preload属性,就像这样:

audioElement.preload = 'auto'; 
+0

由于这样的作品,但FF3。 6不预加载 – Yahreen 2011-06-05 06:48:15

+0

@Yahreen我不确定3.6是否支持预加载。 – Kevin 2011-06-05 07:14:40