我正在使用Soundcloud的JavaScript API创建一个应用程序,该API将URL带到Soundcloud播放列表并显示音频播放器旁边的曲目列表。我可以使用API获取所有内容并使用SC.stream()
播放单个曲目,但我遇到了一个奇怪的问题:
第一次播放曲目时,“播放”和“暂停”按钮按预期工作。如果您选择了一首新曲目,请返回并再次选择第一首曲目,我希望它从头开始。相反,它会记住它停止的位置,暂停按钮不起作用。如果您在播放音频时点击“播放”按钮,则暂停按钮会再次起作用。
当选择同一首曲目两次时,如何让SC.stream()
提出新的请求(从曲目的开头开始并重置player
对象)?
以下是this working example on JSFiddle的精简版。
playTrack = function(id) {
SC.stream("/tracks/" + id).then(function(player) {
player.play();
$(".player__play").click(function(e) {
e.preventDefault();
player.play();
});
$(".player__pause").click(function(e) {
e.preventDefault();
player.pause();
});
});
};
// Play a track from the playlist
$(document).on("click", ".playlist a", function(e) {
e.preventDefault();
var trackId = $(e.currentTarget).attr("data-track-id");
playTrack(trackId);
});