佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 使用HTML5拍照示例代碼

使用HTML5拍照示例代碼

熱門標簽:阿里云 使用U盤裝系統(tǒng) 網(wǎng)站建設 硅谷的囚徒呼叫中心 美圖手機 檢查注冊表項 百度競價點擊價格的計算公式 智能手機
演示地址: HTML5拍照演示
首先,我們看看HTML代碼結構,當然,這部分的DOM內(nèi)容應該是在用戶允許使用其攝像頭事件出發(fā)后,動態(tài)加載生成的。
注意: 我們采用的是 640X480的分辨率,如果采用JS動態(tài)生成,那么您是可以靈活控制分辨率的。

復制代碼
代碼如下:

<!--
聲明: 此div應該在允許使用webcam,網(wǎng)絡攝像頭之后動態(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>

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

復制代碼
代碼如下:

// 設置事件監(jiān)聽,DOM內(nèi)容加載完成,和jQuery的$.ready() 效果差不多。
window.addEventListener("DOMContentLoaded", function() {
// canvas 元素將用于抓拍
var canvas = document.getElementById("canvas"),
context = canvas.getContext("2d"),
// video 元素,將用于接收并播放攝像頭 的數(shù)據(jù)流
video = document.getElementById("video"),
videoObj = { "video": true },
// 一個出錯的回調(diào)函數(shù),在控制臺打印出錯信息
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);

最后,記得講您的網(wǎng)頁放到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內(nèi)容加載完成,和jQuery的$.ready() 效果差不多。
window.addEventListener("DOMContentLoaded", function() {
// canvas 元素將用于抓拍
var canvas = document.getElementById("canvas"),
context = canvas.getContext("2d"),
// video 元素,將用于接收并播放攝像頭 的數(shù)據(jù)流
video = document.getElementById("video"),
videoObj = { "video": true },
// 一個出錯的回調(diào)函數(shù),在控制臺打印出錯信息
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>
<div>
<!--
聲明: 此div應該在允許使用webcam,網(wǎng)絡攝像頭之后動態(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>
</div>
</body>
</html>

標簽:通遼 懷化 湘潭 湖北 山南 賀州 黃山 煙臺

巨人網(wǎng)絡通訊聲明:本文標題《使用HTML5拍照示例代碼》,本文關鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    敦煌市| 广昌县| 台南县| 浑源县| 玉屏| 柯坪县| 宁波市| 西青区| 藁城市| 平果县| 灵璧县| 营山县| 宁武县| 吉木萨尔县| 紫金县| 伊宁市| 贺州市| 阿克陶县| 洞口县| 福海县| 神池县| 巢湖市| 郑州市| 利津县| 色达县| 比如县| 仁寿县| 年辖:市辖区| 松桃| 江口县| 瑞金市| 江都市| 铁岭县| 兴海县| 巴南区| 沾化县| 巴里| 政和县| 富蕴县| 营口市| 都昌县|