2012-12-25 76 views
1

使用新的HTML音頻標籤:的Kindle Fire HD播放兩種OGG和MP3使用HTML5音頻標籤

<audio autoplay="autoplay"> 
<source src="../../audio/andromeda_oars.ogg" type="audio/ogg" /> 
<source src="../../audio/andromeda_oars.mp3" type="audio/mpeg" /> 
Your browser does not support the audio element. 
</audio> 

能正常工作,在我已經嘗試了所有的瀏覽器(IE V10,V23鉻,歌劇V12,和Firefox v17)。但是,當我在Kindle Fire HD中查看相同的頁面時,兩個音頻文件(ogg和mp3)會一個接一個地播放(這讓我很生氣)。這不應該發生。任何人有任何答案和/或建議?謝謝!節日快樂....

回答

0

這聽起來像是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

+0

感謝您的回覆。我嘗試切換源順序 - 這產生了相同的結果。我需要這個特定項目的自動播放。我將嘗試您的JavaScript音頻類型檢查,但直接的HTML5音頻標記將是首選方法 - 並且它在大多數標準的,支持HTML5的瀏覽器中按預期工作。 –

+0

[鏈接](http://www.javascriptkit.com/script/script2/soundlink.shtml) –

+0

對不起,我無法讓你的代碼工作。但是,以下鏈接中的代碼在絕大多數標準,支持HTML5的瀏覽器中都能正常工作,但在Kindle Fire HD中完全無法使用。 [SoundLink](http://www.javascriptkit.com/script/script2/soundlink .shtml) 正在腳本中使用:

0

我試圖在FireHD7以下HTML和正常工作 - 只有一個音頻標籤正在播放。 如果您仍然遇到問題,您使用的是什麼版本的Silk瀏覽器,並且它是在HD7還是HD8.9設備上?

<html lang=""> 
<head> 
<meta http-equiv="content-type" content="text/html; charset="> 
<title>Audio Test</title> 
</head> 
<body> 

<audio id=audio0 controls autoplay="true"> 
<source src='http://www.russianlessons.net/audio/lesson3-20.mp3' type='audio/mpeg'> 
<source src='http://www.russianlessons.net/audio/lesson3-20.ogg' type='audio/ogg'> 
</audio> 

</body> 
</html>