Ali*_*may 2 javascript safari cross-browser webrtc getusermedia
按照互联网上的建议,我将muted和playsinline属性添加到我的视频元素中。我仍然无法在 Safari 11 中获得愿景,但只有这个错误。我还尝试autoplay从我的视频元素中删除。
Unhandled Promise Rejection: TypeError: Type error
是否可以webrtc在 Safari 11 中工作,或者我是否在浪费时间?
getUserMedia() 适用于所有其他浏览器(Chrome、Firefox、Edge、Opera)。
谢谢!
我使用这个垫片,https://github.com/addyosmani/getUserMedia.js/blob/gh-pages/lib/getUserMedia.js这会返回一个成功回调,
然后在回调中,
var video = camOptions.videoEl; //the video element
var vendorURL = window.URL || window.webkitURL;
try {
video.src = vendorURL ? vendorURL.createObjectURL(stream) : stream;
}
catch(err) {
//HERE IS THE TYPE ERROR IN SAFARI
}
Run Code Online (Sandbox Code Playgroud)
在TypeError你得到是因为你传递错误的约束时调用GetUserMedia。当您传递设备(浏览器)无法识别或具有无效值的约束时,会发生此错误。
此外,您需要使用video.srcObject而不是video.src which 已弃用。
这是 Safari 的一个工作示例。请记住,这仅适用于 iOS 11 及更高版本:
// Get the <video> element
var video = document.getElementById('vid');
// Default constrains
var constraints = { audio: true, video: true };
navigator.mediaDevices.getUserMedia(constraints).then(handleSuccess);
var handleSuccess = function (stream) {
video.srcObject = stream;
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5704 次 |
| 最近记录: |