在YouTube中嵌入youtube播放器(BST播放器API)

时间:2011-08-25 04:10:13

标签: gwt youtube

我正在开发一个GWT应用程序。我需要在我的应用程序中嵌入YouTube视频 我已经尝试过BST播放器API但是我没有成功地在播放器上显示视频 我已经下载了BST Player.jar并将其添加到我的构建路径中,然后继承了gwtapp.gwt.xml中的以下jar:

**inherits name ='com.bramosystems.oss.player.core.Core'**
**inherits name ='com.bramosystems.oss.player.youtube.YouTube'**

然后我尝试了BST页面上给出的例子:

simplePanel = new SimplePanel();
add(simplePanel);
simplePanel.setSize("", "");
try {
    // create the player, specifing URL of media
    player = new ChromelessPlayer("http://www.youtube.com/watch?v=O3CZFfyed3M", "80%", "350px");
    CustomPlayerControl cpc = new CustomPlayerControl(player);
    FlowPanel fp = new FlowPanel();
    fp.add(player);
    fp.add(cpc);
    simplePanel.setWidget(fp); // add player and custom control to panel.
} catch (PluginVersionException e) {
    // required Flash plugin version is not available,
    // alert user possibly providing a link to the plugin download page.
    simplePanel.setWidget(new HTML(".. some nice message telling the " + "user to download plugin first .."));
} catch(PluginNotFoundException e) {
    // required Flash plugin not found, display a friendly notice.
    simplePanel.setWidget(PlayerUtil.getMissingPluginNotice(e.getPlugin()));
}

我可以看到带有YouTube播放器的面板,但我看不到视频加载也没有播放。我试过了player.playMedia()但没有任何帮助。有关如何继续并使视频有效的任何想法?

3 个答案:

答案 0 :(得分:2)

您可能需要传递此网址:

http://www.youtube.com/v/O3CZFfyed3M

答案 1 :(得分:2)

我找到了一种方法,可以使用任何外部库将YouTube视频嵌入到GWT vithout中。集成级别非常简单,因此您无法进行任何高级用法。这是UIBinder模板的代码片段及其对应的类:

使用和HTMLPanel放置一个这样的对象元素:

<g:HTMLPanel>

       <object ui:field="videoElement"
               type="application/x-shockwave-flash"
               width="640" height="480" data="">
       </object>

</g:HTMLPanel>

@UIField
ObjectElement videoElement;

[...]

public void displayVideo(String videoId) {
       String videoUrl = "http://www.youtube.com/v/".concat(videoId);
       videoElement.setData(videoUrl);  //change data attribute of object element
       String innerHtml = "<param name=\"movie\" value=\""+ videoUrl +"\" />";
       //add param element, of course yo can add as many param elements as needed to customize
       videoElement.setInnerHTML(innerHtml);
}

为了使其正常工作,我需要将此视频视图放在Panel中,每当我想查看/更新视频时,请清除面板并再次添加视频视图。

希望这有帮助

答案 2 :(得分:0)

我在YouTubes Iframe api库之上创建了这个GWT包装器。这样可以更轻松地在gwt check https://github.com/pandurangpatil/gwt-youtube

中使用YouTube api