首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >vaadin视频组件是否支持预加载属性?

vaadin视频组件是否支持预加载属性?
EN

Stack Overflow用户
提问于 2017-06-19 13:37:19
回答 1查看 94关注 0票数 1

我有超过10个mp4视频,我正在捆绑在我的网页应用程序嵌入使用vaadin视频组件。当我在Edge/IE上运行我的应用程序时,vidoes工作得很好,但在chrome上却没有。它已知的问题与铬,如果页面有超过6-8 mp4视频,它挂起,因为它试图预加载所有它们在一起。我想知道视频组件是否提供了将预加载设置为none的选项。我可以看到美辉石有这个选项,https://vaadin.com/api/7.6.7/index.html?com/google/gwt/media/client/MediaBase.html,但我没有看到它的视频。此外,我还找到了另一个链接,他们似乎做了修复https://github.com/vaadin/framework/issues/5178,但无法使它工作。

有什么帮助吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-19 18:04:53

在您的链接中的commit/PR合并之前,它不会在7或8中合并。

但是,您可以使用AbstractExtension和AbstractExtensionConnector来完成这一任务。

AbstractExtension

代码语言:javascript
运行
复制
package com.my.package;

import com.vaadin.server.AbstractClientConnector;
import com.vaadin.server.AbstractExtension;
import com.vaadin.ui.AbstractComponent;
public class VideoPreloadExtension extends AbstractExtension {

    public VideoPreloadExtension() {
    }

    public VideoPreloadExtension(AbstractClientConnector target) {
        super(target);
    }

    public void extend(AbstractComponent component) {
        super.extend(component);
    }

}

AbstractExtensionConnector

代码语言:javascript
运行
复制
package com.my.package.client;

import com.google.gwt.user.client.ui.Widget;
import com.vaadin.client.ComponentConnector;
import com.vaadin.client.ServerConnector;
import com.vaadin.client.extensions.AbstractExtensionConnector;
import com.my.package.VideoPreloadExtension;
import com.vaadin.shared.ui.Connect;

@Connect(VideoPreloadExtension.class)
public class VideoPreloadConnector extends AbstractExtensionConnector {

    @Override
    protected void init() {
        super.init();
    }

    @Override
    protected void extend(ServerConnector target) {
        // Get the extended widget
        final Widget widget = ((ComponentConnector) target).getWidget();
        widget.getElement().setAttribute("preload","auto");
    }
}

的用法如下:

代码语言:javascript
运行
复制
Video image = new Video();
VideoPreloadExtension ext = new VideoPreloadExtension();
ext.extend(image);

一些注释(因为vaadin有时会很痛苦)

  1. 如果您已经有了一个库模块,最好将上述类添加到其中。
  2. 请确认将这些类添加到的模块具有以下依赖项add,这样widgetset将被编译: com.vaadin vaadin-客户
  3. 请记住,VideoPreloadConnector需要位于以".client“结尾的包名中。

下面是它工作的铬元素的屏幕截图:

HTHs!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44632143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档