3 回答

TA貢獻1827條經驗 獲得超9個贊
這里面的坑是非??膳碌?。
主要是用到?MediaDevice.getUserMedia?這個東西。
界面先不說,要注意的是這東西的兼容性非常糟糕,比如:
創建的時候需要傳遞配置參數,多數情況下你可以按文檔中的說法去指定分辨率:
{????video:?{????????width:?xxx,????????height:?xxx ????} }
然而,這個寫法會導致在?IOS?平臺獲取不到任何流數據,正確姿勢是這樣的:
{????video:?true}
但是很顯然,這樣就沒辦法指定你的視頻流的分辨率大小,系統想給你怎樣的就是怎樣的。

TA貢獻1801條經驗 獲得超16個贊
在文檔的兼容性列表中,提到了 Safari Mobile 的最低支持版本為 11
,但是我在測試時(四臺 IOS 設備,三臺 iPhone,一臺 iPad,均為 IOS 11)只能在 iPad 上獲得流數據,iPhone 上是不行的。

TA貢獻1796條經驗 獲得超4個贊
這個 API 有個歷史兼容的舊版本:?navigator.getUserMedia,兩個版本的 API 差別大到一個是用?Promise?(新版本) 處理而另一個是用?callback?(舊版本),因此你必須在使用前進行?if(navigator.MediaDevices)
?來判斷是否有新 API 能調用,而問題在于,即便同為?IOS 11,iPhone?上只有舊版本,iPad?上卻是新的。
所以,雖然有接口可以讓你獲得攝像頭的流數據,但是感覺兼容性是個硬傷,請多考慮。
由于我并不是前端開發,因此這個兼容性問題已經折磨得我無法再鉆研下去,也許我測試方法或結果有誤,有了解這方面情況的朋友還請麻煩指出錯誤,謝謝!
- 3 回答
- 0 關注
- 752 瀏覽
添加回答
舉報