私はHtml5 GetUserMedia APIとキャンバスをWebカメラストリーミングに使用しています.ビデオの再生中に、コードズームでズームイン、ズームアウト、回転などを行いたいのですが、回転が機能しません。私はこれと同じようにコーディングしましたが、GetUserMedia API とキャンバスを使用していません。ここに私のコードがあります
<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>