Próbuję użyć płótno za drawImage
metodę ze źródła wideo, ale to nie działa w Androidzie 4.4.2, przetestowane z przeglądarki Chrome.HTML5 Canvas drawImage ze źródła wideo nie działa na Androidzie
Oto mój kod:
$(function() {
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
var video = document.getElementById('video');
var videoWidth;
var videoHeight;
var paused = false;
canvas.addEventListener('click', function() {
if (paused) {
video.play();
} else {
video.pause();
}
paused = !paused;
});
video.addEventListener("loadedmetadata", function() {
videoWidth = this.videoWidth || this.width;
videoHeight = this.videoHeight || this.height;
canvas.width = videoWidth;
canvas.height = videoHeight;
}, false);
video.addEventListener('play', function() {
var $this = this; // cache
(function loop() {
if (! $this.paused && ! $this.ended) {
drawImage($this);
requestAnimationFrame(loop);
// setTimeout(loop, 1000/25); // drawing at 25 fps
}
})();
}, 0);
function drawImage(frame) {
ctx.drawImage(frame, 0, 0);
// ctx.clearRect (0 , 0 , canvas.width, canvas.height);
}
});
Fiddle:http://jsfiddle.net/h1hjp0Lp/
Czy istnieje sposób, aby to działa z urządzeniami z Androidem i iOS, jak również?
Spróbuj zamienić 'click' wydarzenie' touchstart', zobacz czy działa. – Allen
@Allen, dzięki, ale to nie działa. – vitozev
czytając to, wygląda na to, że w Chrome jest błąd. Właśnie sprawdziłem poprzednie demo, które zrobiłem z Video -> Canvas i już nie działają. Będę kontynuować dochodzenie. (Android 5.1) – rlemon