我正在使用soundmanager2播放一些已上传的歌曲。但是,只播放第一首歌。除了第一首歌之外,播放按钮根本不适用于任何其他歌曲。
Javascript / html:
<% @tracks.each do |track| %>
<tr>
<td id="tracktitle"><%= track.title %></td>
<td id="trackartist"><%= track.artist %></td>
<td id="trackplayer"><%= image_tag 'play-button.gif', :id=>'play-button' %>
<%= image_tag 'stop-button.gif', :id=>'stop-button' %>
<script>
soundManager.setup({
url: '/swf/',
flashVersion: 9, // optional: shiny features (default = 8)
// optional: ignore Flash where possible, use 100% HTML5 mode
// preferFlash: false,
onready: function() {
soundManager.createSound({
id: 'mySound',
url: '<%= track.track_file %>',
autoLoad: true,
autoPlay: false,
onload: function() {
//alert('The sound '+this.id+' loaded!');
},
volume: 50
});
}
});
</script>
Tracks.js:
$(document).ready(function () {
$('#play-button').click(function() {
soundManager.play('mySound');
$(this).toggle();
$('#stop-button').toggle();
});
$('#stop-button').click(function() {
soundManager.stop('mySound');
$(this).toggle();
$('#play-button').toggle();
});
});
可能是一个非常新的问题,但任何人都可以找到我出错的地方吗?提前谢谢了。
答案 0 :(得分:0)
好像你有几个具有相同#play-button
ID的播放按钮,对吧?
我可能错了,但据我所知,如果选择器是id,jQuery选择器将只查找第一个匹配元素。这意味着对于音轨2,3 ... n,选择器根本不起作用。
您应该能够使用像.play-button
这样的类来触发toggle()动作,因为类的每个匹配元素都会触发jQuery选择器。但是,您可能还需要一种方法来区分各个轨道 - 如果它们都被称为mySound
,SoundManager如何知道要播放的轨道?这是我正在处理的一个问题,最初引发了我这个问题。