diff --git a/gulpfile.js b/gulpfile.js
index 13f76b5d..b916bda2 100755
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -2,6 +2,7 @@ var gulp = require('gulp'),
gutil = require('gulp-util'),
uglify = require('gulp-uglify'),
//sourcemaps = require('gulp-sourcemaps'),
+ gutil = require('gulp-util'),
concat = require('gulp-concat'),
cssnano = require('gulp-cssnano');
@@ -38,7 +39,7 @@ gulp.task('js', function () {
compress: true,
enclose: true,
}))
-
+ .on('error', function (err) { gutil.log(gutil.colors.red('[Error]'), err.toString()); })
//.pipe(sourcemaps.write('maps'))
.pipe(gulp.dest('server/public/assets/dist'));
});
@@ -52,6 +53,7 @@ gulp.task('embed', function () {
compress: true,
enclose: true
}))
+ .on('error', function (err) { gutil.log(gutil.colors.red('[Error]'), err.toString()); })
//.pipe(sourcemaps.write('maps'))
.pipe(gulp.dest('server/public/assets/dist'));
});
@@ -65,6 +67,7 @@ gulp.task('token', function() {
compress: true,
enclose: true
}))
+ .on('error', function (err) { gutil.log(gutil.colors.red('[Error]'), err.toString()); })
//.pipe(sourcemaps.write('maps'))
.pipe(gulp.dest('server/public/assets/dist'));
@@ -79,6 +82,7 @@ gulp.task('callback', function () {
compress: true,
enclose: true
}))
+ .on('error', function (err) { gutil.log(gutil.colors.red('[Error]'), err.toString()); })
//.pipe(sourcemaps.write('maps'))
.pipe(gulp.dest('server/public/assets/dist'));
@@ -97,6 +101,7 @@ gulp.task('remotecontroller', function () {
compress: true,
enclose: true
}))
+ .on('error', function (err) { gutil.log(gutil.colors.red('[Error]'), err.toString()); })
//.pipe(sourcemaps.write('maps'))
.pipe(gulp.dest('server/public/assets/dist'));
diff --git a/package-lock.json b/package-lock.json
index 2b334fd4..7326dc11 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2755,6 +2755,27 @@
"optimist": "^0.6.1",
"source-map": "^0.4.4",
"uglify-js": "^2.6"
+ },
+ "dependencies": {
+ "uglify-js": {
+ "version": "2.8.29",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
+ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
+ "optional": true,
+ "requires": {
+ "source-map": "~0.5.1",
+ "uglify-to-browserify": "~1.0.0",
+ "yargs": "~3.10.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "optional": true
+ }
+ }
+ }
}
},
"har-schema": {
@@ -4920,20 +4941,6 @@
"inherits": "~2.0.1",
"isarray": "0.0.1",
"string_decoder": "~0.10.x"
- },
- "dependencies": {
- "core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
- "dev": true
- },
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
- "dev": true
- }
}
},
"rechoir": {
@@ -6057,25 +6064,6 @@
}
}
},
- "uglify-js": {
- "version": "2.8.29",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
- "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
- "optional": true,
- "requires": {
- "source-map": "~0.5.1",
- "uglify-to-browserify": "~1.0.0",
- "yargs": "~3.10.0"
- },
- "dependencies": {
- "source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
- "optional": true
- }
- }
- },
"uglify-to-browserify": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
diff --git a/package.json b/package.json
index 64074079..7275b3d3 100644
--- a/package.json
+++ b/package.json
@@ -24,7 +24,7 @@
"gulp-concat": "^2.6.1",
"gulp-cssnano": "^2.1.3",
"gulp-uglify": "^3.0.1",
- "gulp-util": "~3.0.6"
+ "gulp-util": "^3.0.8"
},
"homepage": "https://github.com/zoff-music/zoff#readme",
"dependencies": {
diff --git a/server/public/assets/js/channel.js b/server/public/assets/js/channel.js
index 14605d6b..cdd59282 100644
--- a/server/public/assets/js/channel.js
+++ b/server/public/assets/js/channel.js
@@ -197,7 +197,8 @@ var Channel = {
Player.player.setVolume(Crypt.get_volume());
} catch(e){}
try {
- Player.soundcloud_player.setVolume(embed ? 1 : Crypt.get_volume() / 100);
+ if(scUsingWidget) Player.soundcloud_player.setVolume(embed ? 1 : Crypt.get_volume());
+ else Player.soundcloud_player.setVolume(embed ? 1 : Crypt.get_volume() / 100);
} catch(e){}
}
Helper.removeClass(".video-container", "no-opacity");
diff --git a/server/public/assets/js/functions.js b/server/public/assets/js/functions.js
index 73a06a6c..6a2fc0a8 100644
--- a/server/public/assets/js/functions.js
+++ b/server/public/assets/js/functions.js
@@ -35,13 +35,23 @@ function resizeFunction() {
if(!client && !embed) {
var scPlaying = false;
var ytPlaying = false;
- try {
- ytPlaying = Player.player.getPlayerState() == YT.PlayerState.PLAYING || Player.player.getPlayerState() == YT.PlayerState.BUFFERING;
- } catch(e) {}
- try {
- scPlaying = Player.soundcloud_player.isPlaying();
- } catch(e){}
- resizePlaylistPlaying(ytPlaying || scPlaying);
+ if(scUsingWidget) {
+ Player.soundcloud_player.isPaused(function(paused) {
+ try {
+ ytPlaying = Player.player.getPlayerState() == YT.PlayerState.PLAYING || Player.player.getPlayerState() == YT.PlayerState.BUFFERING;
+ } catch(e) {}
+ scPlaying = !paused;
+ resizePlaylistPlaying(ytPlaying || scPlaying);
+ })
+ } else {
+ try {
+ ytPlaying = Player.player.getPlayerState() == YT.PlayerState.PLAYING || Player.player.getPlayerState() == YT.PlayerState.BUFFERING;
+ } catch(e) {}
+ try {
+ scPlaying = Player.soundcloud_player.isPlaying();
+ } catch(e){}
+ resizePlaylistPlaying(ytPlaying || scPlaying);
+ }
return;
}
}
@@ -185,7 +195,8 @@ function hide_native(way) {
Helper.setHtml("#chromecast_text", "Playing on
" + castSession.getCastDevice().friendlyName);
}
Player.player.setVolume(100);
- Player.soundcloud_player.setVolume(1);
+ if(scUsingWidget) Player.soundcloud_player.setVolume(100);
+ else Player.soundcloud_player.setVolume(1);
Helper.addClass("#player_overlay_text", "hide");
} else if(way == 0){
@@ -214,7 +225,8 @@ function hide_native(way) {
if(!Helper.mobilecheck()){
Player.player.setVolume(Crypt.get_volume());
Playercontrols.visualVolume(Crypt.get_volume());
- Player.soundcloud_player.setVolume(embed ? 1 : Crypt.get_volume() / 100);
+ if(scUsingWidget) Player.soundcloud_player.setVolume(embed ? 1 : Crypt.get_volume());
+ else Player.soundcloud_player.setVolume(embed ? 1 : Crypt.get_volume() / 100);
}
Helper.addClass("#player_overlay", "hide");
Helper.removeClass("#player_overlay_text", "hide");
diff --git a/server/public/assets/js/hostcontroller.js b/server/public/assets/js/hostcontroller.js
index 06a01325..e53ba090 100755
--- a/server/public/assets/js/hostcontroller.js
+++ b/server/public/assets/js/hostcontroller.js
@@ -40,7 +40,8 @@ var Hostcontroller = {
try {
Playercontrols.visualVolume(arr.value);
Player.setVolume(arr.value);
- Player.soundcloud_player.setVolume(arr.value / 100);
+ if(scUsingWidget) Player.soundcloud_player.setVolume(arr.value);
+ else Player.soundcloud_player.setVolume(arr.value / 100);
try {
localStorage.setItem("volume", arr.value);
} catch(e){}
diff --git a/server/public/assets/js/listeners.js b/server/public/assets/js/listeners.js
index bf768c11..248b6889 100755
--- a/server/public/assets/js/listeners.js
+++ b/server/public/assets/js/listeners.js
@@ -12,6 +12,9 @@ try {
} catch(e) {
_VERSION = 6;
}
+var SC_widget;
+var scUsingWidget = false;
+var SC_player;
var soundcloud_enabled = true;
var local_new_channel = false;
var sc_need_initialization = false;
@@ -257,25 +260,29 @@ window.addEventListener("DOMContentLoaded", function() {
tagSC.readyState == "complete"){
tagSC.onreadystatechange = null;
if(sc_need_initialization) {
- Player.soundcloudReady();
+ //Player.soundcloudReady();
} else {
- SC.initialize({
+ SC_player = SC;
+ SC_player.initialize({
client_id: api_key.soundcloud
}, function() {
});
}
+ Player.loadSoundCloudIframe();
}
};
} else { //Others
tagSC.onload = function(){
if(sc_need_initialization) {
- Player.soundcloudReady();
+ //Player.soundcloudReady();
} else {
- SC.initialize({
+ SC_player = SC;
+ SC_player.initialize({
client_id: api_key.soundcloud
}, function() {
});
}
+ Player.loadSoundCloudIframe();
};
}
tagSC.src = "https://connect.soundcloud.com/sdk/sdk-3.3.0.js";
@@ -283,7 +290,7 @@ window.addEventListener("DOMContentLoaded", function() {
firstScriptTagSC.parentNode.insertBefore(tagSC, firstScriptTagSC);
}
} else if(window.location.pathname == "/" && client) {
- Player.loadSoundCloudPlayer();
+ //Player.loadSoundCloudPlayer();
}
if(Helper.mobilecheck()) {
@@ -676,6 +683,7 @@ function addDynamicListeners() {
Player.soundcloud_player.unbind("play", Player.soundcloudPlay);
Player.soundcloud_player.kill();
} catch(error){}
+ if(scUsingWidget) document.querySelector("#sc_player").innerHTML = "";
socket.removeEventListener("np");
socket.removeEventListener("id");
socket.removeEventListener(id);
@@ -711,7 +719,9 @@ function addDynamicListeners() {
});
addListener("click", "#player_overlay", function(event) {
- if(videoSource == "soundcloud") Playercontrols.play_pause();
+ if(videoSource == "soundcloud") {
+ Playercontrols.play_pause();
+ }
});
/*
diff --git a/server/public/assets/js/player.js b/server/public/assets/js/player.js
index b629c364..04e24259 100755
--- a/server/public/assets/js/player.js
+++ b/server/public/assets/js/player.js
@@ -7,6 +7,7 @@ var Player = {
stopInterval: false,
fireplace: "",
np: {},
+ seeking: false,
soundcloud_dead: false,
soundcloud_player: {
setVolume: function(val) {}
@@ -301,7 +302,7 @@ var Player = {
return;
}
try {
- if(SC == null) return;
+ if(SC_player == null) return;
} catch(e) {
return;
}
@@ -314,7 +315,7 @@ var Player = {
soundcloud_loading = false;
var _autoAdd = "false";
try {
- if(SC == null || !SC.stream) return;
+ if(SC_player == null || !SC_player.stream) return;
} catch(e) {
return;
}
@@ -324,14 +325,15 @@ var Player = {
_autoAdd = "true";
Helper.removeClass("#player_loader_container", "hide");
}
- SC.stream("/tracks/" + id).then(function(player){
+
+ SC_player.stream("/tracks/" + id).then(function(player){
Player.soundcloud_player = player;
Player.soundcloud_player.bind("finish", Player.soundcloudFinish);
Player.soundcloud_player.bind("pause", Player.soundcloudPause);
Player.soundcloud_player.bind("play", Player.soundcloudPlay);
window.player = player;
Player.soundcloud_dead = false;
- SC.get('/tracks', {
+ SC_player.get('/tracks', {
ids: id
}).then(function(tracks) {
var sound = tracks[0];
@@ -342,18 +344,17 @@ var Player = {
});
if(_autoplay) {
player.play().then(function(){
+ scUsingWidget = false;
Player.soundcloud_player.setVolume(embed ? 1 : Crypt.get_volume() / 100);
Player.soundcloud_player.seek((seekTo) * 1000);
}).catch(function(e){
});
}
}).catch(function(error) {
- curr_playing = id;
- emit("skip", {error: 5, id: id, channel: chan.toLowerCase()});
- setTimeout(function() {
- toast("Seems the SoundCloud-API rate-limit has been reached..", "red lighten");
- }, 1000);
+ Player.initializeSCWidget(_autoplay, id);
});
+ //Player.initializeSCWidget(_autoplay, id);
+ //Player.initializeSCWidget(_autoplay, id);
} else {
try {
Player.soundcloud_player.seek(seekTo * 1000);
@@ -382,6 +383,46 @@ var Player = {
Helper.addClass("#player_overlay_text", "hide");
},
+ initializeSCWidget: function(_autoplay, id) {
+ try {
+ Player.soundcloud_player.unbind("finish", Player.soundcloudFinish);
+ Player.soundcloud_player.unbind("pause", Player.soundcloudPause);
+ Player.soundcloud_player.unbind("play", Player.soundcloudPlay);
+ //Player.soundcloud_player.unbind("seek", Player.soundcloudSeek);
+ }catch(e){}
+ var this_autoplay = "";
+ scUsingWidget = true;
+ if(_autoplay) this_autoplay = "?auto_play=true";
+ if(document.querySelectorAll("#scplayerElement").length == 0) {
+ var single = "single_active=false";
+ if(_autoplay) single = "&"+single;
+ else single = "?"+single;
+ document.querySelector("#sc_player").innerHTML = '';
+ Player.addSCWidgetElements();
+ } else {
+ Player.soundcloud_player.bind("finish", Player.soundcloudFinish);
+ Player.soundcloud_player.bind("pause", Player.soundcloudPause);
+ Player.soundcloud_player.bind("play", Player.soundcloudPlay);
+ Player.soundcloud_player.load('https://api.soundcloud.com/tracks/' + id + this_autoplay, {single_active: false});
+ }
+ },
+
+ addSCWidgetElements: function() {
+ try {
+ Player.soundcloud_player = SC_widget.Widget(document.querySelector("#scplayerElement"));
+ Player.soundcloud_player.seek = Player.soundcloud_player.seekTo;
+ Player.soundcloud_player.bind("finish", Player.soundcloudFinish);
+ Player.soundcloud_player.bind("pause", Player.soundcloudPause);
+ Player.soundcloud_player.bind("play", Player.soundcloudPlay);
+ } catch(e) {
+ setTimeout(function() {
+ Player.addSCWidgetElements();
+ }, 500);
+ }
+ },
+
loadVideoById: function(id, this_duration, start, end){
if(id == undefined) return;
var s;
@@ -504,7 +545,8 @@ var Player = {
castSession.setVolume(vol/100);
} else {
Player.player.setVolume(vol);
- Player.soundcloud_player.setVolume(vol / 100);
+ if(scUsingWidget) Player.soundcloud_player.setVolume(vol);
+ else Player.soundcloud_player.setVolume(vol / 100);
}
},
@@ -661,16 +703,27 @@ var Player = {
playing = false;
end_programmatically = false;
} else {
- was_stopped = true;
+ if(!scUsingWidget) was_stopped = true;
if(!embed && !client && window.location.pathname != "/") {
var scPlaying = false;
- try {
- scPlaying = Player.soundcloud_player.isPlaying();
- } catch(e){}
- try {
- resizePlaylistPlaying(Player.player.getPlayerState() == YT.PlayerState.PLAYING || scPlaying || Player.player.getPlayerState() == YT.PlayerState.BUFFERING);
- } catch(e) {
- resizePlaylistPlaying(scPlaying);
+ if(scUsingWidget) {
+ Player.soundcloud_player.isPaused(function(paused) {
+ scPlaying = !paused;
+ try {
+ resizePlaylistPlaying(Player.player.getPlayerState() == YT.PlayerState.PLAYING || scPlaying || Player.player.getPlayerState() == YT.PlayerState.BUFFERING);
+ } catch(e) {
+ resizePlaylistPlaying(scPlaying);
+ }
+ });
+ } else {
+ try {
+ scPlaying = Player.soundcloud_player.isPlaying();
+ } catch(e){}
+ try {
+ resizePlaylistPlaying(Player.player.getPlayerState() == YT.PlayerState.PLAYING || scPlaying || Player.player.getPlayerState() == YT.PlayerState.BUFFERING);
+ } catch(e) {
+ resizePlaylistPlaying(scPlaying);
+ }
}
}
if(!chromecastAvailable){
@@ -697,9 +750,19 @@ var Player = {
if(videoSource == "youtube") {
Player.soundcloud_player.pause();
} else if(soundcloud_loading){
- Player.soundcloud_player.seek((seekTo) * 1000);
- Player.soundcloud_player.setVolume(embed ? 1 : Crypt.get_volume() / 100);
- soundcloud_loading = false;
+ if(scUsingWidget) {
+ Player.soundcloud_player.getPosition(function(pos) {
+ Player.seeking = true;
+ Player.soundcloud_player.seek((seekTo) * 1000);
+ Player.soundcloud_player.setVolume(embed ? 1 : Crypt.get_volume());
+ soundcloud_loading = false;
+ })
+ } else {
+ Player.seeking = true;
+ Player.soundcloud_player.seek((seekTo) * 1000);
+ Player.soundcloud_player.setVolume(embed ? 1 : Crypt.get_volume() / 100);
+ soundcloud_loading = false;
+ }
}
if(embed) {
Helper.css("#player", "visibility", "visible");
@@ -714,10 +777,17 @@ var Player = {
}
if(!embed && !client && window.location.pathname != "/") {
var scPlaying = false;
- try {
- scPlaying = Player.soundcloud_player.isPlaying();
- } catch(e){}
- resizePlaylistPlaying(scPlaying);
+ if(scUsingWidget) {
+ Player.soundcloud_player.isPaused(function(paused) {
+ scPlaying = !paused;
+ resizePlaylistPlaying(scPlaying);
+ });
+ } else {
+ try {
+ scPlaying = Player.soundcloud_player.isPlaying();
+ } catch(e){}
+ resizePlaylistPlaying(scPlaying);
+ }
}
Helper.css("#playpause", "visibility", "visible");
@@ -739,6 +809,7 @@ var Player = {
if(u == undefined) u = "";*/
paused = false;
was_stopped = false;
+
socket.emit('pos', {channel: chan.toLowerCase()});
} else {
paused = false;
@@ -748,13 +819,13 @@ var Player = {
},
soundcloudReady: function() {
- if(SC == undefined && sc_need_initialization) {
+ if(SC_player == undefined && sc_need_initialization) {
sc_need_initialization = true;
return;
}
sc_need_initialization = false;
try {
- SC.initialize({
+ SC_player.initialize({
client_id: api_key.soundcloud
}, function() {
});
@@ -942,7 +1013,13 @@ var Player = {
dMinutes = Math.floor(duration / 60);
dSeconds = duration - dMinutes * 60;
if(videoSource == "soundcloud") {
- currDurr = Math.floor(Player.soundcloud_player.currentTime()) / 1000;
+ if(scUsingWidget) {
+ Player.soundcloud_player.getPosition(function(pos) {
+ currDurr = Math.floor(pos) / 1000;
+ });
+ } else {
+ currDurr = Math.floor(Player.soundcloud_player.currentTime()) / 1000;
+ }
} else {
currDurr = Player.player.getCurrentTime() !== undefined ? Math.floor(Player.player.getCurrentTime()) : seekTo;
}
@@ -974,6 +1051,21 @@ var Player = {
document.getElementById("bar").style.width = per+"%";
}
if(videoSource == "soundcloud") {
+ if(scUsingWidget) {
+ Player.soundcloud_player.isPaused(function(playing) {
+ playing = !playing;
+ if(Math.ceil(currDurr) + 1 > Player.np.end && playing) {
+ end_programmatically = true;
+ if(!offline) {
+ Player.soundcloud_player.pause();
+ was_stopped = false;
+ socket.emit("end", {id: video_id, channel: chan.toLowerCase()});
+ } else {
+ Player.playNext();
+ }
+ }
+ })
+ } else {
if(Math.ceil(currDurr) + 1 > Player.np.end && Player.soundcloud_player.isPlaying()) {
end_programmatically = true;
if(!offline) {
@@ -984,6 +1076,7 @@ var Player = {
Player.playNext();
}
}
+ }
} else {
if(Math.ceil(Player.player.getCurrentTime()) >= Player.np.end && (Player.player.getPlayerState() == YT.PlayerState.PLAYING)) {
end_programmatically = true;
@@ -1030,7 +1123,7 @@ var Player = {
loadSoundCloudPlayer: function() {
if(document.querySelectorAll("script[src='https://connect.soundcloud.com/sdk/sdk-3.3.0.js']").length == 1) {
try {
- Player.soundcloudReady();
+ //Player.soundcloudReady();
} catch(error) {
sc_need_initialization = true;
//console.error(error);
@@ -1043,18 +1136,54 @@ var Player = {
if (tagSC.readyState == "loaded" ||
tagSC.readyState == "complete"){
tagSC.onreadystatechange = null;
- Player.soundcloudReady();
+ SC_player = SC;
+ //Player.soundcloudReady();
+ Player.loadSoundCloudIframe();
}
};
} else { //Others
tagSC.onload = function(){
- Player.soundcloudReady();
+ SC_player = SC;
+ //Player.soundcloudReady();
+ Player.loadSoundCloudIframe();
};
}
tagSC.src = "https://connect.soundcloud.com/sdk/sdk-3.3.0.js";
firstScriptTagSC = document.getElementsByTagName('script')[0];
firstScriptTagSC.parentNode.insertBefore(tagSC, firstScriptTagSC);
}
+ },
+
+ loadSoundCloudIframe: function() {
+ if(document.querySelectorAll("script[src='/assets/sclib/scapi.js']").length == 1) {
+ try {
+ Player.soundcloudReady();
+ } catch(error) {
+ //sc_need_initialization = true;
+ //console.error(error);
+ //console.error("Seems SoundCloud script isn't correctly loaded. Please reload the page.");
+ }
+ } else {
+ tagSC = document.createElement('script');
+ if (tagSC.readyState){ //IE
+ tagSC.onreadystatechange = function(){
+ if (tagSC.readyState == "loaded" ||
+ tagSC.readyState == "complete"){
+ tagSC.onreadystatechange = null;
+ SC_widget = SC;
+ Player.soundcloudReady();
+ }
+ };
+ } else { //Others
+ tagSC.onload = function(){
+ SC_widget = SC;
+ Player.soundcloudReady();
+ };
+ }
+ tagSC.src = "/assets/sclib/scapi.js";
+ firstScriptTagSC = document.getElementsByTagName('script')[0];
+ firstScriptTagSC.parentNode.insertBefore(tagSC, firstScriptTagSC);
+ }
}
};
diff --git a/server/public/assets/js/playercontrols.js b/server/public/assets/js/playercontrols.js
index c6b6c0fd..229ae500 100755
--- a/server/public/assets/js/playercontrols.js
+++ b/server/public/assets/js/playercontrols.js
@@ -191,10 +191,22 @@ var Playercontrols = {
play_pause: function() {
if(!chromecastAvailable){
if(videoSource == "soundcloud") {
- if(!Player.soundcloud_player.isPlaying()) {
- Player.playVideo();
+ if(scUsingWidget) {
+ Player.soundcloud_player.isPaused(function(playing) {
+ playing = !playing;
+ if(!playing) {
+ Player.playVideo();
+ } else {
+ Player.pauseVideo();
+ }
+ was_stopped = true;
+ });
} else {
- Player.pauseVideo();
+ if(!Player.soundcloud_player.isPlaying()) {
+ Player.playVideo();
+ } else {
+ Player.pauseVideo();
+ }
}
} else {
if(Player.player.getPlayerState() == YT.PlayerState.PLAYING)
@@ -273,7 +285,8 @@ var Playercontrols = {
setVolume: function(vol) {
Player.setVolume(vol);
- Player.soundcloud_player.setVolume(vol / 100);
+ if(scUsingWidget) Player.soundcloud_player.setVolume(vol);
+ else Player.soundcloud_player.setVolume(vol / 100);
Playercontrols.choose_button(vol, false);
if(Player.player.isMuted())
Player.player.unMute();
@@ -355,14 +368,29 @@ var Playercontrols = {
playPause: function() {
if(videoSource == "soundcloud") {
- if(!Player.soundcloud_player.isPlaying()) {
- Helper.addClass("#play", "hide");
- Helper.removeClass("#pause", "hide");
- Player.soundcloud_player.play();
+ if(scUsingWidget) {
+ Player.soundcloud_player.isPaused(function(playing) {
+ playing = !playing;
+ if(!playing) {
+ Helper.addClass("#play", "hide");
+ Helper.removeClass("#pause", "hide");
+ Player.soundcloud_player.play();
+ } else {
+ Helper.removeClass("#play", "hide");
+ Helper.addClass("#pause", "hide");
+ Player.soundcloud_player.pause();
+ }
+ })
} else {
- Helper.removeClass("#play", "hide");
- Helper.addClass("#pause", "hide");
- Player.soundcloud_player.pause();
+ if(!Player.soundcloud_player.isPlaying()) {
+ Helper.addClass("#play", "hide");
+ Helper.removeClass("#pause", "hide");
+ Player.soundcloud_player.play();
+ } else {
+ Helper.removeClass("#play", "hide");
+ Helper.addClass("#pause", "hide");
+ Player.soundcloud_player.pause();
+ }
}
} else {
state = Player.player.getPlayerState();
diff --git a/server/public/assets/js/search.js b/server/public/assets/js/search.js
index 18c8cdf5..a662ba71 100755
--- a/server/public/assets/js/search.js
+++ b/server/public/assets/js/search.js
@@ -202,7 +202,7 @@ var Search = {
return;
}
if(keyword.length == 0) return;
- SC.get('/tracks', {
+ SC_player.get('/tracks', {
q: keyword
}).then(function(tracks) {
var pre_result = document.createElement("div");
diff --git a/server/public/assets/sclib/scapi.js b/server/public/assets/sclib/scapi.js
new file mode 100644
index 00000000..b2bdbced
--- /dev/null
+++ b/server/public/assets/sclib/scapi.js
@@ -0,0 +1 @@
+var SC=SC||{};SC.Widget=function(n){function t(r){if(e[r])return e[r].exports;var o=e[r]={exports:{},id:r,loaded:!1};return n[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var e={};return t.m=n,t.c=e,t.p="",t(0)}([function(n,t,e){function r(n){return!!(""===n||n&&n.charCodeAt&&n.substr)}function o(n){return!!(n&&n.constructor&&n.call&&n.apply)}function i(n){return!(!n||1!==n.nodeType||"IFRAME"!==n.nodeName.toUpperCase())}function a(n){var t,e=!1;for(t in b)if(b.hasOwnProperty(t)&&b[t]===n){e=!0;break}return e}function s(n){var t,e,r;for(t=0,e=I.length;t-1,a=new _(n),I.push(new y(a,n,o)),a)},O.Events=L,window.SC=window.SC||{},window.SC.Widget=O,y=function(n,t,e){this.instance=n,this.element=t,this.domain=u(t.getAttribute("src")),this.isReady=!!e,this.callbacks={}},_=function(){},_.prototype={constructor:_,load:function(n,t){if(n){t=t||{};var e=this,r=p(this),o=r.element,i=o.src,a=i.substr(0,i.indexOf("?"));r.isReady=!1,r.playEventFired=!1,o.onload=function(){e.bind(L.READY,function(){var n,e=r.callbacks;for(n in e)e.hasOwnProperty(n)&&n!==L.READY&&f(N.ADD_LISTENER,n,r.element);t.callback&&t.callback()})},o.src=R(a,n,t)}},bind:function(n,t){var e=this,r=p(this);return r&&r.element&&(n===L.READY&&r.isReady?setTimeout(t,1):r.isReady?(d(n,t,r),f(N.ADD_LISTENER,n,r.element)):d(C,function(){e.bind(n,t)},r)),this},unbind:function(n){var t,e=p(this);e&&e.element&&(t=E(n,e),n!==L.READY&&t&&f(N.REMOVE_LISTENER,n,e.element))}},S(_.prototype,l(b)),S(_.prototype,l(P),!0)},function(n,t){t.api={LOAD_PROGRESS:"loadProgress",PLAY_PROGRESS:"playProgress",PLAY:"play",PAUSE:"pause",FINISH:"finish",SEEK:"seek",READY:"ready",OPEN_SHARE_PANEL:"sharePanelOpened",CLICK_DOWNLOAD:"downloadClicked",CLICK_BUY:"buyClicked",ERROR:"error"},t.bridge={REMOVE_LISTENER:"removeEventListener",ADD_LISTENER:"addEventListener"}},function(n,t){n.exports={GET_VOLUME:"getVolume",GET_DURATION:"getDuration",GET_POSITION:"getPosition",GET_SOUNDS:"getSounds",GET_CURRENT_SOUND:"getCurrentSound",GET_CURRENT_SOUND_INDEX:"getCurrentSoundIndex",IS_PAUSED:"isPaused"}},function(n,t){n.exports={PLAY:"play",PAUSE:"pause",TOGGLE:"toggle",SEEK_TO:"seekTo",SET_VOLUME:"setVolume",NEXT:"next",PREV:"prev",SKIP:"skip"}}]);
diff --git a/server/public/partials/channel/players.handlebars b/server/public/partials/channel/players.handlebars
index 57c37cc4..50208d42 100644
--- a/server/public/partials/channel/players.handlebars
+++ b/server/public/partials/channel/players.handlebars
@@ -4,7 +4,7 @@
{{/unless}}
-
+