2011-11-10 111 views
0

我創建了一個帶有WebBrowser控件的Windows應用程序並試圖播放YouTube視頻..我安裝了Adobe Shockwave Player,並試圖在我的Windows應用程序上觀看視頻,但它不顯示任何視頻。當我點擊播放按鈕,屏幕看起來像這樣 enter image description here如何在Windows應用程序上播放youtube視頻C#

我播放視頻的代碼是

StreamWriter sw = new StreamWriter("utube.html"); 
     string PlayString = currentVideoUrl.Trim().Replace("watch?v=", "v/"); 
     string Finalplaycode = "<embed src=" + PlayString + "&hl=en&fs=1& type=application/x-shockwave-flash allowscriptaccess=always allowfullscreen=true width=425 height=344></embed>"; 
     sw.Write(Finalplaycode); 
     sw.Close(); 
     string PathToNavigate = Directory.GetParent(Application.ExecutablePath) + @"\utube.html"; 
     webBrowser1.Navigate(PathToNavigate); 

和我的例子視頻鏈接是:http://www.youtube.com/watch?v=oZdnezj9Dfg&feature=BFa&list=PLD3E900BFF6534896&lf=plpp_video

誰能幫助我這個問題?我錯過任何插件或什麼?我正在使用.NetFramework 4.0

+0

您正在運行32位應用程序或64位應用程序嗎?如果您嘗試使用Google Chrome瀏覽器或Internet Explorer導航到嵌入式內容,嵌入功能是否可行? –

+0

我正在使用32位應用程序。說什麼導航?你的意思是點擊Windows應用程序中的鏈接並使用發送的URL打開新的瀏覽器並播放視頻?如果是,我可以這樣做,我知道。但我試圖在Windows應用程序上播放視頻。我發現這篇文章,但無法找到FlashObjects .. http://social.msdn.microsoft.com/Forums/en-US/winformsdesigner/thread/5815e676-50b0-47f4-964a-c1bcebfdb9a4/ –

回答

2

我看到的一個問題是您沒有在嵌入中引用參數。

<embed src=http://www.youtube.com/v/video_id...> 

需要引用這些參數:爲您的嵌入將產生

<embed src="http://www.youtube.com/v/video_id..."> 

例如,下面是在我的網站工作的一個嵌入:

<embed type="application/x-shockwave-flash" width="425" height="344" 
src="http://www.youtube.com/v/UejelYnVI3U&amp;hl=en&amp;fs=1"></embed> 

您可能會感興趣在閱讀官方的YouTube文檔。他們已經開始使用嵌入,轉而使用內嵌框架。這讓他們可以使用HTML5視頻播放器(如果可用),否則會退回到Flash。詳情請參閱http://www.google.com/support/youtube/bin/answer.py?answer=171780

更新:

下面的HTML文件中嵌入兩種方式相同的視頻:使用iframe和一次使用標準嵌入一次。它的工作原理髮現,當我瀏覽到它與WebBrowser控制:

<html> 
<body> 
<iframe class="youtube-player" type="text/html" width="640" height="385" 
src="http://www.youtube.com/embed/oZdnezj9Dfg" frameborder="0"> 
</iframe> 

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" 
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"> 
<param name="src" value="http://www.youtube.com/v/oZdnezj9Dfg&amp;hl=en&amp;fs=1" /> 
<embed type="application/x-shockwave-flash" width="425" height="344" 
    src="http://www.youtube.com/v/oZdnezj9Dfg&amp;hl=en&amp;fs=1"> 
</embed> 
</object> 

</body> 
<html> 

嘗試複製這一點,導航到它在你的應用程序。確保你的程序正在創建嵌入。

此外,如果您已安裝Flash,則可以移除外部<object>標記。然後,Flash嵌入看起來就像我最初展示的那樣。

而且,並沒有要求你有HTML包裝。它工作正常,如果我只包含沒有<html>和其他標籤的嵌入。

+0

感謝您的回覆。但問題是在我的Windows應用程序,你的嵌入不工作。我試圖嵌入使用iFrame和HTML5支持的youtube的原始嵌入,它也在我的WebBroswer控件上失敗。那麼如何在我的Windows應用程序上啓用Flash Player? –

+0

或者你能否以另一種方式暗示我? –

+0

@Serkan:看到我更新的答案。 –

相關問題