- Класс MediaPlayer
- Embedding the Windows Media Player Control in a Visual Basic .NET Solution
- Add the Video Window
- Add Two Buttons and Adjust the Form
- Add the Play Code
- Add the Stop Code
- Add Error-handling
- Отображение видео на сайте веб-страницы ASP.NET (Razor) Displaying Video in an ASP.NET Web Pages (Razor) Site
- Версии программного обеспечения, используемые в этом руководстве Software versions used in the tutorial
- Введение Introduction
- Выбор видеопроигрывателя Choosing a Video Player
- Проигрыватель Flash Player The Flash Player
- Проигрыватель MediaPlayer The MediaPlayer Player
- Проигрыватель Silverlight The Silverlight Player
- Типы MIME MIME Types
- Воспроизведение видео Flash (. SWF) Playing Flash (.swf) Videos
- Воспроизведение видеороликов MediaPlayer ( . wmv) Playing MediaPlayer (.wmv) Videos
- Воспроизведение видео Silverlight Playing Silverlight Videos
Класс MediaPlayer
Классы SoundPlayer, SoundPlayerAction и SystemSounds легко использовать, но все они относительно маломощные. В современном мире вместо исходного формата WAV намного более распространен сжатый формат звука МРЗ для всех целей, за исключением простейших звуков. Для воспроизведения МРЗ-аудио или MPEG-видео предназначены классы MediaPlayer и MediaElement. Оба они зависят от ключевых элементов технологии, предоставленной проигрывателем Windows Media.
Класс MediaPlayer (находящийся в специфичном для WPF пространстве имен System.Windows.Media) — это WPF-эквивалент класса SoundPlayer. Хотя ясно, что он не настолько легковесен, все же он работает примерно так же. Объект MediaPlayer создается, с помощью метода Open() загружается аудиофайл, а вызовом метода Рlау() запускается асинхронное воспроизведение. (Опция синхронного воспроизведения не предусмотрена.) Рассмотрим пример:
Существует несколько важных деталей, на которые следует обратить внимание в этом примере:
MediaPlayer создается вне обработчика событий, поэтому он существует на протяжении жизненного цикла окна. Причина в том, что метод MediaPlayer.Close() вызывается тогда, когда объект MediaPlayer удаляется из памяти. Если создать объект MediaPlayer в обработчике событий, то он будет удален из памяти почти немедленно и, вероятно, вскоре после этого будет удален сборщиком мусора, и тогда будет вызван метод Close() и воспроизведение прервется.
Обязательно должен быть создан обработчик события Window.Unloaded, в котором вызывается метод Close() для остановки любого воспроизводящегося в данный момент звука при закрытии окна.
Местоположение файла указывается в виде URI. К сожалению, это не синтаксис упакованных URI, так что встроить аудиофайл и воспроизвести его с использованием класса MediaPlayer не получится. Это ограничение объясняется тем, что класс MediaPlayer построен на функциональности, которая не является встроенной в WPF, а предоставлена отдельным, неуправляемым компонентом проигрывателя Windows Media.
Код обработки исключений отсутствует. Это возмутительно, но методы Open() и Play() не генерируют исключения (в некоторой степени тому виной процессы асинхронной загрузки и воспроизведения). Взамен предлагается самостоятельно обрабатывать события MediaOpened и MediaFailed, чтобы определить, было ли запущено воспроизведение аудио.
MediaPlayer достаточно прост, хотя обладает большими возможностями, чем SoundPlayer. Он предоставляет небольшой набор полезных методов, свойство и событий. Их полный перечень приведен ниже:
Balance | Устанавливает баланс между левым и правым каналом как число от -1 (только левый канал) до 1 (только правый канал) |
Volume | Устанавливает громкость в виде числе от 0 (полная тишина) до 1 (полная громкость). Значение по умолчанию равно 0.5 |
SpeedRatio | Устанавливает повышенную скорость при воспроизведении звука (или видео). Значение по умолчанию равно 1, что означает нормальную скорость, в то время как 2 — двойную скорость, 10 — скорость, вдесятеро выше нормальной, 0.5 — половину нормальной скорости и т.д. Можно использовать любое положительное значение типа double |
HasAudio и HasVideo | Указывает на то, содержит ли текущий загруженный медиафайл, соответственно, аудио- и видеосоставляющие. Для воспроизведения видео должен использоваться класс MediaElement, описанный в следующей статье |
NaturalDuration, NaturalVideoHeight и NaturalVideoWidth | Указывают на то, идет ли воспроизведение на нормальной скорости, а также задают размер видео-окна. (Ниже будет показано, что допускается растягивать и сжимать видео для заполнения окон разного размера.) |
Position | Объект TimeSpan, указывающий текущее местоположение в медиафайле. Это свойство можно устанавливать для пропуска части файла и продолжения воспроизведения с указанного места |
DownloadProgress и BufferingProgress | Показывает процент загружаемого файла (удобно в тех случаях, когда источником является URL, указывающий на местоположение в Интернете или на другом компьютере). Процент представлен в виде числа от 0 до 1 |
Clock | Получает или устанавливает часы MediaClock, ассоциированные с проигрывателем. MediaClock используется только тогда, когда аудио синхронизируется с временной шкалой (примерно так же, как это делалось при синхронизации анимации с временной шкалой). При использовании методов MediaPlayer для выполнения воспроизведения вручную это свойство равно null |
Open() | Загружает новый медиафайл |
Play() | Начинает воспроизведение. Не имеет никакого эффекта, если файл уже воспроизводится |
Pause() | Временно приостанавливает воспроизведение, не меняя его позиции. Если вызвать Play() снова, то воспроизведение начнется с текущей позиции. Если воспроизведение не происходит, не дает никакого эффекта |
Stop() | Останавливает воспроизведение и сбрасывает позицию на начало файла. Если снова вызвать Play(), то воспроизведение начнется с начала файла. Не имеет эффекта, если воспроизведение уже остановлено |
Используя эти члены класса, можно построить базовый полнофункциональный медиапроигрыватель. Однако программисты WPF обычно применяют другой, относительно более простой элемент, который рассматривается в следующей статье — MediaElement.
Embedding the Windows Media Player Control in a Visual Basic .NET Solution
To use the functionality of Windows Media Player 9 Series or later in a Visual Basic .NET application, first add the component to a form as described in Using the Windows Media Player Control with Microsoft Visual Studio
This section describes how to create an application that plays video and has custom play and stop buttons.
Add the Video Window
Add the Windows Media Player control to a form. Resize the control, and then place it where you want the video window to appear.
Select the Windows Media Player control, then change the uiMode property to «none». This setting hides the UI controls. When the user plays a video, it will appear in the window. For audio-only content, a visualization will appear.
Add Two Buttons and Adjust the Form
Now add two buttons to the form. Select the first button and change the Text property to «Play». Select the second button and change its Text property to «Stop».
Add the Play Code
Double-click the Play button to reveal the Code window. The following code is displayed:
Add this line to the subroutine:
In the preceding code example, «axWindowsMediaPlayer1» is the default name of the Windows Media Player control and «c:\mediafile.wmv» is a placeholder for the name of the media you want to play.
If you have added the digital media content from the Windows Media Player SDK to the library in Windows Media Player, you can use this code instead:
Because the autoStart property is true by default, Windows Media Player will start playing when you set the currentPlaylist or URL property.
Add the Stop Code
Double-click the Stop button to reveal the Code window. The following code is displayed:
Add this line to the subroutine:
The managed-code wrapper for the Windows Media Player control exposes the Controls object as Ctlcontrols to avoid collision with the Controls property inherited from System.Windows.Forms.Control.
Add Error-handling
The Windows Media Player control does not raise an exception when it encounters an error such as an invalid URL. Instead, the control signals an event. Your application should handle error events sent by the Player.
To create an event handler, open the code window for your form class. From the drop-down list at the top of the window, select the Windows Media Player control. A list of events appears in the drop-down list to the right. From that list, select MediaError. The following code is displayed:
The following code could be inserted in the subroutine to provide minimal error-handling capability. Note that information about the error can be retrieved from the _WMPOCXEvents_MediaErrorEvent argument.
Отображение видео на сайте веб-страницы ASP.NET (Razor) Displaying Video in an ASP.NET Web Pages (Razor) Site
В этой статье объясняется, как использовать проигрыватель видео (мультимедиа) на веб-сайте веб-страницы ASP.NET (Razor), чтобы пользователи могли просматривать видео, хранящиеся на сайте. This article explains how to use a video (media) player in an ASP.NET Web Pages (Razor) website to let users view videos that are stored on the site. Веб-страницы ASP.NET с синтаксис Razor позволяет воспроизводить видео Flash ( . SWF), Media Player ( . wmv) и Silverlight (XAP). ASP.NET Web Pages with Razor syntax lets you play Flash (.swf), Media Player (.wmv), and Silverlight (.xap) videos.
Из этого руководства вы узнаете, как выполнять такие задачи: What you’ll learn:
- Как выбрать видеопроигрыватель. How to choose a video player.
- Добавление видео на веб-страницу. How to add video to a web page.
- Настройка атрибутов проигрывателя видео. How to set video player attributes.
Ниже приведены функции ASP.NET Razor Pages, представленные в статье: These are the ASP.NET Razor pages features introduced in the article:
- Вспомогательный метод Video . The Video helper.
Версии программного обеспечения, используемые в этом руководстве Software versions used in the tutorial
- Веб-страницы ASP.NET (Razor) 2 ASP.NET Web Pages (Razor) 2
- WebMatrix 2 WebMatrix 2
Этот учебник также работает с WebMatrix 3. This tutorial also works with WebMatrix 3.
Введение Introduction
Может потребоваться отобразить видео на сайте. You might want to display a video on your site. Одним из способов сделать это является связывание с сайтом, на котором уже есть видео, например YouTube. One way to do that is to link to a site that already has the video, like YouTube. Если вы хотите внедрить видео с этих сайтов непосредственно на собственные страницы, обычно можно получить разметку HTML с сайта и скопировать их на страницу. If you want to embed a video from these sites directly in your own pages, you can usually get HTML markup from the site and then copy it into your page. Например, в следующем примере показано, как внедрить видео YouTube: For example, the following example shows how to embed a YouTube video:
Если вы хотите воспроизвести видео, которое находится на собственном веб-сайте (а не на общедоступном сайте для совместного использования видео), вы не можете напрямую привязать его, используя внедренную разметку, подобную этой. If you want to play a video that’s on your own website (not on a public video-sharing site), you can’t directly link to it using embedded markup like this. Однако можно воспроизводить видео с сайта с помощью вспомогательного метода Video , который отображает проигрыватель мультимедиа непосредственно на странице. However, you can play videos from your site by using the Video helper, which renders a media player directly in a page.
Выбор видеопроигрывателя Choosing a Video Player
Существует множество форматов для видеофайлов, и для каждого формата обычно требуется другой проигрыватель и другой способ настройки проигрывателя. There are lots of formats for video files, and each format typically requires a different player and a different way to configure the player. На страницах Razor ASP.NET можно воспроизвести видео на веб-странице с помощью вспомогательного метода Video . In ASP.NET Razor pages, you can play a video in a web page using the Video helper. Вспомогательный метод Video упрощает процесс встраивания видео на веб-страницу, так как автоматически создает object и embed HTML-элементы, которые обычно используются для добавления видео на страницу. The Video helper simplifies the process of embedding videos in a web page because it automatically generates the object and embed HTML elements that are normally used to add video to the page.
Вспомогательный модуль Video поддерживает следующие проигрыватели мультимедиа: The Video helper supports the following media players:
- Adobe Flash Adobe Flash
- Windows MediaPlayer Windows MediaPlayer
- Microsoft Silverlight Microsoft Silverlight
Проигрыватель Flash Player The Flash Player
Проигрыватель Flash вспомогательного приложения Video позволяет воспроизводить видео Flash (файлы . SWF ) на веб-странице. The Flash player of the Video helper let you play Flash videos (.swf files) in a web page. Как минимум необходимо указать путь к видеофайл. At a minimum, you have to provide a path to the video file. Если указать только путь, проигрыватель будет использовать значения по умолчанию, заданные текущей версией Flash. If you specify nothing but the path, the player uses default values that are set by the current version of Flash. Стандартные параметры по умолчанию: Typical default settings are:
- Видео отображается с использованием ширины и высоты по умолчанию и без цвета фона. The video is displayed using its default width and height and without a background color.
- Видео автоматически воспроизводится при загрузке страницы. The video plays automatically when the page loads.
- Видео циклически обрабатывается до тех пор, пока оно не будет явно остановлено. The video loops continuously until it’s explicitly stopped.
- Видео масштабируется, чтобы отобразить все видео, а не обрезать видео в соответствии с конкретным размером. The video is scaled to show all of the video, rather than cropping the video to fit a specific size.
- Видео воспроизводится в окне. The video plays in a window.
Проигрыватель MediaPlayer The MediaPlayer Player
Проигрыватель MediaPlayer вспомогательного приложения Video позволяет воспроизводить видео Windows Media (WMV -файлы), Windows Media Audio (WMA -файлы) и MP3 (MP3 -файлы) на странице. The MediaPlayer player of the Video helper lets you play Windows Media videos (.wmv files), Windows Media audio (.wma files), and MP3 (.mp3 files) in a web page. Необходимо указать путь к файлу мультимедиа для воспроизведения. все остальные параметры являются необязательными. You must include path of the media file to play; all other parameters are optional. Если указать только путь, проигрыватель будет использовать параметры по умолчанию, заданные текущей версией MediaPlayer, например: If you specify only a path, the player uses default settings set by the current version of MediaPlayer, such as:
- Видео отображается с использованием ширины и высоты по умолчанию. The video is displayed using its default width and height.
- Видео автоматически воспроизводится при загрузке страницы. The video plays automatically when the page loads.
- Видео воспроизводится один раз (он не находится в цикле). The video plays once (it doesn’t loop).
- Проигрыватель отображает полный набор элементов управления в пользовательском интерфейсе. The player displays the full set of controls in the user interface.
- Видео воспроизводится в окне. The video plays in a window.
Проигрыватель Silverlight The Silverlight Player
Проигрыватель Silverlight вспомогательного приложения Video позволяет воспроизводить видео Windows Media (WMV -файлы), Windows Media Audio (WMA -файлы) и MP3 (MP3 -файлы). The Silverlight player of the Video helper lets you play Windows Media Video (.wmv files), Windows Media Audio (.wma files), and MP3 (.mp3 files). Необходимо задать параметр path, указывающий на пакет приложения на основе Silverlight (XAP -файл). You must set the path parameter to point to a Silverlight-based application package (.xap file). Также необходимо задать параметры Width и Height. You also must set the width and height parameters. Все остальные параметры являются необязательными. All other parameters are optional. При использовании проигрывателя Silverlight для видео, если заданы только необходимые параметры, проигрыватель Silverlight отображает видео без цвета фона. When you use the Silverlight player for video, if you set only the required parameters, the Silverlight player displays the video without a background color.
Если вы еще не знакомы с Silverlight: XAP -файл представляет собой сжатый файл, содержащий инструкции макета в XAML -файле, управляемый код в сборках и дополнительные ресурсы. In case you don’t already know Silverlight: the .xap file is a compressed file that contains layout instructions in a .xaml file, managed code in assemblies, and optional resources. Вы можете создать XAP -файл в Visual Studio в качестве проекта приложения Silverlight. You can create a .xap file in Visual Studio as a Silverlight application project.
Проигрыватель Silverlight Video использует как параметры, указанные для проигрывателя, так и параметры, предоставленные в файле . XAP . The Silverlight video player uses both the settings that you provide for the player and the settings that are provided in the .xap file.
Типы MIME MIME Types
Когда браузер загружает файл, браузер гарантирует, что тип файла соответствует типу MIME, указанному для отображаемого документа. When a browser downloads a file, the browser makes sure that the file type matches the MIME type that’s specified for the document that’s being rendered. Тип MIME — это тип содержимого или тип носителя файла. The MIME type is the content type or media type of a file. Модуль поддержки Video использует следующие типы MIME: The Video helper uses the following MIME types:
- application/x-shockwave-flash
- application/x-mplayer2
- application/x-silverlight-2
Воспроизведение видео Flash (. SWF) Playing Flash (.swf) Videos
В этой процедуре показано, как воспроизвести видео с именем Sample. SWFв формате Flash. This procedure shows you how to play a Flash video named sample.swf. В процедуре предполагается, что у вас есть папка с именем Media на сайте, а SWF -файл находится в этой папке. The procedure assumes that you’ve got a folder named Media on your site and that the .swf file is in that folder.
Добавьте библиотеку вспомогательных веб-функций ASP.NET на веб-сайт, как описано в разделе Установка вспомогательных функций на веб-страницы ASP.net сайте, если вы еще не добавили его. Add the ASP.NET Web Helpers Library to your website as described in Installing Helpers in an ASP.NET Web Pages Site, if you haven’t already added it.
На веб-сайте добавьте страницу и назовите ее флашвидео. cshtml. In the website, add a page and name it FlashVideo.cshtml.
Добавьте на страницу следующую разметку: Add the following markup to the page:
Запустите страницу в браузере. Run the page in a browser. (Перед выполнением страницы убедитесь, что она выбрана в рабочей области файлы .) Откроется страница, и видео будет воспроизводиться автоматически. (Make sure the page is selected in the Files workspace before you run it.) The page is displayed and the video plays automatically.
Можно задать параметр quality для Flash-видео, чтобы low , autolow , autohigh , medium , high и best . You can set the quality parameter for a Flash video to low , autolow , autohigh , medium , high , and best :
Можно изменить видео Flash для воспроизведения с указанным размером с помощью параметра scale , который можно установить следующим образом: You can change the Flash video to play at a specific size using the scale parameter, which you can set to the following:
- showall . showall . Это делает весь видеоролик видимым при сохранении исходных пропорций. This makes the entire video visible while maintaining the original aspect ratio. Однако на каждой стороне могут пристоять границы. However, you might end up with borders on each side.
- noorder . noorder . Это позволяет масштабировать видео при сохранении исходных пропорций, но может быть обрезано. This scales the video while maintaining the original aspect ratio, but it might be cropped.
- exactfit . exactfit . Это делает видимым все видео без сохранения исходного пропорций, но может произойти искажение. This makes the entire video visible without preserving the original aspect ratio, but distortion may occur.
Если не указать параметр scale , будет отображаться все видео, а исходные пропорции будут сохранены без обрезки. If you don’t specify a scale parameter, the entire video will be visible and the original aspect ratio will be maintained without any cropping. В следующем примере показано, как использовать параметр scale . The following example shows how to use the scale parameter:
Проигрыватель Flash Player поддерживает параметр режима видео с именем windowMode . The Flash player supports a video mode setting named windowMode . Это значение можно задать для window , opaque и transparent . You can set this to window , opaque , and transparent . По умолчанию windowMode имеет значение window , которое отображает видео в отдельном окне на веб-странице. By default, the windowMode is set to window , which displays the video in a separate window on the web page. Параметр opaque скрывает все содержимое экрана на веб-странице. The opaque setting hides everything behind the video on the web page. Параметр transparent позволяет отображать фон веб-страницы с помощью видео, при условии, что любая часть видео прозрачна. The transparent setting lets the background of the web page show through the video, assuming any part of the video is transparent.
Воспроизведение видеороликов MediaPlayer ( . wmv) Playing MediaPlayer (.wmv) Videos
В следующей процедуре показано, как воспроизвести окно Media Video с именем Sample. wmv , которое находится в папке Media . The following procedure shows you how to play a Window Media video named sample.wmv that’s in the Media folder.
Добавьте библиотеку вспомогательных веб-функций ASP.NET на веб-сайт, как описано в разделе Установка вспомогательных функций на веб-страницы ASP.net сайте, если вы этого еще не сделали. Add the ASP.NET Web Helpers Library to your website as described in Installing Helpers in an ASP.NET Web Pages Site, if you haven’t already.
Создайте новую страницу с именем медиаплайервидео. cshtml. Create a new page named MediaPlayerVideo.cshtml.
Добавьте на страницу следующую разметку: Add the following markup to the page:
Запустите страницу в браузере. Run the page in a browser. Видео загружается и воспроизводится автоматически. The video loads and plays automatically.
Можно задать playCount целое число, которое показывает, сколько раз следует автоматически воспроизвести видео: You can set playCount to an integer that indicates how many times to play the video automatically:
Параметр uiMode позволяет указать, какие элементы управления отображаются в пользовательском интерфейсе. The uiMode parameter lets you specify which controls show up in the user interface. uiMode можно задать для invisible , none , mini или full . You can set uiMode to invisible , none , mini , or full . Если не указать параметр uiMode , видео будет отображаться в окне состояния, на панели поиска, на кнопках управления и в дополнение к видеоэкрану. If you don’t specify a uiMode parameter, the video will be displayed with the status window, seek bar, control buttons, and volume controls in addition to the video window. Эти элементы управления также будут отображаться при использовании проигрывателя для воспроизведения звукового файла. These controls will also be displayed if you use the player to play an audio file. Ниже приведен пример использования параметра uiMode . Here’s an example of how to use the uiMode parameter:
По умолчанию звук включен при воспроизведении видео. By default, audio is on when the video plays. Звук можно отключить, установив для параметра mute значение true: You can mute the audio by setting the mute parameter to true:
Вы можете управлять уровнем звука для видео MediaPlayer, присвоив параметру volume значение от 0 до 100. You can control the audio level of the MediaPlayer video by setting the volume parameter to a value between 0 and 100. Значение по умолчанию: 50. The default value is 50. Ниже приведен пример: Here’s an example:
Воспроизведение видео Silverlight Playing Silverlight Videos
В этой процедуре показано, как воспроизвести видео, содержащееся на странице Silverlight . XAP , в папке с именем Media. This procedure shows you how to play video contained in a Silverlight .xap page that’s in a folder named Media.
Добавьте библиотеку вспомогательных веб-функций ASP.NET на веб-сайт, как описано в разделе Установка вспомогательных функций на веб-страницы ASP.net сайте, если вы этого еще не сделали. Add the ASP.NET Web Helpers Library to your website as described in Installing Helpers in an ASP.NET Web Pages Site, if you haven’t already .
Создайте новую страницу с именем силверлигхтвидео. cshtml. Create a new page named SilverlightVideo.cshtml.
Добавьте на страницу следующую разметку: Add the following markup to the page:
Запустите страницу в браузере. Run the page in a browser.