2011-09-04 176 views
2

夥計們,我試圖在鼠標懸停在按鈕上時播放聲音。我嘗試閱讀谷底的例子,但它似乎並沒有工作。這是我現在的代碼:使用JavaScript在mouseover上播放聲音

<audio id="mySoundClip"> 
    <source src="/sound/c_but.mp3" type="audio/mp3" /> 
</audio> 
<script type="text/javascript"> 
    var mysound = document.getElementById("mySoundClip"); 
</script> 
<div class="whole"> 
<div id="social"> 
    <a href="#"><img name="faceb" src="img/social/up_fb.png" width="40" onMouseOver="faceb.src='img/social/o_fb.png'; mysound.play();" onMouseOut="faceb.src='img/social/up_fb.png'" class="soc"/></a> 
    <a href="#"><img name="goobu" src="img/social/up_gb.png" width="40" onMouseOver="goobu.src='img/social/o_gb.png'" onMouseOut="goobu.src='img/social/up_gb.png'" class="soc"/></a> 
    <a href="#"><img name="myspa" src="img/social/up_ms.png" width="40" onMouseOver="myspa.src='img/social/o_ms.png'" onMouseOut="myspa.src='img/social/up_ms.png'" class="soc"/></a> 
    <a href="#"><img name="twitt" src="img/social/up_tw.png" width="40" onMouseOver="twitt.src='img/social/o_tw.png'" onMouseOut="twitt.src='img/social/up_tw.png'" class="soc"/></a> 
</div> 
</div> 

正如你所看到的,將鼠標懸停在第一幅圖片 - Facebook的鏈接應該引起我的聲音..但事實並非如此。這是我的鏈接http://work.juanalvarezdj.com你能幫忙嗎?我究竟做錯了什麼?

+0

它在Chrome中適用於我。 – bjornd

+0

這個問題是密切相關的:http://stackoverflow.com/questions/3013883/play-audio-file-on-hover –

回答

3

Firefox目前不支持您想要的AUDIO標籤。來自MDN:

注:目前,Gecko僅支持Ogg容器中的Vorbis以及WAV格式。此外,服務器必須使用正確的MIME類型來提供文件,以便Gecko正確播放它。

https://developer.mozilla.org/en/HTML/Element/audio

http://html5doctor.com/native-audio-in-the-browser/

,使其在Firefox瀏覽器,你可以發現Firefox和切換文件類型的OGG或者WAV文件格式,它會奏效。我建議看一下音頻庫。

http://www.jplayer.org/

+0

那麼圍繞這個有什麼辦法? – DreamWave

+1

我會使用支持Flash作爲後備的庫。正如該鏈接討論的那樣,jPlayer是一個選項。 http://www.jplayer.org/ –

+1

實際上,另一個選項可能是在Firefox的OGG中有兩個文件,一個MP3和另一個文件。看到這裏:http://jfcoder.com/test/soundplay.html –

1

您是否已經使用螢火蟲檢查腳本執行了?

只是一個猜測,但你的處理函數說:

faceb.src='img/social/o_fb.png'; 

也許變量「faceb」在這方面不存在,你應該dcument.getElmentById搶元素的例子。 如果這應該是這種情況,當然會引發異常並且不執行第二個命令(mysound.play())。

+0

FireFox錯誤控制檯說:mysound.play()不是一個功能 – DreamWave

+0

是的,忘掉我的第一個當然,這個變量是由name屬性定義的。 這可能是缺乏html5支持?音頻元素是HTML 5的新功能,而不是每個瀏覽器的標準功能。谷歌瀏覽器運行良好,就像bjornd說的。 –

+0

那麼有什麼辦法呢? – DreamWave

1

我在http://geneinhell.tripod.com/webonmediacontents/geneinhell.html找到了一個例子。

將鼠標指針放在圖像上時,會播放一個mp3文件。

只需在頁面上單擊右鍵並選擇「查看源代碼」,即可查看用於實現該代碼的代碼。

+0

上述頁面適用於Firefox(Mac),Safari(Mac),Opera(Mac)和Internet Explorer(在我的Mac上的虛擬機上運行的Windows XP)。 – Les