Gewusst wie: Wiedergeben von Medien mit einer VideoDrawing

Zum Wiedergeben einer Audio- oder Videodatei verwenden Sie eine VideoDrawing und einen MediaPlayer. Es gibt zwei Methoden zum Laden und Wiedergeben von Medien. Die erste besteht in der eigenständigen Verwendung eines MediaPlayer und einer VideoDrawing, und die zweite Methode besteht im Erstellen einer eigenen MediaTimeline für die Verwendung mit dem MediaPlayer und der VideoDrawing.

Hinweis

Wenn Sie Medien mit Ihrer Anwendung verteilen, können Sie keine Mediendatei als Ressource verwenden, wie Sie das mit einem Bild machen würden. In der Projektdatei müssen Sie stattdessen den Medientyp auf Content festlegen, und CopyToOutputDirectory auf PreserveNewest oder Always.

Verwenden einer VideoDrawing und eines MediaPlayers

Das folgende Beispiel verwendet eine VideoDrawing und einen MediaPlayer, um eine Videodatei einmal wiederzugeben.

//
// 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();

Wenn Sie zusätzliche zeitliche Kontrolle über die Medienwiedergabe erlangen möchten, verwenden Sie eine MediaTimeline mit den Objekten MediaPlayer und VideoDrawing. Die MediaTimeline erlaubt Ihnen anzugeben, ob die Videowiedergabe wiederholt werden soll.

Verwenden einer MediaTimeline

Das folgende Beispiel verwendet eine MediaTimeline mit dem MediaPlayer und VideoDrawing-Objekten, um ein Video wiederholt abzuspielen.

//
// 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;

Beachten Sie, dass Sie beim Verwenden einer MediaTimeline den interaktiven ClockController zum Steuern der Medienwiedergabe verwenden, der von der Controller-Eigenschaft der MediaClock zurückgegeben wird, anstelle der interaktiven Methoden von MediaPlayer.

Weitere Informationen