diff --git a/app/assets/src/app/components/player-container.js b/app/assets/src/app/components/player-container.js index 06dcdf8f..978b29d2 100644 --- a/app/assets/src/app/components/player-container.js +++ b/app/assets/src/app/components/player-container.js @@ -12,8 +12,8 @@ require("./player-container.css"); // registerWatchingUri and registerLikeUri may be null to disable these features // bottom bar mode can be "full", "compact" or "none" -var PlayerContainer = function(playerInfoUri, registerWatchingUri, registerLikeUri, recommendationsUri, enableAdminOverride, loginRequiredMsg, embedded, autoPlayVod, autoPlayStream, vodPlayStartTime, ignoreExternalStreamUrl, bottomBarMode, initialVodQualityId, initialStreamQualityId, disableFullScreen, placeQualitySelectionComponentInPlayer, showTitleInPlayer, disablePlayerControls, enableSmartAutoPlay) { - +var PlayerContainer = function(playerInfoUri, registerWatchingUri, registerLikeUri, recommendationsUri, enableAdminOverride, loginRequiredMsg, embedded, autoPlayVod, autoPlayStream, vodPlayStartTime, ignoreExternalStreamUrl, bottomBarMode, initialVodQualityId, initialStreamQualityId, disableFullScreen, placeQualitySelectionComponentInPlayer, showTitleInPlayer, disablePlayerControls, enableSmartAutoPlay, muted) { + muted = !!muted; var self = this; this.getEl = function() { @@ -122,7 +122,7 @@ var PlayerContainer = function(playerInfoUri, registerWatchingUri, registerLikeU $qualitySelectionItemContainer.append(qualitySelectionComponent.getEl()); - var playerController = new PlayerController(playerInfoUri, registerWatchingUri, registerLikeUri, qualitySelectionComponent, autoPlayVod, autoPlayStream, vodPlayStartTime, ignoreExternalStreamUrl, initialVodQualityId, initialStreamQualityId, disableFullScreen, placeQualitySelectionComponentInPlayer, showTitleInPlayer, disablePlayerControls, enableSmartAutoPlay, embedded); + var playerController = new PlayerController(playerInfoUri, registerWatchingUri, registerLikeUri, qualitySelectionComponent, autoPlayVod, autoPlayStream, vodPlayStartTime, ignoreExternalStreamUrl, initialVodQualityId, initialStreamQualityId, disableFullScreen, placeQualitySelectionComponentInPlayer, showTitleInPlayer, disablePlayerControls, enableSmartAutoPlay, embedded, muted); $(playerController).on("playerComponentElAvailable", function() { $playerComponent = playerController.getPlayerComponentEl(); $playerWrapper.append($playerComponent); diff --git a/app/assets/src/app/components/player.js b/app/assets/src/app/components/player.js index 0e7bf00f..7334c095 100644 --- a/app/assets/src/app/components/player.js +++ b/app/assets/src/app/components/player.js @@ -15,7 +15,7 @@ var logger = require("app/logger"); require("imports?jQuery=lib/jquery!lib/jquery.dateFormat"); require("./player.css"); -var PlayerComponent = function(coverUri, qualitySelectionComponent) { +var PlayerComponent = function(coverUri, qualitySelectionComponent, initialVolume) { qualitySelectionComponent = qualitySelectionComponent || null; var self = this; @@ -300,7 +300,7 @@ var PlayerComponent = function(coverUri, qualitySelectionComponent) { // id of timer that repeatedly calls updateAd() in order for countdown to work var updateAdTimerId = null; var wasFullScreen = null; - var previousVolume = null; + var previousVolume = typeof initialVolume !== 'undefined' ? initialVolume : null; var $container = $("
").addClass("player-component"); @@ -1059,4 +1059,4 @@ var PlayerComponent = function(coverUri, qualitySelectionComponent) { }; -module.exports = PlayerComponent; \ No newline at end of file +module.exports = PlayerComponent; diff --git a/app/assets/src/app/pages/embed/player-page.js b/app/assets/src/app/pages/embed/player-page.js index 9ab05007..29d47a47 100644 --- a/app/assets/src/app/pages/embed/player-page.js +++ b/app/assets/src/app/pages/embed/player-page.js @@ -61,6 +61,7 @@ $(document).ready(function() { var autoPlayVod = $(this).attr("data-auto-play-vod") === "1"; var autoPlayStream = $(this).attr("data-auto-play-stream") === "1"; var vodPlayStartTime = $(this).attr("data-vod-play-start-time") === "" ? null : parseInt($(this).attr("data-vod-play-start-time")); + var muted = $(this).attr("data-muted") === "1"; var ignoreExternalStreamUrl = $(this).attr("data-ignore-external-stream-url") === "1"; var bottomBarMode = $(this).attr("data-hide-bottom-bar") === "1" ? "none" : "full"; var initialVodQualityId = $(this).attr("data-initial-vod-quality-id") === "" ? null : parseInt($(this).attr("data-initial-vod-quality-id")); @@ -75,7 +76,7 @@ $(document).ready(function() { require(["app/components/player-container"], function(PlayerContainer) { // replace the player-container on the dom with the PlayerContainerComponent element when the component has loaded. - playerContainer = new PlayerContainer(playerInfoUri, registerWatchingUri, registerLikeUri, recommendationsUri, enableAdminOverride, loginRequiredMsg, embedded, autoPlayVod, autoPlayStream, vodPlayStartTime, ignoreExternalStreamUrl, bottomBarMode, initialVodQualityId, initialStreamQualityId, disableFullScreen, placeQualitySelectionComponentInPlayer, showTitleInPlayer, disablePlayerControls, enableSmartAutoPlay); + playerContainer = new PlayerContainer(playerInfoUri, registerWatchingUri, registerLikeUri, recommendationsUri, enableAdminOverride, loginRequiredMsg, embedded, autoPlayVod, autoPlayStream, vodPlayStartTime, ignoreExternalStreamUrl, bottomBarMode, initialVodQualityId, initialStreamQualityId, disableFullScreen, placeQualitySelectionComponentInPlayer, showTitleInPlayer, disablePlayerControls, enableSmartAutoPlay, muted); playerContainer.onLoaded(function() { @@ -178,4 +179,4 @@ $(document).ready(function() { }); }); -}); \ No newline at end of file +}); diff --git a/app/assets/src/app/player-controller.js b/app/assets/src/app/player-controller.js index 63708f06..32070beb 100644 --- a/app/assets/src/app/player-controller.js +++ b/app/assets/src/app/player-controller.js @@ -28,8 +28,8 @@ define([ // however whenever either of the 2 is paused by the user both autoPlay settings will be flipped to false // unless enableSmartAutoPlay is false // registerWatchingUri and registerLikeUri can be null to disable these features - PlayerController = function(playerInfoUri, registerWatchingUri, registerLikeUri, qualitiesHandler, autoPlayVod, autoPlayStream, vodPlayStartTime, ignoreExternalStreamUrl, initialVodQualityId, initialStreamQualityId, disableFullScreen, placeQualitySelectionComponentInPlayer, showTitleInPlayer, disablePlayerControls, enableSmartAutoPlay, openLinksInNewWindow) { - + PlayerController = function(playerInfoUri, registerWatchingUri, registerLikeUri, qualitiesHandler, autoPlayVod, autoPlayStream, vodPlayStartTime, ignoreExternalStreamUrl, initialVodQualityId, initialStreamQualityId, disableFullScreen, placeQualitySelectionComponentInPlayer, showTitleInPlayer, disablePlayerControls, enableSmartAutoPlay, openLinksInNewWindow, muted) { + muted = !!muted; var self = this; // callback that will always be called after all the initial data has @@ -435,7 +435,7 @@ define([ var firstLoad = false; if (playerComponent === null) { firstLoad = true; - playerComponent = new PlayerComponent(data.coverUri, placeQualitySelectionComponentInPlayer ? qualitiesHandler : null); + playerComponent = new PlayerComponent(data.coverUri, placeQualitySelectionComponentInPlayer ? qualitiesHandler : null, muted ? 0 : 100); $(self).triggerHandler("playerComponentElAvailable"); $(playerComponent).on("play", function() { // content is playing (again) diff --git a/app/controllers/embed/EmbedController.php b/app/controllers/embed/EmbedController.php index ae4d25b8..b7028c5a 100644 --- a/app/controllers/embed/EmbedController.php +++ b/app/controllers/embed/EmbedController.php @@ -100,6 +100,7 @@ private function doResponse($title, $playerInfoUri, $registerWatchingUri, $regis $showHeading = !$flushMode && (!isset($_GET['showHeading']) || $_GET['showHeading'] === "1"); $hideBottomBar = $flushMode; $ignoreExternalStreamUrl = $kioskMode || (isset($_GET['ignoreExternalStreamUrl']) && $_GET['ignoreExternalStreamUrl'] === "1"); + $muted = isset($_GET['muted']) && $_GET['muted'] === "1"; $disableFullScreen = $kioskMode || (isset($_GET['disableFullScreen']) && $_GET['disableFullScreen'] === "1"); $showTitleInPlayer = !$kioskMode && $flushMode; $enableSmartAutoPlay = !$kioskMode; @@ -114,6 +115,7 @@ private function doResponse($title, $playerInfoUri, $registerWatchingUri, $regis $view->autoPlayVod = $autoPlayVod; $view->autoPlayStream = $autoPlayStream; $view->vodPlayStartTime = is_null($vodPlayStartTime) ? "" : $vodPlayStartTime; + $view->muted = $muted; $view->disableFullScreen = $disableFullScreen; $view->showTitleInPlayer = $showTitleInPlayer; $view->initialVodQualityId = $initialVodQualityId; diff --git a/app/views/embed/player.php b/app/views/embed/player.php index 222c66e3..533102b3 100644 --- a/app/views/embed/player.php +++ b/app/views/embed/player.php @@ -9,7 +9,7 @@ -