Встраивание проигрывателя YouTube в GWT (BST Player API) - PullRequest
1 голос
/ 25 августа 2011

Я занимаюсь разработкой приложения GWT.Мне нужно встроить видео YouTube в свое приложение.
Я пробовал API-интерфейс BST-проигрывателя, но мне не удалось воспроизвести видео на проигрывателе.
Я скачал BST Player.jar и добавил егок моему buildpath, затем унаследовал следующие jar-файлы в gwtapp.gwt.xml:

**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 ]

2 голосов
/ 26 января 2013

Я нашел способ встроить видео YouTube в GWT без использования любой внешней библиотеки. Уровень интеграции очень прост, поэтому вы не можете использовать его в расширенном составе. Вот фрагмент кода шаблона 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);
}

Чтобы это работало, мне нужно было поместить это видео в панель, и всякий раз, когда мне захотелось просмотреть / обновить видео, очистите панель и снова добавьте видео.

Надеюсь, это поможет

2 голосов
/ 25 августа 2011

Возможно, вам вместо этого нужно передать этот URL:

http://www.youtube.com/v/O3CZFfyed3M
0 голосов
/ 23 марта 2014

Я создал эту оболочку GWT поверх библиотеки API YouTubes Iframe. Что облегчает использование API YouTube внутри gwt check https://github.com/pandurangpatil/gwt-youtube

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...