我目前正在使用http://ifttt.com从SoundCloud中获取我的公共收藏夹并将其发布到我的Wordpress网站(http://diversesounds.co.uk)。
IFTTT在我的网站上创建了一个帖子,内容如下:
<div class="trackUrl" id="(IFTTT then grabs the Track URL and places it here)">
然后我有以下JS块;
<script src="//connect.soundcloud.com/sdk.js"></script>
<script>
<?php
if(have_posts()): while (have_posts()) : the_post(); ?>
<?php
// Exploding the content to get track url from Div ID
$theContent = get_the_content();
$explode = explode('"', $theContent);
$trackUrl = $explode[3];
?>
SC.oEmbed(
"<?php echo $trackUrl; ?>",
{
color: "494e72",
show_comments: false
},
document.getElementById("<?php echo $trackUrl; ?>")
);
<?php endwhile; endif; ?>
上面的代码完美无缺,但我希望它能在完成第一个手动播放曲目后自动播放下一曲目。
我几乎不知道JS(我从SoundCloud Docs中抓取了上面的代码,所以请光临我。
由于 - 乔
答案 0 :(得分:1)
您可以为onMediaEnd事件添加一个监听器,并尝试使用该监听器播放下一首曲目:
soundcloud.addEventListener('onMediaEnd', function(player, data) {
// find the next player here and use the API method api_play()
});
文档:http://developers.soundcloud.com/docs/widget#widget-events
你可能需要换掉嵌入方法。他们的JS包装器在GitHub上
答案 1 :(得分:0)
请参阅HTML5 Widget API documentation。
您可以将事件处理程序附加到FINISH
个事件。但是,我的建议是使用不同的方法,并使用Audio5JS,SoundCloud's own JS SDK或kilokeith/soundcloud-soundmanager-player。然后,您可以自己构建UI并使用播放器播放所有音乐。
不同之处在于每个小部件都是一个非常复杂的单页JS应用程序,并不是真正用于您尝试使用它的目的。
<强> UPD 即可。示例流程(刚出头):
collect references to all widget iframes by DOM class
store them in array `widgets`
initialise API wrapper with first element of that array `SC.Widget(widgets[0])`
attach event handler `finishHandler` to `FINISH` event
`finishHandler` needs to
initialise API wrapper `SC.Widget(widgets[1])` and start playback with this new widget
attach the same `finishHandler` to `FINISH` event of the newly initialised widget
shift first widget from the array `widgets.shift()`
这可能过于简单和天真。但也许它仍然会帮助你。