通過H5喚起攝像頭前後置轉換問題

navigator.mediaDevices.getUserMedia(constraints).then(success).catch(error);

getUserMedia的適配問題暫且不提,只關心如何更換前後置攝像頭問題。
其實官方已經給出了一個最簡單的方法,只需要配置facingMode參數即可,user爲前置,environment爲後置

navigator.mediaDevices.getUserMedia({video:{facingMode:'user/environment'}})

在這裏插入圖片描述
在這裏插入圖片描述
具體參考鏈接

當然事情往往不會隨着心願發展,雖然該方法確實可以實現攝像頭的選擇,但是在兼容性方面確定差了很多,例如該參數即使在安卓上,Chrome for Android也得59版本以上,更別提IOS上的各種問題了。

當然如果系統不能選擇,我們是否可以自主選擇呢,當然可以,雖然也有限制

navigator.mediaDevices.enumerateDevices().then(gotDevices);

在這裏插入圖片描述
在這裏插入圖片描述
具體參考鏈接

我們可以通過enumerateDevices來獲取攝像頭和麥克風,其中kind爲videoinput的,就是攝像頭的設備了,一般應該會有兩個,前置和後置,然後我們可以通過deviceId來設置使用的攝像頭

navigator.mediaDevices.getUserMedia({video:{deviceId:'實際id'}})

但實際情況下,你並不清楚的知道那個設備時前置,那個設備是後置,通常情況下,應該是最後一個deviceId是後置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章