function createPlayerSilverlight(mediaUrl, linkUrl, infoButtonVisible, embedButtonVisible, engineId, assetViewId, hostedSilverlight) { return function() { return new StartPlayer_0("", mediaUrl, linkUrl, infoButtonVisible, embedButtonVisible, engineId, assetViewId, hostedSilverlight); } } function StartPlayer_0(parentId, mediaUrl, linkUrl, infoButtonVisible, embedButtonVisible, engineId, assetViewId) { this._hostname = EmePlayer.Player._getUniqueName("xamlHost"); this._mediaUrl = mediaUrl; this._linkUrl = linkUrl; this._infoButtonVisible = infoButtonVisible; this._embedButtonVisible = embedButtonVisible; this._retriedAfterClosedState = 0; this._engineId = engineId; this._assetViewId = assetViewId; var controlHost = $get(parentId || "divPlayer_0"); this._shareDiv = $get("ShareUrlDiv", controlHost.parent); this._embedDiv = $get("EmbedUrlDiv", controlHost.parent); //this._debugDiv = $get("DebugDiv", controlHost.parent); var hostedSilverlight = false; if (mediaUrl.substr(0,10) == "streaming:") { hostedSilverlight = true; } if (hostedSilverlight){ Silverlight.createHostedObjectEx({ source: "/belux/chopsticks/xaml/Videoplayer.xaml", parentElement: controlHost, id:this._hostname, properties:{ width:'100%', height:'100%', version:'1.0', background:'transparent', isWindowless:'true' }, events:{ onLoad:Function.createDelegate(this, this._handleLoad) } , initParams: "remoteMediaURL=" + this._mediaUrl } ); } else { Silverlight.createObjectEx( { source: "/belux/chopsticks/xaml/Videoplayer.xaml", parentElement: controlHost, id:this._hostname, properties:{ width:'100%', height:'100%', version:'1.0', background:'transparent', isWindowless:'true' }, events:{ onLoad:Function.createDelegate(this, this._handleLoad) } } ); } } var _minimize_Completed_event_token = null; var _isFirstPlayClick = true; StartPlayer_0.prototype= { _handleLoad: function(plugin, userContext, sender) { var remoteMediaURL = plugin.initParams; if (remoteMediaURL.length > 0) { remoteMediaURL = remoteMediaURL.substr("remoteMediaURL=".length, remoteMediaURL.length - "remoteMediaURL=".length); this._mediaUrl = remoteMediaURL; } this._player = $create( ExtendedPlayer.Player, { // properties autoPlay : false, volume : 1.0, muted : false, xxx: "" }, { // event handlers mediaEnded: Function.createDelegate(this, this._onMediaEnded), stateChanged: Function.createDelegate(this, this._onStateChanged) }, null, $get(this._hostname) ); this._player.set_placeholderImage("/belux/chopsticks/images/chopsticksdisabled_493x385.jpg"); this._player.set_mediaUrl(this._mediaUrl); var host = this._player._mediaElement.findName("MainClip"); var m = this._player._mediaElement; m.findName("Controls").opacity=0; m.findName("SharePanel").Opacity = 0; m.findName("SharePanel").isHitTestVisible = false; m.findName("ShareTextPanel").Opacity = 0; m.findName("ShareButton").addEventListener("MouseLeftButtonUp", Function.createDelegate(this, this._onShareButtonMouseButtonUp) ); m.findName("SharePanel_CloseButton").addEventListener("MouseLeftButtonUp", Function.createDelegate(this, this._onSharePanelCloseButtonMouseButtonUp) ); m.findName("SharePanel_CopyLinkButton").addEventListener("MouseLeftButtonUp", Function.createDelegate(this, this._onSharePanelCopyLinkButtonMouseButtonUp) ); m.findName("EmbedPanel").Opacity = 0; m.findName("EmbedPanel").isHitTestVisible = false; m.findName("EmbedTextPanel").Opacity = 0; if (this._embedButtonVisible) { m.findName("EmbedButton").Visibility = "Visible"; } else { m.findName("EmbedButton").Visibility = "Collapsed"; } m.findName("EmbedButton").addEventListener("MouseLeftButtonUp", Function.createDelegate(this, this._onEmbedButtonMouseButtonUp) ); m.findName("EmbedPanel_CloseButton").addEventListener("MouseLeftButtonUp", Function.createDelegate(this, this._onEmbedPanelCloseButtonMouseButtonUp) ); m.findName("EmbedPanel_CopyLinkButton").addEventListener("MouseLeftButtonUp", Function.createDelegate(this, this._onEmbedPanelCopyLinkButtonMouseButtonUp) ); m.findName("RoundPlayButton").addEventListener("MouseLeftButtonUp", Function.createDelegate(this, this._onRoundPlayButtonMouseButtonUp) ); m.findName("PlayPauseButton").addEventListener("MouseLeftButtonUp", Function.createDelegate(this, this._onPlayPauseButtonMouseButtonUp) ); m.findName("Volume").Opacity = 0; m.findName("VolumeTextPanel").Opacity = 0; m.findName("rectangle").Width = 0; m.findName("FullScreenTextPanel").Opacity = 0; m.findName("InfoTextPanel").Opacity = 0; m.findName("PlayTextPanel").Opacity = 0; m.findName("PauseTextPanel").Opacity = 0; m.findName("RoundPlayButton").Opacity = 0; if (this._infoButtonVisible) { m.findName("LinkButton").Visibility = "Visible"; } else { m.findName("LinkButton").Visibility = "Collapsed"; } m.findName("LinkButton").addEventListener("MouseLeftButtonUp", Function.createDelegate(this, this._onLinkButtonMouseButtonUp) ); var token1 = host.addEventListener("MouseEnter", Function.createDelegate(this, this._onMouseEnter) ); var token2 = host.addEventListener("MouseLeave", Function.createDelegate(this, this._onMouseLeave) ); }, _onRoundPlayButtonMouseButtonUp: function(sender, eventArgs) { this._player.togglePlayPause(); if (this._player.get_playState() == "Playing") { this._logEvent(this._engineId,2,this._assetViewId,""); } }, _onPlayPauseButtonMouseButtonUp: function(sender, eventArgs) { if (this._player.get_playState() == "Playing") { this._logEvent(this._engineId,2,this._assetViewId,""); } }, _onLinkButtonMouseButtonUp: function(sender, eventArgs) { window.top.location.href = this._linkUrl; }, _onShareButtonMouseButtonUp: function(sender, eventArgs) { var m = this._player._mediaElement; m.findName("EmbedPanel").opacity = 0; m.findName("EmbedPanel").isHitTestVisible = false; this._embedDiv.style.visibility = "hidden"; m.findName("SharePanel").Opacity = 1; m.findName("SharePanel").isHitTestVisible = true; this._shareDiv.style.visibility = "visible"; }, _onEmbedButtonMouseButtonUp: function(sender, eventArgs) { var m = this._player._mediaElement; m.findName("SharePanel").opacity = 0; m.findName("SharePanel").isHitTestVisible = false; this._shareDiv.style.visibility = "hidden"; m.findName("EmbedPanel").Opacity = 1; m.findName("EmbedPanel").isHitTestVisible = true; this._embedDiv.style.visibility = "visible"; }, _onSharePanelCloseButtonMouseButtonUp: function(sender, eventArgs) { this._shareDiv.style.visibility = "hidden"; var m = this._player._mediaElement; m.findName("SharePanel").Opacity = 0; m.findName("SharePanel").isHitTestVisible = false; }, _onEmbedPanelCloseButtonMouseButtonUp: function(sender, eventArgs) { this._embedDiv.style.visibility = "hidden"; var m = this._player._mediaElement; m.findName("EmbedPanel").Opacity = 0; m.findName("EmbedPanel").isHitTestVisible = false; }, _onSharePanelCopyLinkButtonMouseButtonUp: function(sender, eventArgs) { if( window.clipboardData && clipboardData.setData ) { clipboardData.setData("text", this._shareDiv.innerText.trim()); } }, _onEmbedPanelCopyLinkButtonMouseButtonUp: function(sender, eventArgs) { if( window.clipboardData && clipboardData.setData ) { clipboardData.setData("text", this._embedDiv.innerText.trim()); } }, _onVideoWindowMinimizedForShare: function(sender, eventArgs) { var m = this._player._mediaElement; m.findName("EmbedPanel").opacity = 0; m.findName("EmbedPanel").isHitTestVisible = false; this._embedDiv.style.visibility = "hidden"; m.findName("SharePanel_Show").begin(); this._shareDiv.style.visibility = "visible"; }, _onMouseEnter: function(sender, eventArgs) { var m = this._player._mediaElement; m.findName("Control_Show").begin(); }, _onMouseLeave: function(sender, eventArgs) { var m = this._player._mediaElement; m.findName("Control_Hide").begin(); }, _onMediaEnded: function(sender, eventArgs) { //window.setTimeout( Function.createDelegate(this, this._playNextVideo), 1000); }, _logEvent: function(engineId,eventId,assetViewId,extraInfo) { wRequest = new Sys.Net.WebRequest(); var url = String.format("/belux/chopsticks/logevent.aspx?engineid={0}&eventid={1}&assetviewid={2}&extrainfo={3}", engineId, eventId, assetViewId, extraInfo ); wRequest.set_url(url); wRequest.add_completed(Function.createDelegate(this, this._logEventOnCompleted)); wRequest.invoke(); }, _logEventOnCompleted: function(executor, eventArgs) { if (executor.get_responseAvailable()) { var response=executor.get_responseData(); var arr = response.split(";"); var eventLogId = parseFloat(arr[0].replace(",",".")); } else { if (executor.get_timedOut()) { // } else { if (executor.get_aborted()) { // } } } }, _onStateChanged: function(sender, args) { var m = sender._mediaElement; var newStr = new String(m.CurrentState).toUpperCase().trim(); //this._debugDiv.innerText = this._debugDiv.innerText + newStr + "
"; if (newStr == "STOPPED" || newStr == "PAUSED") { m.findName("RoundPlayButton").Opacity = 1; m.findName("VideoWindow_Hide").begin(); } else { //"PLAYING" "BUFFERING" "OPENING" "CLOSED" m.findName("RoundPlayButton").Opacity = 0; m.findName("VideoWindow_Hide").stop(); } if (newStr == "PLAYING") { this._logEvent(this._engineId,2,this._assetViewId,""); } if (newStr == "CLOSED") { this._retriedAfterClosedState += 1; if (this._retriedAfterClosedState < 5) { // this._debugDiv.innerText = this._debugDiv.innerText + "[" + this._mediaUrl + "]"; this._player.set_mediaUrl(this._mediaUrl); } else { m.findName("CannotPlayFileText").Visibility = "Visible"; m.findName("BufferingText").Visibility = "Collapsed"; m.findName("BufferingArea").Visibility = "Collapsed"; this._logEvent(this._engineId,1,this._assetViewId,""); } } } }