2013-06-03 259 views
1

我有一個HTML頁面,其中有六個按鈕。每個按鈕都有一個onClick事件處理程序,onClick會播放一個聲音。聲音採用mp3格式。現在,當我點擊任何按鈕時,會播放聲音,但如果在播放第一個聲音時點擊另一個按鈕,則第一個聲音將停止播放。此後,如果我點擊任何按鈕,聲音將不會播放。聲音沒有被播放

我無法理解該問題。感謝您的幫助。

這是我的代碼。

<div 
    style='display: block; background-image: url(./images/backgroundImage.jpg);' > 

    <button class="stage1" id="button_1" style="width: 280px;height: 130px; margin-top: 40px;margin-left: 40px; background: transparent; "onclick="audio('a')" ></button> 
    <button class="stage1" id="button_2" style="width: 280px;height: 340px; margin-top: 20px;margin-left:960px;background: transparent; "onclick="audio('ab')"></button> 

    <button class="stage1" id="button_3" style="width: 220px;height: 250px; margin-top: 390px;margin-left: 40px;background: transparent; "onclick="audio('abc')"></button> 
    <button class="stage1" id="button_4" style="width: 220px;height: 250px; margin-top: 390px;margin-left: 300px;background: transparent; "onclick="audio('abcd')"></button> 
    <button class="stage1" id="button_5" style="width: 220px;height: 250px; margin-top: 390px;margin-left:560px;background: transparent; "onclick="audio('abcde')"></button> 
    <button class="stage1" id="button_6" style="width: 400px;height: 250px; margin-top: 390px;margin-left:840px;background: transparent; "onclick="audio('abcdef')"></button> 
</div> 

在Javascript中:

function audio(audio_name) { 
    audioElement.setAttribute('src', 'audio/' + audio_name + '.mp3'); 
    audioElement.play(); 
} 
+0

你可以發佈你的整個代碼與所有的按鈕? –

+0

查看我更新的問題 – User42590

+0

我現在對您的問題感到困惑。是否應該使用相同的按鈕播放和暫停音頻?你能解釋一下嗎? –

回答

0

只是做了這個和它的工作。我正在尋找的是那個

var audioElement = document.createElement('audio'); 

function audio(audio_name) { 
Disable(); 
audioElement = document.createElement('audio'); 
audioElement.setAttribute('src', 'audio/' + audio_name + '.ogg'); 
audioElement.load(); 
audioElement.play(); 

} 
function Disable() { 

audioElement.pause(); 

} 
1

參考this SO question - 儘管它使用jQuery的 - 你需要pauseload你玩新歌之前。

function audio(audio_name) { 
    audioElement.setAttribute('src', 'audio/' + audio_name + '.mp3'); 
    audioElement.pause(); 
    audioElement.load(); // This is probably the important part. 
    audioElement.play(); 
} 
+0

我已經嘗試了您的建議,但它不工作在我的問題 – User42590

1

你能試試嗎?

function audio(audio_name) { 
    var audioElement = document.createElement('audio');   
    audioElement.setAttribute('src', 'audio/' + audio_name + '.mp3'); 
    audioElement.play(); 

} 
+0

如果我在音頻功能中創建audioElement那麼之前的聲音不會在新聲音上暫停。那麼如何擺脫這一點。如果在這個函數之外創建audioElement,那麼問題描述就會出現 – User42590