Я использую Html5 GetUserMedia апи и холст для streaming.while веб-камеры, играя видео я хочу ZoomIn, ZoomOut, поворот и т.д. в моем коде масштабирования, вращения не работают. i закодированы так же, как this. Но они не используют API GetUserMedia и холст. вот мой код Как увеличить и повернуть видео в веб-камере, передаваемое html5 API GetUserMedia с холстом?
<canvas id="canvas" width="350" height="600"">
</canvas>
<div id="buttonWrapper">
<input type="button" id="play" value="pause">
<input type="button" id="plus" value="+">
<input type="button" id="minus" value="-">
<input type="button" id="rotateleft" value="rotate left">
<input type="button" id="rotateright" value="rotate rightt">
</div>
<div id="RPHTML5Video" style="position: relative; z-index: -1;">
<video id="video" style="display: none;position:absolute;" autoplay src="">
</video>
</div>
<script>
var video = document.getElementById("video");
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext('2d');
navigator.webkitGetUserMedia({video: true}, function(stream) {
video.src = window.URL.createObjectURL(stream);
setInterval(function() {ctx.drawImage(video, 14, 110, 300,550);
},20);
});
document.addEventListener('DOMContentLoaded', video);
document.getElementById("play").addEventListener("click", function(){
if(video.paused){
video.play();
play.innerHTML = 'pause';
} else {
video.pause();
play.innerHTML = 'play';
}
},false);
var zoom = 1,
rotate = 0;
var i,j,t;
var properties = ['transform', 'WebkitTransform', 'MozTransform',
'msTransform', 'OTransform'],
prop = properties[0];
for(i=0,j=properties.length;i<j;i++){
if(typeof stage.style[properties[i]] !== 'undefined'){
prop = properties[i];
break;
}
}
document.getElementById("plus").addEventListener("click", function(){
zoom = zoom + 0.1;
video.style[prop]='scale('+zoom+') rotate('+rotate+'deg)';
},false);
document.getElementById("minus").addEventListener("click", function(){
zoom = zoom - 0.1;
video.style[prop]='scale('+zoom+') rotate('+rotate+'deg)';
},false);
document.getElementById("rotateleft").addEventListener("click", function(){
rotate = rotate + 5;
video.style[prop]='rotate('+rotate+'deg) scale('+zoom+')';
},false);
document.getElementById("rotateright").addEventListener("click", function(){
rotate = rotate - 5;
video.style[prop]='rotate('+rotate+'deg) scale('+zoom+')';
},false);
</script>
видео играет, но зум и вращение не работает. Функции для увеличения и вращения кажутся идеальными. –
@ Нишам Махсин и мои предложения ничего не изменили? Я также заметил, что у вас есть неопределенное значение в вашем коде 'stage' (' stage.style'); – K3N
Я изменил, как вам было предложено, но в моем коде тоже воспроизводилось видео, y этот код document.getElementById («плюс»). AddEventListener («click», function() { \t \t zoom = zoom + 0.1; video .style [prop] = 'scale (' + zoom + ') вращать (' + rotate + 'deg)'; \t \t }, false); не работает –