調用硬體的攝像鏡頭可以實現許多有趣的功能
像是拍照或是掃描 QR code
底下來說明調用攝像鏡頭的方法吧:
- 認識 MediaDevices 的 getUserMedia 方法
- 使用 getUserMedia 來調用攝像鏡頭(啟動及關閉)
認識 MediaDevices 的 getUserMedia 方法
調用鏡頭會需要先認識 MediaDevices 這個瀏覽器物件
詳細可以參考 MDN(Mozilla Developer Network) 的文檔
這邊就先列一下幾個比較重要的代碼範例:
調用方式:
1 | navigator.mediaDevices |
constraints 這個參數可以指定要調用的硬體設備
像是麥克風或是攝像頭
調用攝像頭:
1 | { |
調用攝像頭並優先使用前鏡頭:
1 | { |
調用攝像頭並優先使用後鏡頭:
1 | { |
調用攝像頭並強制使用後鏡頭:
1 | { |
註: 我這邊實測沒有強制使用前鏡頭的設定,只有後鏡頭是可以強制設定的!
使用 getUserMedia 來調用攝像鏡頭(啟動及關閉)
啟動攝像鏡頭的方法比較單純
至於關閉攝像鏡頭則會需要先記住 mediaStream
這邊是使用閉包的方式讓啟動和關閉相機的函式都可訪問這個變數
並在停用相機時清除 mediaStream 的引用和 video.srcObject 的位置
讓其在不被需要時可以被正確回收記憶體
1 | const onCamera = () => { |
本文作者: David Huang
本文地址: https://davidblog.github.io/2023/08/04/調用攝像鏡頭/