Поделиться через


Практическое руководство. Воспроизведение мультимедиа с помощью VideoDrawing

Чтобы воспроизвести звуковой или видеофайл, следует использовать VideoDrawing и MediaPlayer. Есть два способа загрузки и воспроизведения мультимедиа. Первый заключается в независимом использовании MediaPlayer и VideoDrawing, а второй способ состоит в создании собственной временной шкалы MediaTimeline для использования с MediaPlayer и VideoDrawing.

Примечание.

При распространении мультимедиа с приложением, в отличие от изображений, файл мультимедиа нельзя использовать как ресурс проекта. Вместо этого в файле проекта необходимо задать тип мультимедиа как Content и установить CopyToOutputDirectory в значение PreserveNewest или Always.

Использование VideoDrawing и MediaPlayer

В следующем примере для однократного воспроизведения видеофайла используются VideoDrawing и MediaPlayer.

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

Чтобы получить дополнительные возможности управления временем для мультимедиа, можно использовать MediaTimeline с объектами MediaPlayer и VideoDrawing. Временная шкала MediaTimeline позволяет указать, следует ли повторять видео.

Использование MediaTimeline

В следующем примере используется MediaTimeline с MediaPlayer объектами и VideoDrawing объектами для многократного воспроизведения видео.

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

Обратите внимание, что при использовании MediaTimeline для управления воспроизведением мультимедиа применяется интерактивный ClockController, возвращаемый из свойства Controller объекта MediaClock, а не интерактивные методы объекта MediaPlayer.

См. также