javascript - 如何在 Konva 阶段添加视频(.mp4、.mov)?

标签 javascript reactjs react-native react-redux konvajs

我想添加一个视频对象,就像我在 Konva 阶段添加图像一样。问题是当我添加视频(mp4/mov 文件)时,它不会播放该视频。当我调整浏览器窗口大小时,我可以看到视频帧正在移动。但是,当浏览器窗口未调整大小时,视频不会播放。我正在使用 React Konva。

最佳答案

Konva 不适用于视频。但您可以将视频显示为图像元素,然后频繁更新图层:

class MyVideo extends React.Component {
    constructor(...args) {
      super(...args);
      const video = document.createElement('video');
      video.src = 'http://clips.vorwaerts-gmbh.de/VfE_html5.mp4';
      this.state = {
        video: video
      };
      video.addEventListener('canplay', () => {
        video.play();
        this.image.getLayer().batchDraw();
        this.requestUpdate();
      });
    }
    requestUpdate = () => {
      this.image.getLayer().batchDraw();
      requestAnimationFrame(this.requestUpdate);
    }
    render() {
        return (
            <Image
                ref={node => { this.image = node; }}
                x={10} y={10} width={200} height={200}
                image={this.state.video}
            />
        );
    }
}

演示:http://jsbin.com/haxufutaxe/1/edit?js,output

关于javascript - 如何在 Konva 阶段添加视频(.mp4、.mov)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46721024/

相关文章:

javascript - 解构数组数组以访问各个元素

javascript - 错误 : "Cannot find module" while running firebase cloud function

javascript - 找不到模块 '@babel/generator' 但已安装

javascript - 使用正则表达式在 javascript 中将每个出现的链接替换为其特定的 href 对象( map 链接 -> a href=link)

javascript - 有没有办法在 SetState 中使用 async wait

ios - 为 ios 构建了一个 react native 应用程序,我无法推送到应用程序商店,xcode 不显示分发应用程序选项

javascript - ECMAScript 6 的 function.name 属性

javascript - 如何在 Javascript 中获得透明的粘贴图像

javascript - 如何在 Linking.openURL(url) 添加 header 参数

javascript - React 组件不会随着 redux 状态的变化而更新