soundcloud api用于在点击事件中播放歌曲

时间:2017-04-12 04:30:48

标签: javascript api soundcloud playback

我在播放初始歌曲的网页上嵌入了单个iframe。在这个播放器下方,我有其他带有播放按钮的歌曲列表。现在,如果点击了任何播放图标,我会更改iframe的src网址并想播放这首新歌。

为了达到目的,我在页面顶部使用了js。

<script type="text/javascript" src="https://w.soundcloud.com/player/api.js" ></script>

然后在我自己的javascript中我有以下内容。在文档准备好我有以下代码。只是为了检查一下发生了什么。

$(document).ready(function () {
var iframeElement = document.querySelector('iframe');
var widget = SC.Widget(iframeElement);
widget.bind(SC.Widget.Events.READY, function () {
    console.log('Ready');
    widget.bind(SC.Widget.Events.PLAY, function () {
        // get information about currently playing sound
        widget.getCurrentSound(function (sound) {
            console.log(sound.title);
        });
    });
    widget.bind(SC.Widget.Events.FINISH, function () {
        console.log('Finished');
    });
    widget.bind(SC.Widget.Events.PAUSE, function () {
        console.log('Paused');
    });
});
widget.seekTo(30000);
widget.toggle();
}());

现在,在播放图标上单击我正在调用以下功能。

function playcurrentpad(curplayurl) {

var iframeElement = document.querySelector('iframe');

var widget = SC.Widget(iframeElement);

widget.pause();

iframeElement.setAttribute('src', curplayurl);

widget.play();

}

现在,从上面的代码中,我可以更改嵌入式ifram的src url。但是,不会触发play()。在控制台中我得到了#SoundCloud嵌入式播放器(api-web)&#39;。那么,下面的代码出了什么问题?

1 个答案:

答案 0 :(得分:0)

我已经通过在我的音频网址中添加auto_play = true来解决了我自己的问题。这是简单的解决方案,但没有发生。