點(diǎn)擊“保存”按鈕,畫布圖片將被保存為“照片.png”以供下載。APP開發(fā)者可以自己體驗(yàn),本例不做圖片說明。利用編輯器打開“8-1.用HTML5拍照和攝像.html”文件,代碼如下:【代碼8-1】
01 <! DOCTYPE HTML> 02 < html> 03 < head> 04 < style> // ...... 省略 樣式 代碼, 讀者 可以 參考 下載 資 源源 碼 </ style> 05 </ head> 06 < body> 07 < header>< h2> 用 HTML 5 拍照 和 攝像</ h2></ header>
08 < section> 09 <!-- 關(guān)閉 音頻、 顯示 視頻 工具 條 --> 10 < video width=" 360" height=" 240" muted controls></ video> 11 <!-- 快照 畫布 --> 12 < canvas width=" 240" height=" 160"></ canvas> 13 </ section> 14 < section> 15 < a id=" save" href=" javascript:;" download=" 照片"> 保 存</ a> 16 < button id=" photo"> 快 照</ button> 17 </ section> 18 </ body> 19 < script> 20 (function () { 21 var video = document. querySelector(' video'), // 視頻 元素 22 canvas = document. querySelector(' canvas'), // 畫布 元素 23 photo = document. getElementById(' photo'), // 拍照 按鈕 24 save = document. getElementById(' save'); // 保存 按鈕 25 // 獲取 瀏覽器 攝像 頭 視頻 流 26 navigator. getUserMedia = navigator. getUserMedia || navigator.
navigator. webkitGetUserMedia || 27 navigator. mozGetUserMedia; 28 if (navigator. getUserMedia) { 29 navigator. getUserMedia({ video: true }, function (stream) { // 攝像 頭 連接 成功 回 調(diào) 30 if ('mozSrcObject' in video) { // 是否 為 火狐 瀏覽器 31 video. mozSrcObject = stream; 32 } else if (window. webkitURL) { // 是否 為 Webkit 核心 瀏覽器 33 // 獲取 流的 對象 URL 值 賦予 video 元素 src 34 video. src = window. webkitURL. createObjectURL( stream); 35 } else { // 其他 標(biāo)準(zhǔn) 瀏覽器 36 video. src = stream; 37 } 38 video. play(); // 播放 視頻 39 }, function (error) { // 攝像 頭 連接 失敗 回 調(diào) 40 console. log( error); // 控制臺 顯示 錯誤 回 調(diào) 信息
41 }); 42 }; 43 photo. addEventListener(' click', function (e) {// 拍照 按鈕 點(diǎn)擊 事件 監(jiān)聽 44 e. preventDefault(); // 阻止 按鈕 默認(rèn) 事件 45 canvas. getContext(' 2d'). drawImage( video, 0, 0, 240, 160); // 在 畫布 中 繪制 視頻 照片 46 save. setAttribute(' href', canvas. toDataURL(' image/ png')); // href 屬性 值 為 圖片 base64 值 47 }, false); 48 })(); 49 </ script> 50 </ html>