2012-01-27 11 views
1

私はWindows Phone 7.1アプリをコーディングしています。ユーザーが特定のボタンをクリックすると、MediaPlayerLauncherを使用してYouTube動画が再生されます。MediaPlayerLauncherを使用してYouTube動画を再生しようとしています

問題は、MediaPlayerLauncherはビデオのURLを与えるだけではビデオを再生できないということです。ビデオのリンク自体はページのhtmlにあります。今、私は私のWebクライアント、「クライアント」のために、このイベントを取り付けることで、HTMLをダウンロードし、それから、ビデオのリンクを抽出するために)(Webクライアントを使用して、そのHTMLを引き出すために管理:

 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ページのスクリプトをチェックしました(私はモバイルWebページに行き、要素を調べました)、そこにはスクリプトがありますが、WebClientがHTMLを取得すると、スクリプトが欠落しています。

多分それは問題ですか?誰もがこの問題を解決する方法を知っていますか、あるいはあなたはすでに別の方法でそのようなことをしていますか?

ご迷惑をおかけして申し訳ありません、ありがとうございます!

+1

「WebBrowserTask」を使用するか、APIを使用してURLを取得する方がよい場合があります。http://stackoverflow.com/questions/4869564/possible-to-play-youtube-video-in-a-wp7- app – keyboardP

+0

これは素晴らしいアイデアです。私は多くの作業を保存します。ありがとう! –

+0

あなたは大歓迎です:) – keyboardP

答えて

関連する問題