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


Потоковая передача мультимедиа на устройства с использованием функции воспроизведения на устройстве (HTML)

[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. В случае разработки приложений для Windows 10 см. раздел последняя документация]

Функция воспроизведения на устройстве предоставляет пользователям возможность потоковой передачи аудио, видео и изображений с компьютера на имеющиеся в сети устройства.

Введение

Функция воспроизведения на устройстве позволяет пользователям легко передавать звук, видео и изображения с компьютера на устройства домашней сети. Например, пользователь, который просматривает видеозапись в вашем приложении, может организовать потоковую передачу этой записи на телевизор, чтобы ее могли смотреть все присутствующие в помещении.

Функция воспроизведения на устройстве осуществляет потоковую передачу аудио, видео или изображений на сертифицированный приемник функции воспроизведения на устройстве.

Команда "Воспроизвести на" входит в состав чудо-кнопки Устройства. При работе с приложениями, содержащими аудио, видео или изображения, пользователь может воспользоваться чудо-кнопкой Устройства, которая показывает список всех устройств домашней сети, на которые можно передать мультимедийное содержимое.

Использование функции воспроизведения на устройстве в вашем приложении

Чтобы использовать функцию воспроизведения на устройстве для передачи аудио, видео и изображений из вашего приложения, необходимо реализовать в нем контракт "Воспроизведение на устройстве". Для этого зарегистрируйте обработчик события sourceRequested. Чтобы зарегистрировать обработчик события sourceRequested, получите ссылку на текущий объект PlayToManager, вызвав метод getForCurrentView. После этого вы можете вызвать метод addEventHandler класса PlayToManager, чтобы связать ваш обработчик с событием sourceRequested. В обработчике событий передайте элемент мультимедиа из вашего приложения методу setSource объекта PlayToSourceRequestedEventArgs, переданного обработчику событий, как показано в следующем примере.

// Play To Contract

private Windows.Media.PlayTo.PlayToManager ptm = 
        Windows.Media.PlayTo.PlayToManager.GetForCurrentView();

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    ptm.SourceRequested += sourceRequestHandler;
}

private void sourceRequestHandler(
    Windows.Media.PlayTo.PlayToManager sender,
    Windows.Media.PlayTo.PlayToSourceRequestedEventArgs e)
{
    try
    {
        e.SourceRequest.SetSource(mediaElement.PlayToSource);
    }
    catch (Exception ex)
    {
        messageBlock.Text += "Exception encountered: " + ex.Message + "\n";
    }
}
// Play To Contract

var ptm = Windows.Media.PlayTo.PlayToManager.getForCurrentView();
ptm.addEventListener("sourcerequested", sourceRequestHandler, false);

function sourceRequestHandler(e) {
    try {
        e.sourceRequest.setSource(mediaElement.msPlayToSource);

    } catch (ex) {
        id("messageDiv").innerHTML += "Exception encountered: " + ex.message + "<br/>";
    }
}
' Play To Contract

Private ptm As Windows.Media.PlayTo.PlayToManager =
        Windows.Media.PlayTo.PlayToManager.GetForCurrentView()

Protected Overrides Sub OnNavigatedTo(e As Navigation.NavigationEventArgs)
    AddHandler ptm.SourceRequested, AddressOf sourceRequestHandler
End Sub

Private Sub sourceRequestHandler(
    sender As Windows.Media.PlayTo.PlayToManager,
    e As Windows.Media.PlayTo.PlayToSourceRequestedEventArgs)

    Try
        e.SourceRequest.SetSource(mediaElement.PlayToSource)
    Catch ex As Exception
        messageBlock.Text &= "Exception encountered: " & ex.Message & vbCrLf
    End Try
End Sub

Когда пользователь выбирает конечный объект воспроизведения на устройстве из списка чудо-кнопки Устройства, функция воспроизведения на устройстве создает событие sourceRequested. Затем функция воспроизведения на устройстве начинает потоковую передачу элемента мультимедиа, переданного методу setSource, на целевое устройство, выбранное пользователем.

Если функция воспроизведения на устройстве передает мультимедийное содержимое из вашего приложения на целевое устройство, то потоковая передача продолжится, даже если ваше приложение перейдет в фоновый режим, а другое приложение станет активным. Для дополнительных сведений см. раздел Запуск, возобновление работы и многозадачность.

Поведение функции воспроизведения на устройстве по умолчанию

По умолчанию воспроизведение на устройстве включено для всех аудио- и видеоэлементов на странице приложения. Вы можете отключить такую реакцию по умолчанию в вашем приложении или определить, какие аудио- или видеоэлементы будут недоступны для воспроизведения на устройстве по умолчанию.

Чтобы отключить воспроизведение на устройстве по умолчанию в вашем приложении, установите значение false для свойства defaultSourceSelection объекта PlayToManager.

var ptm = Windows.Media.PlayTo.PlayToManager.getForCurrentView();
ptm.defaultSourceSelection = false;

Чтобы отключить воспроизведение на устройстве по умолчанию для определенного аудио или видео элемента, внесите в разметку элемента свойство x-ms-playToDisabled.

<video src="http://sample.microsoft.com/video.mp4" x-ms-playToDisabled />

Вы также можете отключить воспроизведение на устройстве по умолчанию для элемента в JavaScript, установив значение "true" для свойства msPlayToDisabled.

Если у вас на странице более одного аудио- или видеоэлемента и вы хотите указать один из них в качестве первого для потоковой передачи при воспроизведении на устройстве, вы можете внести в разметку данного элемента свойство x-ms-playToPrimary.

<video src="http://sample.microsoft.com/showvideo.mp4" x-ms-playToPrimary />

Вы также можете указать первый элемент для потоковой передачи при воспроизведении на устройстве в JavaScript, установив значение "true" для свойства msPlayToPrimary.

Правила использования функции воспроизведения на устройстве в приложении

Если ваше приложение позволяет пользователям просматривать видео или изображения либо прослушивать звук, вам следует обязательно добавить в него функцию воспроизведения на устройстве, чтобы пользователи также могли осуществлять потоковую передачу мультимедийного содержимого на удаленные устройства.

Обязательно включайте чудо-кнопку Устройства в ваше приложение всюду, где имеется доступное пользователю мультимедийное содержимое (звук, видео или изображения).

Убедитесь, что пользователи могут продолжать работу с вашим приложением после запуска потоковой передачи мультимедийного содержимого на удаленное устройство с помощью функции воспроизведения на устройстве. Чтобы потоковая передача мультимедийного содержимого не прерывалась, вам необходимо убедиться, что элемент мультимедиа в вашем приложении не выходит из ее области.

Поскольку "Воспроизвести на" является частью пользовательского интерфейса Windows, вы не должны заставлять пользователей переходить на специальную страницу или экран вашего приложения, чтобы воспользоваться этой функцией.

Связанные разделы

Краткое руководство: использование функции воспроизведения на устройстве в приложениях

Краткое руководство: потоковая передача слайд-шоу с помощью функции воспроизведения на устройстве

Примеры

Образец воспроизведения на устройстве

Образец PlayToReceiver

Образец сервера мультимедиа