先簡單的添加需要的控件
成都創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、稱多網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、商城系統(tǒng)網(wǎng)站開發(fā)、集團公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為稱多等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
video id="video" autoplay=""style='width:640px;height:480px'/video
button id='picture'PICTURE/button
canvas id="canvas" width="640" height="480"/canvas
并在script中定義
var video = document.getElementById("video");
var context = canvas.getContext("2d")
var errocb = function () {
console.log('sth wrong!');
}
然后,簡單的說就是利用html5的api navigator.getUserMedia來開啟設(shè)備的攝像頭,瀏覽器上會出現(xiàn)圖示中的提示
if (navigator.getUserMedia) { // 標(biāo)準(zhǔn)的API
navigator.getUserMedia({ "video": true }, function (stream) {
video.src = stream;
video.play();
}, errocb);
} else if (navigator.webkitGetUserMedia) { // WebKit 核心的API
navigator.webkitGetUserMedia({ "video": true }, function (stream) {
video.src = window.webkitURL.createObjectURL(stream);
video.play();
}, errocb);
}
網(wǎng)上有些例子中,navigator.getUserMedia第一個參數(shù)是‘video’,這可能是早期的版本,現(xiàn)在必須是obj
還有關(guān)于getUserMedia和webkitGetUserMedia 的判斷,網(wǎng)上有這么寫的
navigator.getUserMedia = (navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia ||
navigator.msGetUserMedia);
但要注意,他們綁定video.src的方法不一樣,偶沒有測過createObjectURL是否通用
拍照功能就是簡單的調(diào)用canvas中的drawImage即可
document.getElementById("picture").addEventListener("click", function () {
context.drawImage(video, 0, 0, 640, 480);
});
1)獲取視頻流
添加一個HTML5的Video標(biāo)簽,并將從攝像頭獲得視頻作為這個標(biāo)簽的輸入來源
var video = document.getElementByIdx_x_x("video");
navigator.getUserMedia({video:true}, function (stream) {
video.src = window.webkitURL.createObjectURL(stream);
}, function (error) { alert(error); });
2)拍照
關(guān)于拍照功能,采用HTML5的Canvas實時捕獲Video標(biāo)簽的內(nèi)容,Video元素能作為Canvas圖像的輸入
function scamera() {
var videoElement = document.getElementByIdx_x_x('video');
var canvasObj = document.getElementByIdx_x_x('canvas1');
var context1 = canvasObj.getContext('2d');
context1.fillStyle = "#ffffff";
context1.fillRect(0, 0, 320, 240);
context1.drawImage(videoElement, 0, 0, 320, 240);
}
3)圖片獲取
要從Canvas獲取圖片數(shù)據(jù),其核心思路是用canvas的toDataURL將Canvas的數(shù)據(jù)轉(zhuǎn)換為base64位編碼的PNG圖像
var imgData=canvas.toDataURL(“image/png”);
imgData格式如下:”data:image/png;base64,xxxxx“
真正圖像數(shù)據(jù)是base64編碼逗號之后的部分
一)獲取視頻流 添加HTML5Video標(biāo)簽并攝像獲視頻作標(biāo)簽輸入源 var video = document.getElementByIdx_x_x("video"); navigator.getUserMedia({video:true}, function (stream) { video.src = window.webkitURL.createObjectURL(stream); }, function (error) { alert(error); }); 二)拍照 關(guān)于拍照功能采用HTML5Canvas實捕獲Video標(biāo)簽內(nèi)容Video元素能作Canvas圖像輸入 function scamera() { var videoElement = document.getElementByIdx_x_x('video'); var canvasObj = document.getElementByIdx_x_x('canvas一'); var context一 = canvasObj.getContext('二d'); context一.fillStyle = "#ffffff"; context一.fillRect(0, 0, 三二0, 二四0); context一.drawImage(videoElement, 0, 0, 三二0, 二四0); } 三)圖片獲取 要Canvas獲取圖片數(shù)據(jù)其核思路用canvastoDataURLCanvas數(shù)據(jù)轉(zhuǎn)換base陸四位編碼PNG圖像 var imgData=canvas.toDataURL(image/png); imgData格式:data:image/png;base陸四,xxxxx 真圖像數(shù)據(jù)base陸四編碼逗號部
cordova
用代碼調(diào)用硬件,這里面有個方法可以調(diào)用手機的攝像頭,里面我記得還有個功能查看手機相冊
1、實現(xiàn)頭的方法代碼。
2、編寫CSS樣式的方法代碼。
3、html上傳代碼。
4、JS處理方法代碼。
5、測試結(jié)果如下。
注意事項:
JavaScript是一種網(wǎng)絡(luò)腳本語言,在web應(yīng)用開發(fā)中得到了廣泛的應(yīng)用,它經(jīng)常被用來為網(wǎng)頁添加各種動態(tài)功能,為用戶提供更加流暢美觀的瀏覽效果,通常JavaScript腳本被嵌入到HTML中來實現(xiàn)自己的功能。
需要加載cordova.js
方法:
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
pictureSource = navigator.camera.PictureSourceType;
destinationType = navigator.camera.DestinationType;
}
//相冊
function fromCamera()
{
var source = pictureSource.PHOTOLIBRARY;
navigator.camera.getPicture(function (imageData) {
setimg(imageData);
}, function (message) {
if (source == pictureSource.CAMERA)
alert('加載照相機出錯!' + message);
else
alert('加載相冊出錯!' + message);
}, {
quality: 50,
destinationType: destinationType.FILE_URI,
sourceType: source
});
}
//拍照
function EditImgPz()
{
navigator.camera.getPicture(function (imageData) {
setimg(imageData);
}, function (message) {
alert(message);
}, {
quality: 50,
destinationType: navigator.camera.DestinationType.FILE_URI,
sourceType: Camera.PictureSourceType.CAMERA,
allowEdit: true,
encodingType: Camera.EncodingType.JPEG,
popoverOptions: CameraPopoverOptions,
saveToPhotoAlbum: true
});
}