我有超过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,但无法使它工作。
有什么帮助吗?
发布于 2017-06-19 18:04:53
在您的链接中的commit/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有时会很痛苦)
VideoPreloadConnector
需要位于以".client“结尾的包名中。下面是它工作的铬元素的屏幕截图:
HTHs!
https://stackoverflow.com/questions/44632143
复制相似问题