javascript - 如何使用 SoundCloud API 一次播放一首歌曲

标签 javascript jquery media-player soundcloud

我正在通过 SoundCloud 制作音乐播放器。它有一个“播放/暂停”按钮和一个播放列表。默认情况下,“播放/暂停”按钮播放播放列表中的第一首歌曲。但如果播放播放列表中的一首歌曲,那么它将是当前歌曲,并且“播放/暂停”按钮将基于此起作用。我的问题是,当我选择一首歌曲时,它开始播放,但上一首歌曲不会停止。除非我在点击另一首歌曲之前按“播放/暂停”按钮。

代码如下:

var currentTrack = $("ul li").first().attr('id');

查找单击项目的 id 值,因此该 id 将作为要播放的歌曲代码。

$(document).ready(function(){
    $("ul").on('click','li',function(){
        currentTrack = this.id;
        console.log(currentTrack);
        streamTrack(currentTrack);
    });

}); 

如果当前歌曲已经在播放,则按下按钮暂停它,如果没有播放(切换)。否则播放默认项目

var is_playing = false,
    sound;
function player(){

    if( sound ) {
        if(is_playing) {
            sound.pause();
            is_playing = false;
        } else {
            sound.play();
            is_playing = true;
            console.log(already_played);
        }
    } else {
        currentTrack = $("ul li").first().attr('id');
        console.log(currentTrack);
        streamTrack(currentTrack);
    }
} 

播放歌曲的方法。

var is_playing = true;
function streamTrack(myTrack){
    SC.stream("/tracks/" + myTrack, function(obj){
            //obj.stopAll();

            obj.play();
            sound = obj;
            is_playing = true;
    });
}

这里是在线演示:http://jsfiddle.net/danials/wZZ4D/10/

知道如何停止所有歌曲的播放并播放单击的歌曲吗?

最佳答案

你不需要为它创建一个完整的函数,只需将sound设置为全局并暂停声音或停止声音不为空。

这样做:

var sound;
$(document).ready(function(){

        $("ul").on('click','li',function(){
            currentTrack = this.id;
            console.log(currentTrack);
            if(sound)   // check if sound not null pause it
               sound.pause();
            streamTrack(currentTrack);
        });

});

UPDATED FIDDLE

关于javascript - 如何使用 SoundCloud API 一次播放一首歌曲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24469370/

相关文章:

javascript - 使用javascript在元素html标题中换行

javascript - chrome javascript内存分析器中的系统对象是什么

jquery - $(this).attr ("name") 不适用于 $.post

android - MediaPlayer 在 android ICS 中抛出异常

c# - 如何在辅助显示中设置 WPF 窗口位置

javascript - 在 Node js中获取谷歌日历事件ID

javascript - 剑道 ui : Uncaught TypeError: Cannot read property 'toLowerCase' of undefined

javascript - CORS 不适用于 jQuery 和 Java

javascript - 如何从 jquery ajax 调用中获取 js 中的 json 字符串?

android - 仅使用 MediaPlayer 和 VideoView 强制视频以纵向播放