這聽起來像是Kindle Fire瀏覽器中的一個錯誤。如果第一個源文件可以播放,則應忽略第二個源文件。
這可能是值得改變的源元素的順序(即首先把MP3)。我懷疑它會有所作爲,但以防萬一 - 可能是一些奇怪的瀏覽器怪癖。
另一種可能性是瀏覽器自動播放實現的一個錯誤。您是否嘗試刪除autoplay
屬性?如果這是問題,那麼你可以嘗試在頁面加載時使用JavaScript的play()
方法。
更可靠的解決方案是使用JavaScript來檢測編解碼器支持。像這樣的東西應該工作:
HTML:
<audio id="myAudio">
Your browser does not support the audio element.
</audio>
的JavaScript:
function getAudioType(element) {
if (element.canPlayType) {
// CanPlayType returns maybe, probably, or an empty string.
if (element.canPlayType('audio/ogg; codecs="vorbis"') !== '') {
return('ogg');
} else if (element.canPlayType('audio/mpeg;') !== '') {
return('mp3');
}
}
return false;
}
var audio = document.getElementById('myAudio');
var audiotype = getAudioType(audio);
if (!audiotype) {
// Some fallback or not-supported message here
} else {
audio.src = '../../audio/andromeda_oars.' + audiotype;
audio.play();
}
UPDATE: Example of this in action
感謝您的回覆。我嘗試切換源順序 - 這產生了相同的結果。我需要這個特定項目的自動播放。我將嘗試您的JavaScript音頻類型檢查,但直接的HTML5音頻標記將是首選方法 - 並且它在大多數標準的,支持HTML5的瀏覽器中按預期工作。 –
[鏈接](http://www.javascriptkit.com/script/script2/soundlink.shtml) –
對不起,我無法讓你的代碼工作。但是,以下鏈接中的代碼在絕大多數標準,支持HTML5的瀏覽器中都能正常工作,但在Kindle Fire HD中完全無法使用。 [SoundLink](http://www.javascriptkit.com/script/script2/soundlink .shtml) 正在腳本中使用: –