在此處回答了一個類似的問題,即關於帶文本鏈接的單個音頻文件。我需要知道如何在同一個網頁上播放音頻文件列表,每個人只使用「監聽」文本鏈接作爲播放按鈕,在播放時更改爲「暫停」鏈接。這裏是我用來讓一個文件工作的代碼。問題是,當我簡單地使用其他音頻的不同id標籤複製/粘貼相同的代碼時,它不起作用。無論我按哪個鏈接,它都播放一個文件。我的代碼如下所示:使用文本鏈接播放多個音頻文件
<audio id="clip1" preload='auto'>
<source src='audio/clip1.mp3' type='audio/mp3' />
</audio>
<audio id="clip2" preload='auto'>
<source src='audio/door.mp3' type='audio/mp3' />
</audio>
<a href="javascript:null()" id="door-control">Listen</a>
<a href="javascript:null()" id="bridge-control">Listen</a>
<script type="text/javascript">
var yourAudio = document.getElementById('bridge'),
ctrl = document.getElementById('bridge-control');
ctrl.onclick = function() {
// Update the Button
var pause = ctrl.innerHTML === 'Pause';
ctrl.innerHTML = pause ? 'Listen' : 'Pause';
// Update the Audio
var method = pause ? 'pause' : 'play';
yourAudio[method]();
// Prevent Default Action
return false;
};
</script>
<script type="text/javascript">
var yourAudio = document.getElementById('door'),
ctrl = document.getElementById('door-control');
ctrl.onclick = function() {
// Update the Button
var pause = ctrl.innerHTML === 'Pause';
ctrl.innerHTML = pause ? 'Listen' : 'Pause';
// Update the Audio
var method = pause ? 'pause' : 'play';
yourAudio[method]();
// Prevent Default Action
return false;
};
</script>
所以一個鏈接播放文件就好了,但另一個鏈接沒有。它扮演第一個好像它是第一個鏈接。任何解決方案,讓我可以讓他們只播放相應的音頻文件,並在開始時暫停其他播放?謝謝!
因爲在這兩種腳本您正在使用的名字'ctrl'兩者的鏈接,當你他們使用的匿名函數'ctrl',所以每個功能將使用什麼是CTRL設置爲最後的 –
這是因爲你定義了全局變量'yourAudio'和'ctrl'兩次。 –
請參閱[fiddle](http://jsfiddle.net/CTZMp/)進行更正 – linstantnoodles