Reputation: 2256
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
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