Практическое руководство. Воспроизведение мультимедиа с помощью 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, возвращенного из свойства ControllerMediaClock, вместо использования интерактивных методов MediaPlayer.
См. также
.NET Desktop feedback