Soundcloud/Youtube Pausing Interaction
HTML
<script src="https://w.soundcloud.com/player/api.js"></script>
<span class="soundcloud_embed" id="soundcloud_post_312">
<iframe id="ui-id-1" width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/163100334&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=false"></iframe>
</span>
<span class="youtube_embed" id="youtube_post_309">
<iframe id="ui-id-2" width="528" height="190" src="//www.youtube.com/embed/Y3CYKXBEtf0" frameborder="0" allowfullscreen></iframe>
</span>
JavaScript
var playerCurrentlyPlaying = {
"api": null,
"frameID": null
};
var players = {
"yt": {},
"sc": {}
};
function onYouTubeIframeAPIReady() {
$(".youtube_embed iframe").each(function () {
players["yt"][$(this).attr('id')] = new YT.Player($(this).attr('id'), {
events: {
'onStateChange': onYTPlayerStateChange
}
});
});
}
(function () {
$(".soundcloud_embed iframe").each(function () {
var frameid = $(this).attr('id');
players["sc"][frameid] = {};
players["sc"][frameid] = {
"widget": SC.Widget(document.getElementById(frameid)),
"firstplay": true
};
players["sc"][frameid]["widget"].bind(SC.Widget.Events.READY, function () {
players["sc"][frameid]["widget"].bind(SC.Widget.Events.PLAY, function () {
onSCPlay(frameid, SC.Widget.Events.PLAY);
});
players["sc"][frameid]["widget"].bind(SC.Widget.Events.PLAY_PROGRESS, function () {
onSCPlay(frameid, SC.Widget.Events.PLAY_PROGRESS);
});
});
});
}());
pauseCurrentPlayer = function () {
var api = playerCurrentlyPlaying["api"],
frameid = playerCurrentlyPlaying["frameID"];
switch (api) {
case "yt":
players[api][frameid].stopVideo();
break;
case "sc":
players[api][frameid]["widget"].stop();
break;
}
};
onYTPlay = function (frameid) {
if (playerCurrentlyPlaying["frameID"] != frameid && playerCurrentlyPlaying["frameID"] != null) {
pauseCurrentPlayer();
}
playerCurrentlyPlaying["api"] = "yt";
playerCurrentlyPlaying["frameID"] = frameid;
};
onSCPlay = function (frameid, event) {
if (event == SC.Widget.Events.PLAY || players["sc"][frameid]["firstplay"] == true) {
if (playerCurrentlyPlaying["api"] == "yt") { // because any...