亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

js+HTML5基于過濾器從攝像頭中捕獲視頻的方法

2019-11-20 12:13:54
字體:
來源:轉載
供稿:網友

本文實例講述了js+HTML5基于過濾器從攝像頭中捕獲視頻的方法。分享給大家供大家參考。具體如下:

index.html頁面:

<div class="warning"><h2>Native web camera streaming (getUserMedia) is not supported in this browser.</h2></div><div class="container">  <h3>Current filter is: None</h3>  <button>Click here to change video filter</button>  <div style="clear:both"></div>  <div class="col">    <h2>HTML5 <video> object</h2>    <video></video>  </div>  <div class="col">    <h2>HTML5 <canvas> object</h2>    <canvas width="600" height="450"></canvas>  </div></div>

style.css文件:

.grayscale{  -webkit-filter:grayscale(1);  -moz-filter:grayscale(1);  -o-filter:grayscale(1);  -ms-filter:grayscale(1);  filter:grayscale(1);}.sepia{  -webkit-filter:sepia(0.8);  -moz-filter:sepia(0.8);  -o-filter:sepia(0.8);  -ms-filter:sepia(0.8);  filter:sepia(0.8);}.blur{  -webkit-filter:blur(3px);  -moz-filter:blur(3px);  -o-filter:blur(3px);  -ms-filter:blur(3px);  filter:blur(3px);}.brightness{  -webkit-filter:brightness(0.3);  -moz-filter:brightness(0.3);  -o-filter:brightness(0.3);  -ms-filter:brightness(0.3);  filter:brightness(0.3);}.contrast{  -webkit-filter:contrast(0.5);  -moz-filter:contrast(0.5);  -o-filter:contrast(0.5);  -ms-filter:contrast(0.5);  filter:contrast(0.5);}.hue-rotate{  -webkit-filter:hue-rotate(90deg);  -moz-filter:hue-rotate(90deg);  -o-filter:hue-rotate(90deg);  -ms-filter:hue-rotate(90deg);  filter:hue-rotate(90deg);}.hue-rotate2{  -webkit-filter:hue-rotate(180deg);  -moz-filter:hue-rotate(180deg);  -o-filter:hue-rotate(180deg);  -ms-filter:hue-rotate(180deg);  filter:hue-rotate(180deg);}.hue-rotate3{  -webkit-filter:hue-rotate(270deg);  -moz-filter:hue-rotate(270deg);  -o-filter:hue-rotate(270deg);  -ms-filter:hue-rotate(270deg);  filter:hue-rotate(270deg);}.saturate{  -webkit-filter:saturate(10);  -moz-filter:saturate(10);  -o-filter:saturate(10);  -ms-filter:saturate(10);  filter:saturate(10);}.invert{  -webkit-filter:invert(1);  -moz-filter:invert(1);  -o-filter: invert(1);  -ms-filter: invert(1);  filter: invert(1);}

script.js 文件:

// Main initializationdocument.addEventListener('DOMContentLoaded', function() {  // Global variables  var video = document.querySelector('video');  var audio, audioType;  var canvas = document.querySelector('canvas');  var context = canvas.getContext('2d');  // Custom video filters  var iFilter = 0;  var filters = [    'grayscale',    'sepia',    'blur',    'brightness',    'contrast',    'hue-rotate',    'hue-rotate2',    'hue-rotate3',    'saturate',    'invert',    'none'  ];  // Get the video stream from the camera with getUserMedia  navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia ||    navigator.mozGetUserMedia || navigator.msGetUserMedia;  window.URL = window.URL || window.webkitURL || window.mozURL || window.msURL;  if (navigator.getUserMedia) {    // Evoke getUserMedia function    navigator.getUserMedia({video: true, audio: true}, onSuccessCallback, onErrorCallback);    function onSuccessCallback(stream) {      // Use the stream from the camera as the source of the video element      video.src = window.URL.createObjectURL(stream) || stream;      // Autoplay      video.play();      // HTML5 Audio      audio = new Audio();      audioType = getAudioType(audio);      if (audioType) {        audio.src = 'polaroid.' + audioType;        audio.play();      }    }    // Display an error    function onErrorCallback(e) {      var expl = 'An error occurred: [Reason: ' + e.code + ']';      console.error(expl);      alert(expl);      return;    }  } else {    document.querySelector('.container').style.visibility = 'hidden';    document.querySelector('.warning').style.visibility = 'visible';    return;  }  // Draw the video stream at the canvas object  function drawVideoAtCanvas(obj, context) {    window.setInterval(function() {      context.drawImage(obj, 0, 0);    }, 60);  }  // The canPlayType() function doesn't return true or false. In recognition of how complex  // formats are, the function returns a string: 'probably', 'maybe' or an empty string.  function getAudioType(element) {    if (element.canPlayType) {      if (element.canPlayType('audio/mp4; codecs="mp4a.40.5"') !== '') {        return('aac');      } else if (element.canPlayType('audio/ogg; codecs="vorbis"') !== '') {        return("ogg");      }    }    return false;  }  // Add event listener for our video's Play function in order to produce video at the canvas  video.addEventListener('play', function() {    drawVideoAtCanvas(this, context);  }, false);  // Add event listener for our Button (to switch video filters)  document.querySelector('button').addEventListener('click', function() {    video.className = '';    canvas.className = '';    var effect = filters[iFilter++ % filters.length]; // Loop through the filters.    if (effect) {      video.classList.add(effect);      canvas.classList.add(effect);      document.querySelector('.container h3').innerHTML = 'Current filter is: ' + effect;    }  }, false);}, false);

希望本文所述對大家的javascript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91成品人片a无限观看| 久久久女女女女999久久| 久久久在线免费观看| 久久中文字幕在线视频| 亚洲视频专区在线| 日韩欧美福利视频| 久久偷看各类女兵18女厕嘘嘘| 欧美另类在线播放| 日本精品一区二区三区在线| 国产精品午夜国产小视频| 97国产suv精品一区二区62| 国产精品美女网站| 欧美性猛交xxxx偷拍洗澡| 国产精品丝袜白浆摸在线| 色综合伊人色综合网| 亚洲品质视频自拍网| 亚洲最新av网址| 国内外成人免费激情在线视频| 中文字幕在线看视频国产欧美在线看完整| 国产精品羞羞答答| 26uuu日韩精品一区二区| 欧美孕妇性xx| 91热福利电影| 在线激情影院一区| 亚洲精品国产综合区久久久久久久| 91超碰中文字幕久久精品| 亚洲成av人影院在线观看| 美女av一区二区| 日韩av影片在线观看| 2019中文字幕在线免费观看| 国模gogo一区二区大胆私拍| 欧美一级淫片videoshd| 亚洲剧情一区二区| 亚洲专区国产精品| 97国产精品视频人人做人人爱| 久久国产加勒比精品无码| 国产视频在线观看一区二区| 91在线视频导航| 在线观看欧美www| 国产精品精品一区二区三区午夜版| 亚洲精品日韩在线| 国产精品一区二区在线| 草民午夜欧美限制a级福利片| 国产成人精品一区二区在线| 日韩av电影手机在线观看| 国产精品极品尤物在线观看| 国产亚洲一区二区精品| 国产精品1区2区在线观看| 日韩欧美在线视频观看| 国产一区欧美二区三区| 欧美在线视频一区二区| 欧美电影在线观看网站| 在线国产精品视频| 国产精品手机播放| 国产欧美婷婷中文| 国产视频久久网| 最好看的2019年中文视频| 欧美成人免费在线视频| 成人免费福利视频| 国产亚洲一区二区精品| 精品女同一区二区三区在线播放| 国产男女猛烈无遮挡91| 精品亚洲一区二区三区在线播放| 在线观看不卡av| 色樱桃影院亚洲精品影院| 精品国产一区二区三区四区在线观看| 日韩高清欧美高清| 欧美激情在线观看视频| 亚洲自拍偷拍在线| 久久精品免费电影| 亚洲精选一区二区| 亚洲电影中文字幕| 91精品视频网站| 亚洲tv在线观看| 国内精品伊人久久| 色yeye香蕉凹凸一区二区av| 一区二区三区精品99久久| 国产精品久久久久久影视| 91久久精品国产91性色| 亚洲国产精品专区久久| 一本色道久久88综合日韩精品| 成人做爰www免费看视频网站| 成人观看高清在线观看免费| 日韩av在线高清| 日本a级片电影一区二区| 欧美一级大片在线观看| 欧美疯狂做受xxxx高潮| 91黑丝在线观看| 亚洲欧美日本另类| 久热精品在线视频| 精品欧美aⅴ在线网站| zzijzzij亚洲日本成熟少妇| 亚洲精品日韩激情在线电影| 亚洲黄色av女优在线观看| 麻豆一区二区在线观看| 成人国产亚洲精品a区天堂华泰| 97精品国产97久久久久久春色| 久久中文字幕在线视频| 精品美女永久免费视频| 欧美午夜精品久久久久久久| 中文字幕日韩综合av| 98精品在线视频| 欧美理论电影在线播放| 在线色欧美三级视频| 欧美午夜片在线免费观看| 91人成网站www| 日韩亚洲第一页| 懂色av影视一区二区三区| 久久成人综合视频| www.日韩av.com| 亚洲精品按摩视频| 久久精品国产成人| 欧美激情性做爰免费视频| 日韩电影在线观看永久视频免费网站| 国产精品成av人在线视午夜片| 欧美成人四级hd版| 久久中文久久字幕| 久久亚洲影音av资源网| 国产精品v日韩精品| 色综合视频网站| 亚洲视频一区二区| 亚洲精品视频在线观看视频| 97超级碰碰碰| 国产精品亚洲欧美导航| 日韩电影中文字幕在线| 国产免费一区二区三区在线观看| 亚洲最大的成人网| yellow中文字幕久久| 日韩在线观看免费| 久久久久久久久久久久久久久久久久av| 日韩欧美在线免费| 欧美日韩国产一区二区| 日韩中文字幕视频在线观看| 亚洲国产高清高潮精品美女| 91高清视频免费| 97视频免费观看| 国产999精品久久久影片官网| 综合欧美国产视频二区| 国产日韩中文字幕| 日韩一区av在线| 成人黄色中文字幕| 亚洲国产婷婷香蕉久久久久久| 欧美日韩国产综合视频在线观看中文| 69久久夜色精品国产69| 国产精品视频区| 久久久久久久久综合| 国产日韩精品在线播放| 亚洲国产成人久久| 国产视频久久网| 日韩欧美国产视频| 色樱桃影院亚洲精品影院| 欧美另类xxx| 午夜精品国产精品大乳美女| 成人国内精品久久久久一区| 日韩av在线资源| 欧美日韩国产中文精品字幕自在自线| 91在线高清免费观看| 九九精品视频在线观看| 欧美黄色片在线观看| 成人午夜激情免费视频| 日韩成人中文字幕在线观看| 欧美激情视频给我| 在线播放国产一区二区三区| 亚洲xxxxx性|