讓Swing播放YouTube串流影音(二) - 使用JWebBrowser

01:55下午 七月 02, 2009 in category Swing by UndeadJ

先前所介紹的JFlashPlayer和JVLCPlayer,雖然使用起來很方便、也很容易,不過對於想要自行製做播放面版或在播放時取得影片的相關資訊,就比較困難了。

而這邊介紹的JWebBrowser,就是用來解決這類的問題。

不過在此篇,主要是說明JWebBrowser要如何播放YouTube….

在JWebBrowser中有個方法可以讓我們去設定網頁的內容

public boolean setHTMLContent(String html)

我們可以利用這個方法,先行製做想要的【網頁】(包含了播放時所需要的元件來源)

也就是透過<embed></embed>的方式來設定Youtube的影音來源,這段code可以在Youtube的網頁上找到 - 【嵌入】,之後利用Java的IO,把檔案讀進來後,傳給此方法,就可以在程式執行時,播放這部影片了。

另外,JWebBrowser提供了一些設定,可以讓我們來決定JWebBrowser的一些項目要不要出現:

public void setBarsVisible(boolean isBarsVisible)
public void setButtonBarVisible(boolean isButtonBarVisible)
public void setLocationBarVisible(boolean isLocationBarVisible)
public void setMenuBarVisible(boolean isMenuBarVisible)
public void setStatusBarVisible(boolean isStatusBarVisible)

底下是一個簡單的完整程式:

不過,當執行此程式的時候,會發現到幾個問題:

  1. 程式畫面不是很好,有些雜七雜八的東西在畫面上、影片的周圍有留白...等。
  2. 網頁程式寫死,不容易動態改變Youtube的影音網址。

針對第一點,要解決這些問題,就必須事先在網頁程式中,寫好修正這些問題的程式碼,或是直接透過JWebBrowser所提供的方法,在程式執行的時候修正。

public void executeJavascript(String javascript)

JWebBrowser提供的這個方法,能夠讓我們在程式中執行JavaScript

所以要解決先前提到的第一個問題,就可以先在網頁檔裡面,寫好相關的JavaScript,讓網頁直接呈現你想要的樣子,或是在程式中呼叫此方法來執行相關的JavaScript。

下面是修正後的程式與網頁程式碼:

  • HTML

到此,播到是沒什麼問題了。

不過對於要自行製做播放面版或在播放時取得影片的相關資訊的話,還是要花一些功夫。下一篇會說明如何解決這問題(包含上述的第二點問題)。

迴響[0]

迴響:

發表迴響:
  • HTML 語法: 關閉