2010-08-04 16 views
5

Tengo un MediaElement donde la fuente está obligado a algunos datosforma más sencilla de repetir un video en un MediaElement

<MediaElement Source='{Binding Something}' /> 

¿Cuál es la forma más sencilla de tener la repetición de vídeo? Idealmente, MediaElement tendría una propiedad de comportamiento repetitivo.

<MediaElement RepeatBehavior='Forever' ... /> 

Pero no puedo encontrar una propiedad.

Respuesta

11

Debe agregar un Guión gráfico al MediaElement. Vea el ejemplo a continuación:

<MediaElement Name="myMediaElement" > 
     <MediaElement.Triggers> 
     <EventTrigger RoutedEvent="MediaElement.Loaded"> 
      <EventTrigger.Actions> 
      <BeginStoryboard> 
       <Storyboard> 

       <!-- The MediaTimeline has a RepeatBehavior="Forever" which makes the media play 
        over and over indefinitely.--> 
       <MediaTimeline Source="media\tada.wav" Storyboard.TargetName="myMediaElement" 
       RepeatBehavior="Forever" /> 

       </Storyboard> 
      </BeginStoryboard> 
      </EventTrigger.Actions> 
     </EventTrigger> 
     </MediaElement.Triggers> 
    </MediaElement> 
+2

http://msdn.microsoft.com/en-us/library/ms741866.aspx – Quincy

3

Sé que es un poco tarde, pero no pude ponerme a trabajar con el ejemplo de MSDN. Así que después de la investigación que encontré este proyecto: WPF Media Kit, simplemente haga clic en el enlace Buscar en la última versión en el lado derecho de la pantalla. Ingresará el código de la aplicación de muestra. Me ha gustado esta biblioteca porque un bucle era tan simple como:

MediaUriElement MyPlayer.Loop = True; 

o <DirectShowControls:MediaUriElement x:Name="MyPlayer" Loop="True" />

Espero que esto ayude a alguien más.

¡Recuerdos!

6

Lo hice funcionar estableciendo el UnloadedBehavior en MediaState. Manual y el siguiente código:

private void mediaElement_OnMediaEnded(object sender, RoutedEventArgs e) 
{ 
    mediaElement.Position = new TimeSpan(0,0,1); 
    mediaElement.Play(); 
} 

Ajuste de la posición de trabajo aún no ha Cero ...

+4

Llegué a esta pregunta para responder a la misma respuesta, así que debo mencionar que establecer la posición en 'TimeSpan.Zero 'funciona bien. – MasterMastic

+1

Me probé y descubrí que funciona bien con TimeSpan.Zero. Nice Ken – akatran

+0

+ MasterMastic TimeSpan.Zero no funciona para todos los casos. – Evgeny

0

Adición de mediaElement.Position = new TimeSpan(0,0,1) al método reproductor multimedia no (antes de jugar los medios de comunicación) tienen ningún efecto en lugar como sugiere MasterMastic y Guido Zanon. Creé el evento MediaElement para MediaEnded con el contenido dado y funcionó.

Cuestiones relacionadas