Laden...

Mediaelement, feuert kein Mediaendet Event

Erstellt von cshapr vor 16 Jahren Letzter Beitrag vor 16 Jahren 2.045 Views
C
cshapr Themenstarter:in
1 Beiträge seit 2007
vor 16 Jahren
Mediaelement, feuert kein Mediaendet Event

Hallo zusammen,

ich möchte in WPF ein MediaElement mit immer neuen Videos bestücken.
Das konkrete Problem ist dass das das Completed event des Mediaelements nach einigen Durchläufen nicht mehr feuert.
Führe ich den unten stehenden Code per Tastendruck aus kommt wieder eins der beiden Videos.

Daher meine Vermutung am Code liegts nicht das das MediaEnded plötzlich (nach ca. 1-50 Durchläufen) nicht mehr feuert.
Vielleicht ein bug ? Währe für jede Hilfe Dankbar.

Code:

void mt_Completed(object sender, EventArgs e)
        {
            MediaTimeline mt;
            Random r = new Random();
            if (r.Next(0, 2) == 1)
            {
                mt = new MediaTimeline(new Uri(@"halloween.wmv", UriKind.Relative));
            }
            else
            {
                mt = new MediaTimeline(new Uri(@"video2.wmv", UriKind.Relative));
            }

        
            //mt.Completed +=new EventHandler(mt_Completed);
            Storyboard.SetTargetName(mt, "helloween_wmv");
            
            st.Children.Add(mt);    
            //st.Completed += new EventHandler(st_Completed);
            st.FillBehavior = FillBehavior.Stop;
            st.CurrentStateInvalidated += new EventHandler(st_CurrentStateInvalidated);
            BeginStoryboard(st);
        }

XAML:

<MediaElement Margin="305,88,87,197" Source="playlist.wpl" RenderTransformOrigin="0.5,0.5">
			<MediaElement.RenderTransform>
				<TransformGroup>
					<ScaleTransform ScaleX="1" ScaleY="1"/>
					<SkewTransform AngleX="0" AngleY="0"/>
					<RotateTransform Angle="-19.767"/>
					<TranslateTransform X="0" Y="0"/>
				</TransformGroup>
			</MediaElement.RenderTransform>
		</MediaElement>
U
1.688 Beiträge seit 2007
vor 16 Jahren

Auch wenn's schon ein bisschen her ist:
sind die Zeilen


//mt.Completed +=new EventHandler(mt_Completed);
//st.Completed += new EventHandler(st_Completed);

absichtlich auskommentiert?

Außerdem sieht es so aus, als würde
st.Children.Add(mt);
in jedem Durchlauf eine neue MediaTimeline hinzufügen.