当前位置:网站首页>videojs转canvas暂停、播放、切换视频
videojs转canvas暂停、播放、切换视频
2022-07-26 10:24:00 【唐策】

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
#video{
/*display: none;*/
}
</style>
</head>
<body>
<div class="play">播放</div>
<div class="pause">暂停</div>
<div class="playPause">播放或暂停视频</div>
<div class="change-src">切换视频</div>
<video id="video" loop width='300' autoplay webkit-playsinline="true" src='http://www.w3school.com.cn/example/html5/mov_bbb.mp4'></video>
<script src="https://cdn.bootcss.com/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript">
/*
* video视频转成canvas(兼容至IE8+)
* Author: Zijor Created On: 2017-06-25
*
* 使用方法:
* var videoCanvas = new VideoToCanvas(videoDom);
*
* 对象的属性:
* 暂无。
*
* 对象的方法:
* play 播放视频
* pause 暂停视频
* playPause 播放或暂停视频
* change(src) 切换视频。参数src为切换的视频地址
*/
var VideoToCanvas = (function(window, document) {
function VideoToCanvas(videoElement) {
if(!videoElement) {return;}
var canvas = document.createElement('canvas');
canvas.width = videoElement.offsetWidth;
canvas.height = videoElement.offsetHeight;
ctx = canvas.getContext('2d');
var newVideo = videoElement.cloneNode(false);
var timer = null;
var requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;
var cancelAnimationFrame = window.cancelAnimationFrame || window.mozCancelAnimationFrame;
function drawCanvas() {
ctx.drawImage(newVideo, 0, 0, canvas.width, canvas.height);
timer = requestAnimationFrame(drawCanvas);
}
function stopDrawing() {
cancelAnimationFrame(timer);
}
newVideo.addEventListener('play', function() {
drawCanvas();
},false);
newVideo.addEventListener('pause', stopDrawing, false);
newVideo.addEventListener('ended', stopDrawing, false);
videoElement.parentNode.replaceChild(canvas, video);
this.play = function() {
newVideo.play();
};
this.pause = function() {
newVideo.pause();
};
this.playPause = function() {
if(newVideo.paused) {
this.play();
} else {
this.pause();
}
};
this.change = function(src) {
if(!src) {return;}
newVideo.src = src;
};
this.drawFrame = drawCanvas;
}
return VideoToCanvas;
})(window, document);
var video = document.getElementById('video');
var videoCanvas = new VideoToCanvas(video);
$('.play').on('click',function(){
videoCanvas.play();
});
$('.pause').on('click',function(){
videoCanvas.pause();
})
$('.playPause').on('click',function(){
videoCanvas.playPause();
})
$('.change-src').on('click',function(){
videoCanvas.change('p4-video1.mp4');
})
</script>
</body>
</html>
边栏推荐
- Study notes of the third week of sophomore year
- Opencv image processing
- 【socket】三次握手是在listen中完成,accept只从完成连接的队列中拿出一个连接
- [Qualcomm][Network] qti服务分析
- Kaptcha image verification code integration
- String null to empty string (what does empty string mean)
- 单元测试,到底什么是单元测试,为什么单测这么难写
- 【Halcon视觉】编程逻辑
- 数通基础-Telnet远程管理设备
- Getting started with SQL - combined tables
猜你喜欢

Like, "new programmer" e-book is free for a limited time!

Data communication foundation - layer 2 switching principle

INSTALL_FAILED_SHARED_USER_INCOMPATIBLE错误解决方式

【Halcon视觉】图像的傅里叶变换

PLC概述

On the compilation of student management system of C language course (simple version)

Basics of data communication - basic knowledge of network

Review of database -- 1. Overview
![[award-winning question] ask Judea pearl, the Turing prize winner and the father of Bayesian networks](/img/0f/01d6e49fff80a325b667784e40bff3.png)
[award-winning question] ask Judea pearl, the Turing prize winner and the father of Bayesian networks

Necessary for beginners: debug breakpoint debugging skills in idea and common breakpoint skills
随机推荐
Use of Android grendao database
Data communication foundation TCPIP reference model
Learning about tensorflow (I)
Flask框架初学-04-flask蓝图及代码抽离
Okaleido ecological core equity Oka, all in fusion mining mode
数通基础-二层交换原理
Introduction to latex, EPS picture bounding box
The problem of incomplete or partial display of the last recyclerview is solved
[gossip] error loading psychopg2 module: no module named psychopg2
Learning about opencv (4)
数据库的复习--3.SQL语言
Uniapp common error [wxml file compilation error]./pages/home/home Wxml and using MySQL front provided by phpstudy to establish an independent MySQL database and a detailed tutorial for independent da
The CLOB field cannot be converted when querying Damon database
Listening freely, the next stop of online text traffic competition?
Force deduction DFS
INSTALL_ FAILED_ SHARED_ USER_ Incompatible error resolution
Android greendao数据库的使用
SQL优化的魅力!从 30248s 到 0.001s
【Halcon视觉】极坐标变换
Kaptcha image verification code integration