站長資訊網
        最全最豐富的資訊網站

        通過H5實現拍照功能的實例詳解

        HTML5拍照首先,我們看看HTML代碼結構,當然,這部分的DOM內容應該是在用戶允許使用其攝像頭事件出發(fā)后,動態(tài)加載生成的,感興趣的朋友可以了解下 演示地址: HTML5拍照演示
        首先,我們看看HTML代碼結構,當然,這部分的DOM內容應該是在用戶允許使用其攝像頭事件出發(fā)后,動態(tài)加載生成的。
        注意: 我們采用的是 640X480的分辨率,如果采用JS動態(tài)生成,那么您是可以靈活控制分辨率的。

        代碼如下:

        <!--   聲明: 此p應該在允許使用webcam,網絡攝像頭之后動態(tài)生成   寬高: 640 *480,當然,可以動態(tài)控制啦!   -->   <!--   Ide  all  y these elements aren't created until it's confirmed that the   client supports video/camera, but   for   the sake of illustrating the   elements involved, they are created with markup (not   JavaScript  )   -->   <video id="video"   width  ="640"   height  ="480"   autoplay  ></video>   <button id="snap">Snap Photo</button>   <  canvas   id="canvas" width="640" height="480"></canvas>

        JavaScript
        只要上面的HTML元素創(chuàng)建完成,那么JavaScript部分將簡單的超乎你想象的簡單:

        代碼如下:

        // 設置事件監(jiān)聽,DOM內容加載完成,和  jQuery  的$.ready() 效果差不多。   window.addEvent  List  ener("DOMContentLoaded", function() {   // canvas 元素將用于抓拍   var canvas =   document  .getElementById("canvas"),   context = canvas.getContext("2d"),   // video 元素,將用于接收并播放攝像頭 的數據流   video = document.getElementById("video"),   videoObj = { "video": true },   // 一個出錯的  回調函數  ,在控制臺打印出錯信息   errBack = function(error) {   if  ("  object  " === typeof window.console){   console.log("Video capture error: ", error.code);   }   };   // Put video listeners into place   // 針對標準的瀏覽器   if(navigator.getUserMedia) { // Standard   navigator.getUserMedia(videoObj, function(stream) {   video.src = stream;   video.play();   }, errBack);   }   else   if(navigator.webkitGetUserMedia) { // WebKit-prefixed   navigator.webkitGetUserMedia(videoObj, function(stream){   video.src = window.webkitURL.createObjectURL(stream);   video.play();   }, errBack);   }   // 對拍照  按鈕  的事件監(jiān)聽   document.getElementById("snap").addEventListener("click", function() {   // 畫到畫布上   context.drawImage(video, 0, 0, 640, 480);   });   }, false);

        最后,記得講您的網頁放到web服務器下面,然后通過http協(xié)議來訪問哦。
        另外,需要瀏覽器版本較新,并且支持HTML5的相關新特性才可以。
        譯者不算稱職啦,沒有按原文來翻譯。使用的瀏覽器是chrome 28。
        最后,貼上完整的代碼,比較呆板。

        代碼如下:

        <!DOCTYPE html>   <html>   <head>   <title> 瀏覽器webcamera </title>   <meta name="Generator" content="EditPlus">   <meta name="Author" content="renfufei@qq.com">   <meta name="Description" content="inveted by: http://davidwalsh.name/browser-camera">   <script>   // 設置事件監(jiān)聽,DOM內容加載完成,和jQuery的$.ready() 效果差不多。   window.addEventListener("DOMContentLoaded", function() {   // canvas 元素將用于抓拍   var canvas = document.getElementById("canvas"),   context = canvas.getContext("2d"),   // video 元素,將用于接收并播放攝像頭 的數據流   video = document.getElementById("video"),   videoObj = { "video": true },   // 一個出錯的回調函數,在控制臺打印出錯信息   errBack = function(error) {   if("object" === typeof window.console){   console.log("Video capture error: ", error.code);   }   };   // Put video listeners into place   // 針對標準的瀏覽器   if(navigator.getUserMedia) { // Standard   navigator.getUserMedia(videoObj, function(stream) {   video.src = stream;   video.play();   }, errBack);   } else if(navigator.webkitGetUserMedia) { // WebKit-prefixed   navigator.webkitGetUserMedia(videoObj, function(stream){   video.src = window.webkitURL.createObjectURL(stream);   video.play();   }, errBack);   }   // 對拍照按鈕的事件監(jiān)聽   document.getElementById("snap").addEventListener("click", function() {   // 畫到畫布上   context.drawImage(video, 0, 0, 640, 480);   });   }, false);   </script>   </head>   <body>   <p>   <!--   聲明: 此p應該在允許使用webcam,網絡攝像頭之后動態(tài)生成   寬高: 640 *480,當然,可以動態(tài)控制啦!   -->   <!--   Ideally these elements aren't created until it's confirmed that the   client supports video/camera, but for the sake of illustrating the   elements involved, they are created with markup (not JavaScript)   -->   <video id="video" width="640" height="480" autoplay></video>   <button id="snap">Snap Photo</button>   <canvas id="canvas" width="640" height="480"></canvas>   </p>   </body>   </html>

        【相關推薦】

        1. Html5免費視頻教程

        2. HTML5實現微信播放全屏的方法詳解

        3. 關于H5新標簽的瀏覽器兼容問題的詳解

        4. 整體概述如何用H5制作網頁

        5. H5與傳統(tǒng)html的區(qū)別

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产高清在线精品一区| 亚洲国产精品久久久久网站| 99久久免费国产精精品| 久久伊人精品青青草原日本| 国产精品久久久久AV福利动漫| 精品一区二区无码AV| 久久精品免费一区二区三区| 国产精品涩涩涩视频网站| 亚洲国产人成精品| 国产视频精品免费视频| 91精品视频在线| 国产日韩一区在线精品欧美玲| 欧美肥屁VIDEOSSEX精品| 亚洲韩精品欧美一区二区三区| 国产精品综合久久第一页| 午夜精品美女自拍福到在线| 国产精品无码专区| 亚洲AV无码国产精品麻豆天美| 精品一区二区三区高清免费观看| 大胸国产精品视频| 久久精品国产免费一区| 91精品美女在线| 国产在线精品一区二区在线观看 | 亚洲国产另类久久久精品小说| 国产综合精品久久亚洲 | 久久se精品一区二区影院| 欧洲精品视频在线观看| 精品亚洲综合在线第一区| 99香蕉国产精品偷在线观看| 精品一区二区三区在线观看视频| 亚洲精品字幕在线观看| 亚洲午夜福利精品久久| 亚洲精品偷拍视频免费观看| 亚洲精品国产成人影院| 亚洲国产精品丝袜在线观看| 亚洲欧洲久久久精品| 亚洲一区二区精品视频| 亚洲精品无码久久久久| 无码精品人妻一区二区三区人妻斩| 综合在线视频精品专区| 午夜欧美精品久久久久久久|