代碼:
頁(yè)面布局:
<div id='takePhoto' >
<div id='support'></div>
<div id='contentHolder'>
<video id='video' width='352' height='496' style='border:1px solid gray;float: left;' autoplay></video>
<div id='imageBox' class='imageBox1'>
<canvas id='canvas'></canvas>
<div class='thumbBox1'></div>
</div>
<div style="clear: both;width: 352px;text-align: center">
<el-button id='snap' class= 'my-button' @click="takePhoto">拍照</el-button>
<el-button id='snap2' style='display: none;' class='my-button' @click="retakePhoto">重新拍照</el-button>
</div>
<div id='cropped1' class='cropped1' style='display: none;'>
</div>
</div>
</div>
js代碼:
created() {
this.getVideo();
},
methods: {
getVideo() {
var video = $('#video');
var videoObj = { 'video': true };
var errBack = function(error) {
console.log('Video capture error: ' + error.message, error.code);
};
var stre;
var mediaStream;
// 支持瀏覽器 谷歌,火狐,360,歐朋
// navigator.getUserMedia這個(gè)寫(xiě)法在Opera中好像是navigator.getUserMedianow
if (navigator.getUserMedia) {
navigator.getUserMedia(videoObj, function(stream) {
video.src = stream;
stre = stream;
video.trigger('play');
}, errBack);
} else if (navigator.webkitGetUserMedia) {
navigator.webkitGetUserMedia(videoObj, function(stream) {
video.src = window.URL.createObjectURL(stream);
mediaStream = stream;
stre = stream;
video.trigger('play');
}, errBack);
} else if (navigator.mozGetUserMedia) {
navigator.mozGetUserMedia(videoObj, function(stream) {
video.src = window.URL.createObjectURL(stream);
mediaStream = stream;
stre = stream;
video.trigger('play');
}, errBack);
}
},
// 點(diǎn)擊拍照
takePhoto() {
var img_src;
$('#video').hide();
$('#snap').hide();
$('#snap2').show();
$('#imageBox').show();
$('#action').show();
$('#cropped1').show();
var canvans = $('#canvas');
var video = $('#video');
var context = canvans.get(0).getContext('2d');
canvans.width(219);
canvans.height(413);
context.drawImage(video, 0, 0);
// 獲取瀏覽器頁(yè)面的畫(huà)布對(duì)象
// 以下開(kāi)始編 數(shù)據(jù)
var imgData = document.getElementsByTagName('canvas')[0].toDataURL('image/jpg');
// 將圖像轉(zhuǎn)換為base64數(shù)據(jù)
var base64Data = imgData.split(',')[1];
$('#canvas').hide();
var options1 = {
thumbBox: '.thumbBox1',
spinner: '.spinner',
imgSrc: imgData
}
},
// 點(diǎn)擊重新拍照
retakePhoto() {
this.getVideo();
$('#video').show();
$('#snap').show();
$('#snap2').hide();
$('#imageBox').hide();
$('#action').hide();
$('#cropped1').hide();
}
}
第一次報(bào)錯(cuò):
加了[0]
修改后:
問(wèn)題:看不到攝像頭獲取的圖像。
你試下這個(gè)例子:
html:
<div>
<video ref="video" width="320" height="320" autoplay></video>
<input type="button" style="width:100px;height:35px;" value="拍 照" @click="takePhoto"/>
</di>
<canvas style="" ref="canvas" width="320" height="320"></canvas>
</div>
主要的js:
getVideo(){
this.$nextTick(() => {
var video = this.$refs.video; //這個(gè)對(duì)應(yīng)的是ref屬性
var videoObj = { "video": true };
navigator.mediaDevices.getUserMedia(videoObj)
.then(function(mediaStream) {
video.srcObject = mediaStream;
video.play();
})
.catch(function(error) {
console.log(error);
})
})
},
takePhoto(){
this.$nextTick(() => {
this.context = this.$refs.canvas.getContext("2d")
this.context.drawImage(this.$refs.video, 0, 0, 330, 250);
})
}
如果需要click事件還是用@click形式吧。。
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專(zhuān)業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。