【问题标题】:Trying to play a youtube video using MediaPlayerLauncher尝试使用 MediaPlayerLauncher 播放 youtube 视频
【发布时间】:2012-01-27 16:07:19
【问题描述】:

我正在编写一个 windows phone 7.1 应用程序,当用户单击特定按钮时,将使用 MediaPlayerLauncher 播放 youtube 视频。

问题是,MediaPlayerLauncher 不能仅通过提供视频的 url 来播放视频;视频的链接本身在页面的 html 中。现在,我设法通过使用 WebClient() 下载 html 并从中提取视频的链接来提取该 html,方法是将此事件附加到“客户端”,即我的 WebClient:

        void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        pageHtml = e.Result;

        stringBuilder = new StringBuilder(pageHtml);
        if (pageHtml != null)
        {
            if (pageHtml.Contains("<html"))
            {
                if (pageHtml.Contains("<script"))
                {
                    stringBuilder.Replace("</script>", string.Format("{0}{1}</script>", NOTIFY_SCRIPT, Environment.NewLine));
                }
                else if (pageHtml.Contains("<head"))
                {
                    stringBuilder.Replace("</head>", string.Format("{0}{1}</head>", NOTIFY_SCRIPT, Environment.NewLine));
                }
                else
                {
                    stringBuilder.Replace("</html>", string.Format("{0}{1}</html>", NOTIFY_SCRIPT, Environment.NewLine));
                }
            }
            else
            {
                    //Just skip it or display an error message or whatever
            }

                rssBrowser.NavigateToString(stringBuilder.ToString());
        }
    }

基本上,我添加了一个脚本“NOTIFY_SCRIPT”,它检测 youtube 视频的存在(如果您想了解更多详细信息,视频的链接基本上在标签中,所以我只是获取所有标签,找到一个带有链接,并获取它的内容(链接))。

但是,这仍然行不通。我尝试安装一个 WebBrowser 并让它在每次 WebBrowser 导航时导航并触发事件,以确保它导航到正确的页面。但有时,它不能正确导航;它卡在中间页面或转到原始 youtube 页面。所以,我决定看一下传入的 html。由于某种原因,传入的 html 缺少 youtube 的脚本。我使用浏览器检查了 youtube 页面上的脚本(我去了移动网页并“检查了元素”),那里有一个脚本,但是当 WebClient 获取 html 时,该脚本丢失了。

所以也许这就是问题所在?有谁知道如何解决这个问题,或者您可能已经以不同的方式做了类似的事情?

抱歉问题太长了,谢谢!

【问题讨论】:

  • 您最好使用WebBrowserTask 或使用API​​ 获取URL:stackoverflow.com/questions/4869564/…
  • 这是个好主意,为我节省了很多工作,谢谢!
  • 您能发表您的评论作为答案吗?我不想让这个问题悬而未决,您也会得到好处:)

标签: c# webclient windows-phone-7.1


【解决方案1】:

您最好使用WebBrowserTaskAPI 来获取网址。

【讨论】:

    猜你喜欢
    • 2014-02-07
    • 2013-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-16
    • 2014-05-01
    • 1970-01-01
    相关资源
    最近更新 更多