/// <summary>
        /// Handles the CurrentStateChanged event of the media element.
        /// </summary>
        private void MediaPluginCurrentStateChanged(IMediaPlugin plugin, MediaPluginState mediaPluginState)
        {
            if (this.mediaPlugin.CurrentState == MediaPluginState.Stopped || this.mediaPlugin.CurrentState == MediaPluginState.Paused || this.mediaPlugin.CurrentState == MediaPluginState.Closed)
            {
                this.Playing = false;
            }

            lock (this.lastSeekPositionLock)
            {
                if (mediaPluginState != MediaPluginState.Buffering && this.lastSeekPosition.HasValue)
                {
                    plugin.Position       = this.lastSeekPosition.Value;
                    this.lastSeekPosition = null;
                }
            }

            if (this.mediaPlugin.CurrentState == MediaPluginState.Buffering)
            {
                this.isBufferStarted = true;
                this.OnBufferStart();
            }
            else if (this.isBufferStarted)
            {
                this.OnBufferEnd();
                this.isBufferStarted = false;
            }
        }
 public PlayStateChangedMessage(MediaPluginState playState, string changeCause)
 {
     this.PlayState = playState;
     if (changeCause == null)
     {
         changeCause = "";
     }
     this.StateChangeCause = changeCause;
 }
예제 #3
0
 void ActiveMediaPlugin_CurrentStateChanged(IMediaPlugin mp, MediaPluginState state)
 {
     switch (state)
     {
     case MediaPluginState.Paused:
         if (CurrentAdContext.CurrentAdState == MediaPluginState.Closed)
         {
             OnAdStopped();
         }
         break;
     }
 }
        private void ModelVisualMediaPlugin_CurrentStateChanged(IMediaPlugin mediaPlugin, MediaPluginState state)
        {
            var playableMediaData = this.manifestMediaModel.GetVisualMediaData() as ManifestPlayableMediaData;

            if (playableMediaData != null)
            {
                if (!playableMediaData.LastSeekPosition.HasValue || playableMediaData.LastSeekPosition.Value == playableMediaData.Position)
                {
                    this.View.EnablePlayButton(true);
                }
            }
        }
예제 #5
0
 private void PluginCurrentStateChanged(Microsoft.SilverlightMediaFramework.Plugins.IMediaPlugin arg1, MediaPluginState arg2)
 {
     if (arg2 == MediaPluginState.Paused)
     {
         this.ResetSeekTimer();
     }
 }
 void MediaPlugin_CurrentStateChanged(IMediaPlugin mediaPlugin, MediaPluginState state)
 {
     ActiveMediaPlugin.CurrentStateChanged -= MediaPlugin_CurrentStateChanged;
     PausePlayback(mediaPlugin);
 }
 public void OnPlayerStateChangedHandler(IMediaPlugin mediaPlugin, MediaPluginState mediaPluginState)
 {
 }
 void ActiveMediaPlugin_CurrentStateChanged(IMediaPlugin mp, MediaPluginState state)
 {
     switch (state)
     {
         case MediaPluginState.Paused:
             if (CurrentAdContext.CurrentAdState == MediaPluginState.Closed)
             {
                 OnAdStopped();
             }
             break;
     }
 }
 void MediaPlugin_CurrentStateChanged(IMediaPlugin mediaPlugin, MediaPluginState state)
 {
     ActiveMediaPlugin.CurrentStateChanged -= MediaPlugin_CurrentStateChanged;
     PausePlayback(mediaPlugin);
 }
 private void MediaPlugin_CurrentStateChanged(IMediaPlugin mediaPlugin, MediaPluginState playState)
 {
     Dispatcher.BeginInvoke(() => PlayState = playState);
 }
        private void MediaElement_CurrentStateChanged(object sender, RoutedEventArgs e)
        {
            MediaPluginState playState = ConvertToPlayState(MediaElement.CurrentState);

            CurrentStateChanged.IfNotNull(i => i(this, playState));
        }