这是对“Detect play event in youtube wrapped via MediaElement.js”问题的后续提问。我尝试检测问题中的播放或点击事件,但由于跨域问题(可能)无法实现。我还发现,如果直接将YouTube剪辑绘制到画布上,它将不会被复制(将为空白),如下所示:
<!DOCTYPE html>
<html>
<head>
<title>video in canvas</title>
<link rel="stylesheet" href="mediaelementplayer.css" />
<script src="jquery.js"></script>
<script src="mediaelement-and-player.min.js"></script>
<script>
$(document).ready( function() {
$('#v').mediaelementplayer();
var v = $('#v')[0];
var canvas = $('#c')[0];
var context = canvas.getContext('2d');
console.log('play event entered');
draw(v, context, 640, 360);
});
function draw(v, c, w, h) {
// if(v.paused || v.ended) return false;
console.log("draw event entered");
c.drawImage(v, 0, 0, w, h);
setTimeout(draw, 20, v, c, w, h);
}
</script>
</head>
<body>
<video width="640" height="360" id="v" preload="none">
<source type="video/youtube" src="http://www.youtube.com/watch?v=nOEw9iiopwI"/>
</video>
<canvas id="c" width="640" height="360"></canvas>
</body>
</html>
有没有其他更可靠的方法将YouTube流绘制在画布上?谢谢。