diff --git a/dashboard-ui/scripts/htmlmediarenderer.js b/dashboard-ui/scripts/htmlmediarenderer.js
index c6831e771a..8c516fbed8 100644
--- a/dashboard-ui/scripts/htmlmediarenderer.js
+++ b/dashboard-ui/scripts/htmlmediarenderer.js
@@ -159,6 +159,12 @@
return null;
};
+ self.stop = function () {
+ if (mediaElement) {
+ mediaElement.pause();
+ }
+ };
+
self.pause = function () {
if (mediaElement) {
mediaElement.pause();
diff --git a/dashboard-ui/scripts/mediaplayer.js b/dashboard-ui/scripts/mediaplayer.js
index 511b338175..52597b6a6d 100644
--- a/dashboard-ui/scripts/mediaplayer.js
+++ b/dashboard-ui/scripts/mediaplayer.js
@@ -1338,7 +1338,7 @@
if (mediaRenderer) {
- mediaRenderer.pause();
+ mediaRenderer.stop();
$(mediaRenderer).off("ended.playnext").one("ended", function () {
@@ -1654,9 +1654,10 @@
var mediaRenderer = getAudioRenderer();
- mediaRenderer.setCurrentSrc(audioUrl);
+ // Set volume first to avoid an audible change
mediaRenderer.volume(initialVolume);
mediaRenderer.setPoster(self.getPosterUrl(item));
+ mediaRenderer.setCurrentSrc(audioUrl);
$(mediaRenderer).on("volumechange.mediaplayerevent", function () {
diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js
index c98a954d10..0f01e334b6 100644
--- a/dashboard-ui/scripts/site.js
+++ b/dashboard-ui/scripts/site.js
@@ -1958,8 +1958,8 @@ var AppInfo = {};
}
if (Dashboard.isRunningInCordova() && $.browser.android) {
- //define("audiorenderer", ["thirdparty/cordova/android/vlcplayer"]);
- define("audiorenderer", ["scripts/htmlmediarenderer"]);
+ define("audiorenderer", ["thirdparty/cordova/android/vlcplayer"]);
+ //define("audiorenderer", ["scripts/htmlmediarenderer"]);
define("videorenderer", ["scripts/htmlmediarenderer"]);
}
else {
diff --git a/dashboard-ui/thirdparty/cordova/android/vlcplayer.js b/dashboard-ui/thirdparty/cordova/android/vlcplayer.js
index 0fa3db8c8c..c48fda5e04 100644
--- a/dashboard-ui/thirdparty/cordova/android/vlcplayer.js
+++ b/dashboard-ui/thirdparty/cordova/android/vlcplayer.js
@@ -49,7 +49,7 @@
self.currentTime = function (val) {
if (val != null) {
- AndroidVlcPlayer.setPosition(val);
+ AndroidVlcPlayer.sendVlcCommand("setposition", val.toString());
return;
}
@@ -65,18 +65,22 @@
return null;
};
+ self.stop = function () {
+ AndroidVlcPlayer.sendVlcCommand("stop", null);
+ };
+
self.pause = function () {
- AndroidVlcPlayer.pause();
+ AndroidVlcPlayer.sendVlcCommand("pause", null);
};
self.unpause = function () {
- AndroidVlcPlayer.unpause();
+ AndroidVlcPlayer.sendVlcCommand("unpause", null);
};
self.volume = function (val) {
if (playerState) {
if (val != null) {
- AndroidVlcPlayer.setVolume(val);
+ AndroidVlcPlayer.sendVlcCommand("setvolume", (val * 100).toString());
return;
}
@@ -88,6 +92,7 @@
if (!val) {
self.destroy();
+ return;
}
if (type == 'audio') {
@@ -95,6 +100,8 @@
} else {
AndroidVlcPlayer.playVideoVlc(val);
}
+
+ playerState.currentSrc = val;
};
self.currentSrc = function () {
@@ -114,12 +121,43 @@
self.destroy = function () {
- AndroidVlcPlayer.destroy();
+ AndroidVlcPlayer.destroyVlc();
playerState = {};
};
self.setPoster = function (url) {
};
+
+ self.report = function (eventName, duration, position, isPaused, volume) {
+
+ var state = playerState;
+ console.log('Vlc: ' + eventName + ' - ' + position + ' - ' + duration);
+ state.duration = duration;
+ state.currentTime = position;
+ state.isPaused = isPaused;
+ state.volume = (volume || 0) / 100;
+
+ if (eventName == 'playbackstop') {
+ onEnded();
+ }
+ else if (eventName == 'volumechange') {
+ onVolumeChange();
+ }
+ else if (eventName == 'positionchange') {
+ onTimeUpdate();
+ }
+ else if (eventName == 'paused') {
+ onPause();
+ }
+ else if (eventName == 'unpaused') {
+ onPlaying();
+ }
+ else if (eventName == 'playing') {
+ onPlaying();
+ }
+ };
+
+ window.AudioRenderer.Current = self;
}
window.AudioRenderer = vlcRenderer;
diff --git a/dashboard-ui/thirdparty/jquery.unveil-custom.js b/dashboard-ui/thirdparty/jquery.unveil-custom.js
index 3fb49336cf..85504b0e43 100644
--- a/dashboard-ui/thirdparty/jquery.unveil-custom.js
+++ b/dashboard-ui/thirdparty/jquery.unveil-custom.js
@@ -18,6 +18,14 @@
// If less than 100, the search window ends up not getting images
// If less than 200, this happens on the home page
// Need to fix those before this can be set to 0
+
+ // Non-ios browsers can generally handle a higher value and still perform well
+ // This helps eliminate the draw-in effect as you scroll
+ if (!$.browser.ipad && !$.browser.iphone) {
+ return 1000;
+ //return Math.max(screen.height, screen.width, 1000);
+ }
+
return 500;
}