【发布时间】:2011-08-08 23:19:22
【问题描述】:
我在一个页面上有几个 HTML5 音频元素,我正在使用 jQuery 来播放和暂停它们。播放和暂停功能可以正常工作,但可以同时播放所有曲目。
如何重写此代码,以便一次只能播放一首歌曲?也就是说..如果一个正在播放并且您点击另一个,暂停前一个并播放最近的点击。
谢谢!
HTML:
<div id="music_right">
<div class="thumbnail" id="paparazzi">
<a class="playback">
<img class="play" src="http://www.lucisz.com/imgs/play.png" />
</a>
<audio>
<source src="../audio/fernando_garibay_paparazzisnlmix.ogg" type="audio/ogg" />
<source src="../audio/fernando_garibay_paparazzisnlmix.mp3" type="audio/mpeg" />
Your browser does not support HTML5 audio.
</audio>
</div>
<div class="thumbnail" id="danceinthedark">
<a class="playback">
<img class="play" src="http://www.lucisz.com/imgs/play.png" />
</a>
<audio>
<source src="../audio/fernando_garibay_danceinthedark.ogg" type="audio/ogg" />
<source src="../audio/fernando_garibay_danceinthedark.mp3" type="audio/mpeg" />
Your browser does not support HTML5 audio.
</audio>
</div>
<div class="thumbnail" id="bornthisway">
<a class="playback">
<img class="play" src="http://www.lucisz.com/imgs/play.png" />
</a>
<audio>
<source src="../audio/fernando_garibay_bornthisway.ogg" type="audio/ogg" />
<source src="../audio/fernando_garibay_bornthisway.mp3" type="audio/mpeg" />
Your browser does not support HTML5 audio.
</audio>
</div>
</div>
JavaScript:(有效,但单独播放/暂停)
$(function() {
$(".playback").click(function(e) {
e.preventDefault();
var song = $(this).next('audio').get(0);
if (song.paused)
song.play();
else
song.pause();
});
});
JavaScript:(我的丑陋概念)
$(function() {
$(".playback").click(function(e) {
e.preventDefault();
var song = $(this).next('audio').get(0);
if (song.paused)
song.play();
song.not($(this).pause();
else
song.pause();
});
});
【问题讨论】:
-
你试过什么?...没有人会为你写。好吧,大多数人就是这样。
-
@NeXXeuS。我听到你了。用粗略的语法尝试了一些不同的东西。 If/then 语句对我来说很难理解。我会将我的概念添加到问题中
标签: javascript jquery html audio playback