日日爱影视_日本一区二区三区日本免费_大香焦伊人在钱8_欧美一级夜夜爽 - 日韩三级视频在线观看

h5做app能調(diào)用手機(jī)攝像頭

HTML5是當(dāng)前全球使用最廣泛的Web標(biāo)準(zhǔn)技術(shù)之一,已經(jīng)成為Web開(kāi)發(fā)的主流。HTML5不僅支持各種與繪圖、動(dòng)畫(huà)、音頻和視頻相關(guān)的特性,而且還提供了許多移動(dòng)設(shè)備通用的接口。其中,針對(duì)移動(dòng)設(shè)備的相機(jī)和麥克風(fēng)API是其中的重點(diǎn)。下面我們就來(lái)詳細(xì)介紹如何在HTML5中使用手機(jī)相機(jī)。

第一步:獲取用戶(hù)認(rèn)證

利用HTML5獲取用戶(hù)認(rèn)證方式有多種,最常見(jiàn)的是使用getUserMedia API。這個(gè)API是W3C支持視頻、WebRTC(瀏覽器之間音頻和視頻通訊的標(biāo)準(zhǔn))標(biāo)準(zhǔn)的一部分,可以獲取設(shè)備攝像頭和麥克風(fēng)的訪(fǎng)問(wèn)權(quán)限。

如果希望用戶(hù)始終授權(quán)相機(jī)訪(fǎng)問(wèn),并省略由瀏覽器彈出的授權(quán)請(qǐng)求框,請(qǐng)確保您的網(wǎng)站已使用HTTPS。

getUserMedia() API的調(diào)用方式是:

```javascript

navigator.getUserMedia(constraints, successCallback, errorCallback);

```

其中,constraints是包含:

- audio:(需要音頻)

- video:(需要視頻)

- facingMode:支持 back(后置)或 front(前置)相機(jī)調(diào)用。

例如:

```javascript

const videoConstraints = {

facingMode: 'environment',

audio: false

};

navigator.mediaDevices.getUserMedia({ video: videoConstraints })

.then(stream => {

const video = document.querySelector('video');

video.srcObject = stream;

video.onloadedmetadata = function(e) {

video.play();

};

})

.catch(err => {

console.log('getUserMedia Error: ', err);

});

```

如果授權(quán)成功,getUserMedia(successCallback, errorCallback)回調(diào)函數(shù)的參數(shù)就可以使用了。

第二步:展示攝像頭畫(huà)面

通過(guò)將視頻流分配給HTML5 video元素的srcObject屬性來(lái)展示視頻流。此時(shí),可以使用video.setAttribute('width', '500');和video.setAttribute('height', '400');來(lái)設(shè)置視頻元素的大小。

```html

```

第三步:拍照

當(dāng)攝像頭拍攝到的圖像在video元素中顯示時(shí),可以將video元素嵌入到canvas元素中并使用toDataURL()方法將其轉(zhuǎn)換為圖像數(shù)據(jù)。 使用canvas.getContext('2d')繪制圖像并保存為圖像數(shù)據(jù)。

```javascript

const canvas = document.querySelector('#canvas');

const video = document.querySelector('#video');

const width = canvas.width = video.videoWidth;

const height = canvas.height = video.videoHeight;

// Get drawing context from canvas

const ctx = canvas.getContext('2d');

// Draw the image onto the context

ctx.drawImage(video, 0, 0, width, height);

const data = canvas.toDataURL('image/jpeg');

```

這就是在HTML5中調(diào)用移動(dòng)設(shè)備攝像頭的詳細(xì)步驟。同時(shí),我們也可以通過(guò)音頻API錄制音頻,具體方式與獲取視頻流類(lèi)似。HTML5無(wú)疑是一種非常強(qiáng)大的技術(shù)方案,為我們的應(yīng)用程序提供了多種創(chuàng)造性的方法,為我們的用戶(hù)帶來(lái)更流暢、更高效的體驗(yàn)。