2017-11-13 26 views
1

インターネットでアドバイスされたとおり、私はビデオ要素にmutedplaysinline属性を追加しました。私はまだSafari 11でビジョンを得ることはできませんが、このエラーだけです。 私のビデオ要素からautoplayも削除しようとしました。Safari getUserMedia()未処理プロミス拒否

Unhandled Promise Rejection: TypeError: Type error

それはSafariの11で作業webrtcを取得するか、私はこれで時間を失うのですが可能ですか?

getUserMedia()は他のすべてのブラウザ(Chrome、Firefox、Edge、Opera)で動作します。

ありがとうございました! GetUserMediaを呼び出すときに間違っ制約を渡しているので、あなたが取得している

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 
} 

答えて

2

TypeErrorがある

私は、このシムを使用

https://github.com/addyosmani/getUserMedia.js/blob/gh-pages/lib/getUserMedia.jsこれは成功コールバックを返し、コールバックで次に

、 。このエラーは、デバイス(ブラウザ)によって再調整されない制約や無効な値を渡すと発生します。

また、非難されているvideo.srcではなく、video.srcObjectを使用する必要があります。

ここでは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; 
}; 
関連する問題