【发布时间】:2010-11-13 02:18:20
【问题描述】:
我想在 Windows Phone 7 上直接启动 YouTube 播放器。
我尝试使用 WebBrowserTask 并提供一个 YouTube URL,它会打开浏览器并将我带到一个带有 YouTube 视频缩略图的页面,我需要在视频播放之前单击缩略图。
我喜欢跳过额外的点击。我喜欢用户在我的应用程序中单击一个按钮,它应该直接播放视频。有办法吗?
【问题讨论】:
我想在 Windows Phone 7 上直接启动 YouTube 播放器。
我尝试使用 WebBrowserTask 并提供一个 YouTube URL,它会打开浏览器并将我带到一个带有 YouTube 视频缩略图的页面,我需要在视频播放之前单击缩略图。
我喜欢跳过额外的点击。我喜欢用户在我的应用程序中单击一个按钮,它应该直接播放视频。有办法吗?
【问题讨论】:
一旦您安装了 Youtube 应用程序,您就可以在您的应用程序中启动 WebBrowserTask 并执行以下操作:
Regex Youtube = new Regex("youtu(?:\\.be|be\\.com)/(?:.*v(?:/|=)|(?:.*/)?)([a-zA-Z0-9-_]+)");
Match youtubeMatch = Youtube.Match(YOUTUBE_VIDEO_URL);
string id = string.Empty;
if (youtubeMatch.Success)
id = youtubeMatch.Groups[1].Value;
WebBrowserTask webBrowserTask = new WebBrowserTask();
webBrowserTask.URL = "vnd.youtube:"+ id +"?vndapp=youtube_mobile";
webBrowserTask.Show();
这应该会启动浏览器,然后自动启动 Youtube 应用程序。干杯!
【讨论】:
最后我制定了一个干净的解决方案(没有浏览器任务,也没有“双后退键”):
【讨论】:
尝试使用以下示例;
WebBrowserTask webBrowserTask = new WebBrowserTask();
webBrowserTask.Uri = new Uri("http://www.youtube.com/embed/V3oJR5IAMxM?autoplay=1");
webBrowserTask.Show();
这应该直接打开视频,但我认为你仍然必须双击才能返回。
【讨论】:
现在有一个解决方案。您可以使用 vnd.youtube 协议从 Microsoft 启动 YouTube 应用程序并播放。
C#
Windows.System.Launcher.LaunchUriAsync(
new System.Uri("vnd.youtube:9bZkp7q19f0")
);
不幸的是,Launcher.LaunchUriAsync 方法仅适用于Windows Phone 8 及以上设备。
【讨论】:
没有。下一版操作系统中的 Mabe 将是自定义选择器和午餐器。
【讨论】:
要显示来自 YouTube 的视频,您需要 YouTube 视频播放器。否则,您将需要编写一个自定义解码器来接收 YouTube 流并将其显示在 MediaElement 中。
【讨论】:
正如您所发现的,目前这是不可能的。
除了使用启动器或选择器之外,目前无法启动另一个应用程序。
在 YouTube 网站上,可以将各个视频配置为自动播放或不自动播放。我不知道有一种方法可以覆盖它。
但是,在电话上,情况就不同了。 YouTube 使用 Flash 播放视频,但手机目前不支持 Flash。只有安装了 YouTube 应用程序才能播放 YouTube 视频。当您使用 webbrowsertask 打开 youtube 站点时,用户必须单击图像才能启动播放器。
如果网页能够在不需要用户操作的情况下启动应用程序,这可能是一个巨大的安全问题。
注意YouTube 应用程序具有特殊的提升权限,通常不可用,以便能够以它的方式启动。
【讨论】: