我目前正在处理我的音乐博客,而我正试图让小部件在上一个完成时启动。我同时拥有soundcloud和youtube小部件,但优先考虑的是为soundcloud小部件实现此功能。
每个iframe都有2个类.widget& .soundcloud_widget用于soundcloud和.widget& .youtube_widget for youtube。最后,每个小部件按照幻影的顺序获取id“widget1”,“widget2”等。
想法是获取事件“SC.Widget.Events.FINISH”,获取相应小部件的id,“递增”它,然后进行下一个播放。
不幸的是,我正在努力使用javascript& soundcloud的文档,我真的很感激一些帮助!
提前致谢
PS:这是执行上述操作的代码,我没有其他任何可用的代码......
<script type="text/javascript">
function autoPlayInitiate () {
var i=1;
$("iframe[src^='https://w.soundcloud.com/']").addClass("widget soundcloud_widget");
$("iframe[src^='//www.youtube.com']").addClass("widget youtube_widget");
$('.widget').each(function(){
$(this).attr('id','widget'+i);
i++;
});
}
window.onload = autoPlayInitiate;
$(document).ready(function () {
var ScWidget = $('.soundcloud_widget');
}
</script>
答案 0 :(得分:0)
首先,我认为解决此问题的最简单方法是选择其中一个播放器(youtube或soundcloud)并使用播放列表功能来展示您的声音。
这是一个在Sound Cloud中使用播放列表的实际示例
http://runnable.com/UuhEs3Yq2_8hAACT/embbed-soundcloud-widget-using-javascript
相关代码:
function embed (id) {
SC.oEmbed("http://soundcloud.com/" + id // user or playlist to embed
, { color: "ff0066"
, auto_play: true
, maxwidth: 500
, maxheight: 1000
, show_comments: true } // options
, document.getElementById("scWidget") // what element to attach player to
);
}
$(document).ready(
function () {
embed("dj-faze");
}
);
但是,如果您希望走很长的路线,您将需要熟悉小部件API:
http://developers.soundcloud.com/docs/api/html5-widget#
bind(eventName,listener)是你最感兴趣的东西
var iframeElement = document.querySelector('iframe');
var iframeElementID = iframeElement.id;
var widget = SC.Widget(iframeElement);
widget.bind(SC.Widget.Events.FINISH, function () {
alert('add code to play next song here')
});
一旦网站完成维护,我将尝试在runnable上建立一个新的例子