2011-09-15 46 views
2

當你有一個簡單的無知音頻標籤,像這樣:HTML5/JS什麼是選擇正確音頻源的簡單方法?

<audio id="audio45" preload="auto" src="audio.ogg" controls=""></audio> 

您可以複製源播放,像這樣:

var playback = new Audio(); 
playback.src = document.getElementById('audio45').src; 
playback.load(); 
playback.play(); 

這將在Opera,火狐,iceweasel,這次大概Konqueror的工作。但是,當玩好Internet Explorer,Safari等你需要更多的來源。

<audio id="audio45" preload="auto" controls=""> 
    <source src="audio.ogg" type="audio/ogg" /> 
    <source src="audio.mp3" type="audio/mpeg" /> 
</audio> 

不過這樣一來,audio45.src保持爲空。獲取當前瀏覽器爲播放器選擇的支持源的簡單方法是什麼?我正在尋找一種可以寫入一次的方法,並適用於所有動態發生的音頻

+0

+1 「無知音頻標籤」 – sdleihssirhc

回答

2

嘗試document.getElementById('audio45').currentSrc。隨着HTML5規範(的草案):

media.currentSrc

返回當前媒體資源的地址。

當沒有媒體資源時返回空字符串。

currentSrc IDL屬性最初是空字符串。它的值由下面定義的資源選擇算法改變。

注意:有兩種方法可以指定媒體資源,src屬性或源元素。該屬性重寫元素。

http://dev.w3.org/html5/spec/Overview.html#attr-media-src

還要注意:

注:動態地修改源元素及其屬性,當元件在視頻或音頻元件已經插入將沒有任何效果。要更改正在播放的內容,只需直接使用媒體元素上的src屬性,可能會使用canPlayType()方法從可用資源中進行選擇。通常,在解析文檔之後手動操作源元素是一個非常複雜的方法。

http://dev.w3.org/html5/spec/Overview.html#the-source-element

+0

這是真棒,正是我所需要的!我希望 - 但沒有發現自己 - 可以完成這個簡單。感謝您詳細介紹canPlayType()方法。在編寫一個可能涉及手動瀏覽音頻DOM孩子的小檢測例程之前,我會問。 – Redsandro

相關問題