2017-10-13 59 views
0

我想添加一個視頻對象,就像我在Konva階段添加圖像一樣。問題是當我添加一個視頻(一個mp4/mov文件)時,它不播放該視頻。當我調整瀏覽器窗口的大小時,我可以看到視頻幀正在移動。但是,當瀏覽器窗口沒有調整大小時,視頻無法播放。我正在使用React Konva。如何在Konva階段添加視頻(.mp4,.mov)?

回答

1

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

+0

Lavrton你好,謝謝你。有效。但是,如果我想添加GIF/APNG,我將如何添加它?我是否會添加相同的方式,視頻是在這裏添加還是將我添加爲像添加一個常規圖像?如果我像添加視頻一樣添加APNG/GIF,則動畫不起作用。它只是顯示第一個靜態幀。如果添加,只是一個圖像,APNG/GIF的動畫會起作用嗎? – Khalid