zoukankan      html  css  js  c++  java
  • canvas播放视频

    思路

    通过监听video的play事件,不断的获取最新的video视频帧数据,然后将最新的视频帧通过drawImage绘制到canvas中。同样的思路,可以通过navigator.getUserMedia获取摄像头数据,然后通过canvas绘制出来,或者通过websocket/webrtc等方法传输给服务器或者其它客户端就可以实现视频聊天。

    代码

    <!DOCTYPE html>
    <html lang="en"> <head> <meta charset="UTF-8"> <title>video play in canvas</title> <style> #video { 600px; height: 400px; } </style> </head> <body> <div> <video id="video" src="movie.mp4" controls></video> <br/> <button id="play-button">play</button> <button id="pause-button">pause</button>
       <br/> <canvas id="canvas" width="600" height="400"></canvas> </div> <script> var video = document.getElementById('video'); var playButton = document.getElementById('play-button'); var pauseButton = document.getElementById('pause-button'); var canvas = document.getElementById("canvas"); var context = canvas.getContext('2d'); playButton.onclick = function () { video.play(); }; pauseButton.onclick = function () { video.pause(); }; video.addEventListener('play', playCallBack); function playCallBack() { if(video.paused || video.ended) { return; } captureFrame(); setTimeout(playCallBack, 0); } function captureFrame() { context.drawImage(video, 0, 0, 600, 400); } </script> </body> </html>

      效果如下:

  • 相关阅读:
    git命令 高级 【重要】
    【转载】webstorm-前端javascript开发神器中文教程和技巧分享
    eclipse 快捷键
    eclipse代码自动提示
    openstack 环境搭建
    python+Eclipse+pydev环境搭建
    【转载】CSS + DIV 实现局部布局
    【转载】CSS + DIV 实现整理布局
    CSS 标签实例二
    CSS 标签实例一 homepage.css
  • 原文地址:https://www.cnblogs.com/yangxunwu1992/p/14279856.html
Copyright © 2011-2022 走看看