2012-01-27 26 views
1

我正在編碼一個Windows Phone 7.1應用程序,並且當用戶點擊一個特定的按鈕時,將使用MediaPlayerLauncher播放YouTube視頻。試圖播放使用MediaPlayerLauncher的YouTube視頻

問題是,MediaPlayerLauncher無法播放視頻,只需給視頻的網址;視頻的鏈接本身就在頁面的html中。現在,我設法通過使用Web客戶端()下載HTML,並從中提取的視頻的鏈接,退出該HTML,通過將本次活動的「客戶」,我的Web客戶端:

 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腳本丟失時。

所以也許這就是問題所在?有誰知道如何解決這個問題,或者你已經以不同的方式做了這樣的事情?

對不起,很長的問題,謝謝!

+1

使用WebBrowserTask或使用API​​獲取URL可能會更好:http://stackoverflow.com/questions/4869564/possible-to-play-youtube-video-in-a-wp7-應用程序 – keyboardP 2012-01-27 18:44:43

+0

這是一個好主意,併爲我節省了很多工作,謝謝! – 2012-01-27 19:43:06

+0

不客氣:) – keyboardP 2012-01-27 20:24:38

回答