我有超过10个mp4视频,我正在使用vaadin视频组件嵌入我的网络应用程序中。当我在Edge / IE上运行我的应用程序时,vidoes工作正常,但在chrome上它们不会。它的已知问题是chrome,如果页面有超过6-8 mp4的视频,它会挂起,因为它试图将所有这些视频预加载到一起。 我想知道视频组件是否提供了将预加载设置为无的选项。我可以看到mediabase有这个选项 https://vaadin.com/api/7.6.7/index.html?com/google/gwt/media/client/MediaBase.html 但我不认为它是视频。 此外,我发现了另一个链接,他们似乎在进行修复https://github.com/vaadin/framework/issues/5178,但无法使其正常工作。
任何帮助?
答案 0 :(得分:1)
在您的链接中的提交/ PR合并之前,它不会在7或8中。
但是,您可以使用AbstractExtension和AbstractExtensionConnector来完成此任务。
AbstractExtension
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
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");
}
}
用法如下:
Video image = new Video();
VideoPreloadExtension ext = new VideoPreloadExtension();
ext.extend(image);
一些笔记(因为vaadin有时会很痛苦)