Реализация видеопроигрывателяImplementing a video player

Скачать пример Скачать примерDownload Sample Download the sample

Иногда нужно, чтобы видеофайлы воспроизводились в приложении Xamarin.Forms.It is sometimes desirable to play video files in a Xamarin.Forms application. В этой серии статей объясняется, как написать пользовательские отрисовщики для iOS, Android и универсальной платформы Windows (UWP) для класса Xamarin.Forms VideoPlayer.This series of articles discusses how to write custom renderers for iOS, Android, and the Universal Windows Platform (UWP) for a Xamarin.Forms class named VideoPlayer.

В примере VideoPlayerDemos все файлы, реализующие и поддерживающие VideoPlayer, находятся в папках FormsVideoLibrary и идентифицируется с пространством имен FormsVideoLibrary или пространствами имен, которые начинаются с FormsVideoLibrary.In the VideoPlayerDemos sample, all the files that implement and support VideoPlayer are in folders named FormsVideoLibrary and identified with the namespace FormsVideoLibrary or namespaces that begin FormsVideoLibrary. Такая упорядоченность и именование позволяют легко копировать файлы видеопроигрывателя в собственное решение Xamarin.Forms.This organization and naming should make it easy to copy the video player files into your own Xamarin.Forms solution.

VideoPlayer может воспроизводить видео файлы из источников трех типов:VideoPlayer can play video files from three types of sources:

  • Интернет с использованием URL-адреса;The Internet using a URL
  • ресурс, внедренный в приложение платформы;A resource embedded in the platform application
  • видеотека устройства.The device's video library

Для видеопроигрывателей нужны элементы управления транспортировкой — кнопки для воспроизведения и приостановки видео, а также панель положения, которая показывает, сколько времени от видео прошло и позволяет быстро перемотать его.Video players require transport controls, which are buttons for playing and pausing the video, and a positioning bar that shows the progress through the video and allows the user to skip quickly to a different location. VideoPlayer может использовать элементы управления транспортировкой и панель положения, предоставленную платформой (как показано ниже). Вы также можете предоставить пользовательские элементы управления и панель положения.VideoPlayer can use either the transport controls and positioning bar provided by the platform (as shown below), or you can supply custom transport controls and a positioning bar. Программа, запущенная на iOS, Android и универсальной платформе Windows:Here's the program running under iOS, Android, and the Universal Windows Platform:

Воспроизвести видео через ИнтернетPlay Web Video

Разумеется, вы можете повернуть телефон боком для более крупного представления.Of course, you can turn the phone sideways for a larger view.

В более сложном видеопроигрывателе будут дополнительные функции, такие как регуляторы громкости, механизм, прерывающий видео при звонке, и возможность оставить экран активным во время воспроизведения.A more sophisticated video player would have some additional features, such as volume control, a mechanism to interrupt the video when a telephone call comes through, and a way of keeping the screen active during playback.

В следующем ряде статей постепенно показывается, как создаются отрисовщики платформы и поддерживающие классы:The following series of articles progressively shows how the platform renderers and supporting classes are built:

Создание видеопроигрывателей платформыCreating the platform video players

Для каждой платформы требуется поддерживаемый класс VideoPlayerRenderer, создающий и обрабатывающий элемент управления видеопроигрывателем.Each platform requires a VideoPlayerRenderer class that creates and maintains a video player control supported by the platform. В этой статье показана структура классов отрисовщика и то, как создаются проигрыватели.This article shows the structure of the renderer classes, and how the players are created.

Воспроизведение видео через ИнтернетPlaying a Web video

Возможно, самый распространенный источник видео для видеопроигрывателя — это Интернет.Probably the most common source of videos for a video player is the Internet. В этой статье описывается, как можно указать ссылку на видео в Интернете и использовать ее как источник для видеопроигрывателя.This article describes how a Web video can be referenced and used as a source for the video player.

Привязка видеоисточников к проигрывателюBinding video sources to the player

В этой статье для представления коллекции видео для воспроизведения используется ListView.This article uses a ListView to present a collection of videos to play. Одна программа показывает, как файл с выделенным кодом может задать источник видеопроигрывателя, а вторая — как использовать привязку данных между ListView и видеопроигрывателем.One program shows how the code-behind file can set the video source of the video player, but a second program shows how you can use data binding between the ListView and the video player.

Загрузка видеоресурсов приложенияLoading application resource videos

Видео можно внедрять как ресурсы в проекты платформы.Videos can be embedded as resources in the platform projects. В этой статье показано, как хранить эти ресурсы и загружать их позже в программу для воспроизведения в видеопроигрывателе.This article shows how to store those resources and later load them into the program to be played by the video player.

Доступ к видеотеке устройстваAccessing the device's video library

При создании видео с помощью камеры устройства видеофайл сохраняется в библиотеку изображений устройства.When a video is created using the device's camera, the video file is stored in the device's image library. В этой статье показано, как выбрать видео в средстве выбора изображений устройства, а затем воспроизвести их с помощью видеопроигрывателя.This article shows how to access the device's image picker to select the video, and then play it using the video player.

Пользовательские элементы управления транспортировкой видеоCustom video transport controls

Хотя видеопроигрыватели на каждой платформе предоставляют собственные элементы управления транспортировкой в виде кнопок Воспроизвести и Приостановить, вы можете заменить кнопки своими.Although the video players on each platform provide their own transport controls in the form of buttons for Play and Pause, you can suppress the display of those buttons and supply your own. Эта статья поможет вам сделать это.This article shows you how.

Настраиваемое размещение видеоCustom video positioning

В каждом видеопроигрывателе платформы есть панель положения, которая показывает, сколько времени от видео прошло, и позволяет перемотать его вперед или назад до определенного места.Each of the platform video players has a position bar that shows the progress of the video and allows you to skip ahead or back to a particular position. В этой статье показано, как заменить панель положения пользовательским элементом управления.This article demonstrates how you can replace that position bar with a custom control.