【问题标题】:display a video in html5 canvas and drag and drop在 html5 画布中显示视频并拖放
【发布时间】:2012-06-02 17:46:52
【问题描述】:

我已经可以将多个图像上传到画布并拖放图像。 现在我需要拖放用户上传的视频。 请注意,用户可以同时拥有图像和视频。

【问题讨论】:

    标签: html video canvas drag-and-drop


    【解决方案1】:

    您必须先加载视频(等待其 readyState 为 4)。

    然后,您可以根据需要在画布上绘制其内容,就像它是任何图像一样:

    function drawMyCanvas() {
        ...
    
        if (videoElement.readyState==4) {
                context.drawImage(videoElement, destX, destY, destWidth, destHeight);
                if (!videoElement.paused) {
                    // set timeout for a new drawing 20 ms later
                    window.setTimeout(drawMyCanvas, 20);
                }
    
      ...
    

    当我这样做时,我通常有一个循环来每 20 毫秒绘制一次图像,并且 mousemove 上有一个处理程序,如果其中一个可移动对象移动,它会调用我的画布绘制函数。

    【讨论】:

    • 谢谢,那行得通,但我有问题,因为我有。 c.fillStyle = "白色"; c.fillRect(0, 0,1300, 768);那是在我拖动图像时清除画布。视频总是以白色闪烁..
    • 如果您在与 fillRect 相同的函数中绘制视频帧,则不应出现闪烁(我没有)。您确定每次绘制画布时都会绘制视频吗?
    • var loop = setInterval(function() { c.fillStyle = "white"; c.fillRect(0, 0,1300, 768); for(var img in images) { images[img] .update(); } }, 10);在 .uptade() 中是我绘制图像和绘制视频帧的位置
    猜你喜欢
    • 2023-03-18
    • 2016-11-12
    • 2013-10-05
    • 2014-03-09
    • 2021-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多