Anoushka Seechurn
Anoushka Seechurn

Reputation: 2256

Pausing / Stopping a video streaming C#

Guys I am playing a video file in a media element in a WPF application(C#).

I need now to put a context menu(i.e when right click u may get options to play/pause/stop the video). I did the above as

 ContextMenu contextMenu1 = new ContextMenu();
            MenuItem vidPlay = new MenuItem() { Header = "Play" }; vidPlay.Click += new System.Windows.RoutedEventHandler(PlayVid_Click);
            MenuItem vidPause = new MenuItem() { Header = "Pause" }; vidPlay.Click += new System.Windows.RoutedEventHandler(PauseVid_Click);
            MenuItem vidStop = new MenuItem() { Header = "Stop" }; vidPlay.Click += new System.Windows.RoutedEventHandler(StopVid_Click);

and made it available on the "grid" as

 //video play pause 
            contextMenu1.Items.Add(vidPlay); contextMenu1.Items.Add(vidPause); contextMenu1.Items.Add(vidStop);

the subroutines when these are clicked are as

 //play pause routine handlers
        //'me' is the media element,s name
        void PlayVid_Click(object sender, EventArgs e)
        {
            me.Play();
        }

        void PauseVid_Click(object sender, EventArgs e)
        {
            me.Pause();
        }

        void StopVid_Click(object sender, EventArgs e)
        {
            me.Stop();
        }

However the video does not paused nor stops when any of the context menu items are clicked.

Where did I go wrong ?

Upvotes: 0

Views: 1114

Answers (1)

Anoushka Seechurn
Anoushka Seechurn

Reputation: 2256

Ok guys I think I saw where i went wrong (FEELING SILLY)

 ContextMenu contextMenu1 = new ContextMenu();
            MenuItem vidPlay = new MenuItem() { Header = "Play" }; vidPlay.Click += new System.Windows.RoutedEventHandler(PlayVid_Click);
            MenuItem vidPause = new MenuItem() { Header = "Pause" }; vidPlay.Click += new System.Windows.RoutedEventHandler(PauseVid_Click);
            MenuItem vidStop = new MenuItem() { Header = "Stop" }; vidPlay.Click += new System.Windows.RoutedEventHandler(StopVid_Click);

I forgot to correct the vidPlay in the 2nd and 3rd items when i pasted it :/ Corrected to :

   ContextMenu contextMenu1 = new ContextMenu();
                MenuItem vidPlay = new MenuItem() { Header = "Play" }; vidPlay.Click += new System.Windows.RoutedEventHandler(PlayVid_Click);
                MenuItem vidPause = new MenuItem() { Header = "Pause" }; vidPause.Click += new System.Windows.RoutedEventHandler(PauseVid_Click);
                MenuItem vidStop = new MenuItem() { Header = "Stop" }; vidStop.Click += new System.Windows.RoutedEventHandler(StopVid_Click);

and a little extra tip (that was a pain to me for some hours), u might have to use the lines

  //setting behaviour of MediaElement-This allows to INVOKE the play() / pause() / stop() methods appropriately *08 nv 2013*
                me.LoadedBehavior = MediaState.Manual;
                me.UnloadedBehavior = MediaState.Stop;

So that you do not get trouble invoking the play() , pause() and stop() methods

Upvotes: 1

Related Questions