2011-08-25 111 views
1

我正在开发GWT应用程序。我需要在我的应用程序中嵌入YouTube视频。
我试过BST播放器API,但是我没有成功地提出播放器上的视频。
我已经下载BST Player.jar,并把它添加到我的构建路径,然后继承下面的罐子在gwtapp.gwt.xml在GWT(BST播放器API)中嵌入youtube播放器

**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(),这没有帮助。有关如何继续并制作视频的任何想法?

回答

2

你可能需要路过这个网址,而不是:

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

真棒!谢谢。 – Ashok

+0

这是非常有帮助的,但是我在视频中看到黑线,任何方式我都可以删除它..? –

+0

我用这个只有简单的框架 - 它工作正常,请参考这个 http://stackoverflow.com/questions/14812679/vimeo-embedding-in-gwt –

2

我找到了一种方法嵌入在GWT YouTube视频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); 
} 

为了使它工作,我需要把这个视频视图面板内每当我想查看/更新视频清除面板并再次添加视频视图。

希望这有助于