2011-06-05 26 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