Gör så här: Spela upp media med hjälp av en videodrawing
Om du vill spela upp en ljud- eller videofil använder du en VideoDrawing och en MediaPlayer. Det finns två sätt att läsa in och spela upp media. Det första är att använda en MediaPlayer och en VideoDrawing på egen hand, och det andra sättet är att skapa egna MediaTimeline att använda med MediaPlayer och VideoDrawing.
Not
När du distribuerar media med ditt program kan du inte använda en mediefil som en projektresurs, som en bild. I projektfilen måste du i stället ange medietypen till Content
och ange CopyToOutputDirectory
till PreserveNewest
eller Always
.
Använda en VideoDrawing och en MediaPlayer
I följande exempel används en VideoDrawing och en MediaPlayer för att spela upp en videofil en gång.
//
// Create a VideoDrawing.
//
MediaPlayer player = new MediaPlayer();
player.Open(new Uri(@"sampleMedia\xbox.wmv", UriKind.Relative));
VideoDrawing aVideoDrawing = new VideoDrawing();
aVideoDrawing.Rect = new Rect(0, 0, 100, 100);
aVideoDrawing.Player = player;
// Play the video once.
player.Play();
Använd en MediaTimeline med objekten MediaPlayer och VideoDrawing för att få ytterligare tidskontroll över mediet. Med MediaTimeline kan du ange om videon ska upprepas.
Använda en MediaTimeline
I följande exempel används en MediaTimeline med MediaPlayer- och VideoDrawing-objekt för att spela upp en video upprepade gånger.
//
// Create a VideoDrawing that repeats.
//
// Create a MediaTimeline.
MediaTimeline mTimeline =
new MediaTimeline(new Uri(@"sampleMedia\xbox.wmv", UriKind.Relative));
// Set the timeline to repeat.
mTimeline.RepeatBehavior = RepeatBehavior.Forever;
// Create a clock from the MediaTimeline.
MediaClock mClock = mTimeline.CreateClock();
MediaPlayer repeatingVideoDrawingPlayer = new MediaPlayer();
repeatingVideoDrawingPlayer.Clock = mClock;
VideoDrawing repeatingVideoDrawing = new VideoDrawing();
repeatingVideoDrawing.Rect = new Rect(150, 0, 100, 100);
repeatingVideoDrawing.Player = repeatingVideoDrawingPlayer;
Observera att när du använder en MediaTimelineanvänder du den interaktiva ClockController som returneras från egenskapen Controller för MediaClock för att styra medieuppspelningen i stället för de interaktiva metoderna för MediaPlayer.
Se även
.NET Desktop feedback