Asked by:
MediaEnded event not firing

General discussion
-
I am playing mp3-files with a MediaElement and the MediaEnded event is not firing every time.
I found a post that it could happened if you try to play audio only files and have ScrubbingEnabled set to true so I set it to false but it still dose not fire the MediaEnded event.
It seems to happen randomly. I don´t find any logic in this./Christer
- Changed type Marco Zhou Monday, July 21, 2008 10:28 AM OP doesn't revert back
Monday, July 14, 2008 5:18 PM
All replies
-
I found out that the MediaElement never stops playing the sound. The duration just keeps on going and never stops to increase even thou the sound is very short (around one second)
Anyone know what to do???
Is there another way to play mp3 files. I have a clickonce application and I need to keep the trust level down as much as possible.
/ChristerTuesday, July 15, 2008 2:15 PM -
I cannot reproduce this problem, I use MediaPlayer to playback audio, if you don't play back video, you actually don't need to use MediaElement at all, here is my test code:
mediaPlayer = new MediaPlayer();
mediaPlayer.MediaEnded += delegate { MessageBox.Show("Media Ended"); };
mediaPlayer.Open(new Uri(@"C:\biyege.mp3"));
mediaPlayer.Play();
Thanks
Thursday, July 17, 2008 3:56 AM -
We are changing the issue type to “Comment” because you have not followed up with the necessary information. If you have more time to look at the issue and provide more information, please feel free to change the issue type back to “Question” by clicking the "Options" link at the top of your post, and selecting "Change Type" menu item from the pop menu. If the issue is resolved, we will appreciate it if you can share the solution so that the answer can be found and used by other community members having similar questions.
Thank you!
Monday, July 21, 2008 10:28 AM -
I am having the same problem...
Currently I have 11 mediaelements inside borders in my WPF application. (Silverlight 2 beta with visual studio 2008 and expression blend 2.5 june preview)
All of them start up just fine and also, loop fine for the first couple of times...then a random mediaelement will freeze up. I currently am looking for the mediaended event to repeat playback...
Here is my current code:
Note:the event handler for all of the Mediaelements is ME_11_MediaEnded, all mes are set to manual on load, and the scrubbing is disabled
.vb fileImports System Imports System.IO Imports System.Net Imports System.Windows Imports System.Windows.Controls Imports System.Windows.Data Imports System.Windows.Media Imports System.Windows.Media.Animation Imports System.Windows.Navigation Partial Public Class Window1 Private zerospan As New TimeSpan(0, 0, 0) Public Sub New() MyBase.New() Try Me.InitializeComponent() ' Insert code required on object creation below this point. Catch ex As Exception End Try End Sub Private Sub StartAllMEs() ME_1A.Play() ME_1B.Play() ME_Cup.Play() ME_L4.Play() ME_L5.Play() ME_L6.Play() ME_L7.Play() ME_L8.Play() ME_L9.Play() ME_L10.Play() ME_L11.Play() End Sub Private Sub Window1_Loaded(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles Me.Loaded StartAllMEs() End Sub Private Sub ME_L11_MediaEnded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) CType(sender, MediaElement).Position = zerospan CType(sender, MediaElement).Play() End Sub End Class - Edited by slam121212 Saturday, August 2, 2008 4:31 AM for help
Saturday, August 2, 2008 4:24 AM -
I am also finding that the MediaEnded event is not being raised the way I expect it to. It is for me at least consistent though - if I create the MediaPlayer object in the same thread that owns the UI, it works. If I create the MediaPlayer object in a worker thread, it never raises the event or for that matter an exception to indicate a problem. I expect that restructuring the code to have the worker thread queue up media playback requests for the UI thread to actually trigger will be the only way to get the MediaEnded events to occur reliably.Wednesday, September 17, 2008 4:27 AM
-
Just in case someone reads this: The MediaPlayer events aren't fire probably because you don't have Dispatcher running in your worker thread.Monday, August 1, 2011 1:55 PM
-
How do I make sure Dispatcher is running ? I m instantiating a MEdiaElement object in the constructor and then
registering the event but it doesn't seem to get called.
BlankPage::BlankPage() { InitializeComponent(); MainSong = ref new MediaElement(); MainSong->AutoPlay = false; MainSong->MediaEnded += ref new RoutedEventHandler(this, &Application2::BlankPage::StateChangedEventHandler); }
Sunday, March 11, 2012 4:38 AM