使用“播放到”向设备流式播放媒体 (HTML)
[ 本文适用于编写 Windows 运行时应用的 Windows 8.x 和 Windows Phone 8.x 开发人员。如果你要针对 Windows 10 进行开发,请参阅 最新文档 ]
“播放到”使用户能够将其计算机中的音频、视频或图像流式传输到网络设备。
简介
你可以使用“播放到”功能使用户能够很容易在其家庭网络中将音频、视频或图像以流数据的形式从计算机传输到其他设备。例如,在你的应用中观看视频的用户可以将该视频流式传输到其 TV 上供屋子中的所有人观看。
“播放到”会将音频、视频或图像流式传输到经过认证的“播放到”接收器。
“播放到”是“设备”超级按钮的一部分。对于包含音频、视频或图像的应用程序,用户打开“设备”****超级按钮后,将向用户显示可将媒体内容流式传输到的家庭网络设备。
在应用中使用“播放到”
你可在你的应用程序中使用“播放到”流式传输音频或视频,并通过实现“播放到”合约传输图像。要在你的应用程序中实现“播放到”合约,请注册 sourceRequested 事件。要注册 sourceRequested 事件,请通过调用 getForCurrentView 方法获取对当前 PlayToManager 的引用。然后,你可调用 PlayToManager 中的 addEventHandler 以便将事件处理程序与 sourceRequested 事件关联。在你的事件处理程序中,将你的应用程序中的媒体元素传递到 PlayToSourceRequestedEventArgs 对象(传递到事件处理程序)的 setSource 方法,如以下示例所示。
// 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 方法的媒体元素流式传输到用户所选的目标设备中。
如果“播放到”从你的应用程序流式传输媒体到目标设备中,那么甚至在你的应用程序移动到后台,同时其他应用程序处于活动状态时,“播放到”也会继续从你的应用程序流式传输媒体到目标设备中。有关详细信息,请参阅启动、恢复和多任务。
“播放到”默认行为
默认情况下,可对应用程序页面上的所有音频和视频元素启用“播放到”。你可在你的应用中禁用此默认行为,或者你可标识哪些音频或视频元素对“播放到”行为不可用。
要在你的应用程序中禁用默认的“播放到”行为,请将 PlayToManager 对象的 defaultSourceSelection 属性设置为 false。
var ptm = Windows.Media.PlayTo.PlayToManager.getForCurrentView();
ptm.defaultSourceSelection = false;
要为某个特定的音频或视频元素禁用默认的“播放到”行为,请在元素标记中包括 x-ms-playToDisabled 属性。
<video src="http://sample.microsoft.com/video.mp4" x-ms-playToDisabled />
你还可通过将 msPlayToDisabled 属性设置为 true,在 JavaScript 中禁用元素的默认“播放到”行为。
如果你在页面上拥有一个以上的音频或视频元素,且你想将一个元素标识为“播放到”的第一个要进行流式传输的元素,你可在元素标记中包括 x-ms-playToPrimary 属性。
<video src="http://sample.microsoft.com/showvideo.mp4" x-ms-playToPrimary />
你还可通过将 msPlayToPrimary 属性设置为 true,在 JavaScript 中标识“播放到”的第一个要进行流式传输的元素。
在应用中使用“播放到”的指南
如果你的应用使用户能够观看视频、查看图像或者收听音频,请确保在你的应用中包括“播放到”功能,以便使用户还能够将媒体流式传输到远程设备。
在包含可供用户使用的音频、视频或图像内容的应用程序中,请确保启用“设备”超级按钮。
确保在用户开始通过使用“播放到”将媒体流式传输到远程设备之后,用户能够继续在你的应用中导航。为了继续对媒体进行流式传输,你必须确保你的应用中的媒体元素保持在范围内。
由于“播放到”是 Windows UI 的一部分,因此用户不必导航到你的应用的特定页面或屏幕,即可使用“播放到”。
相关主题
示例