web-dev-qa-db-ja.com

NotReadableError:ビデオソースの割り当てに失敗しました

Firefox 51では、次のコードを実行しようとしたとき、ラップトップのカメラを選択したときにこのエラーが発生します。

navigator.getMedia = (navigator.getUserMedia ||
  navigator.webkitGetUserMedia ||
  navigator.mediaDevices.getUserMedia ||
  navigator.msGetUserMedia);

navigator.getMedia({
    video: true,
    audio: false
  },
  function(stream) {
    if (navigator.mozGetUserMedia) {
      video.mozSrcObject = stream;
    } else {
      var vendorURL = window.URL || window.webkitURL;
      video.src = vendorURL.createObjectURL(stream);
    }
    video.play();
  },
  function(err) {
    console.log("An error occured! " + err);
  }
);

エラー:

NotReadableError: Failed to allocate videosource

誰かがこれが意味することを詳しく説明できますか?私のウェブカメラは壊れていますか?昨日スクリプトから問題なく使用しました。他のアプリケーションには割り当てられません。

19
Tomáš Zato

NotReadableErrorは、Webカメラへのアクセスが許可されているが不可能な場合にFirefoxによってスローされる仕様に準拠したエラーです。

ほとんどの場合、これはWindowsで発生します。Webカメラが別のアプリで既に使用されているためです。 WindowsプロセスでのみWebカメラに排他的にアクセスしても、FirefoxはWindowsとMacの両方でこのエラーをスローします。

エラーは他の理由で発生する可能性があります。

ユーザーは一致するデバイスを使用する許可を与えましたが、オペレーティングシステム、ブラウザー、またはWebページレベルでハードウェアエラーが発生し、デバイスへのアクセスが妨げられました。

Chromeは代わりにTrackStartErrorをスローします。 otherreasons の場合もスローします。 Chromeタブは同じデバイスを共有できます。

ソース: common getUserMedia()errors

20
Octavian Naicu

カメラが他のアプリケーション(クロム、または他のブラウザ)によって使用されていないことを確認してください。解決策を探していた日を無駄にしたのですが、結局、私のカメラが他のアプリケーションで使用されていることがわかりました...

7
Shashank

Windows 10で同じ問題が発生しましたが、ビデオデバイスを使用している他のアプリはありません。問題は、Windows 10の[設定]-> [アプリのアクセス許可](左の列)で、マイクとカメラ(マイク/カメラへのアプリのアクセスを許可する)をオンにする必要があることです。この設定の下のアプリリストにブラウザが表示されなくてもかまいません。ここで有効にしてください。

0
MartinM

メッセージgetUserMedia() error: NotReadableErrorがChromiumに対して表示されましたが、Firefox Webブラウザーに対しては表示されませんでした。また、マイクへのアクセスなしでgetUserMedia関数を使用したWebRTCの例がChromiumで正しく機能することにも気付きました。

実際、マイクが有効になっていることを確認し、Chromium/Chrome設定で正しいマイクを選択する必要がありました。その後、オーディオおよびビデオアクセスを備えたWebRTCは正常に機能しました。

マイクの問題ではない場合、ウェブカメラの問題である可能性があるため、ウェブカメラが有効になっていて、Chromium/Chrome設定で正しく選択されていることを確認する必要があります。

ウェブカメラ/マイクを使用できるアプリは一度に1つだけです。

0
baptx

誰かがこれが意味することを詳しく説明できますか?私のウェブカメラは壊れていますか?昨日スクリプトから問題なく使用しました。他のアプリケーションには割り当てられません。

私はまったく同じ問題に遭遇しました!

恥を知れ!なぜなら、その間に beforeunload イベントを追加したからです。これには、 example で報告されているevent.preventDefaultが含まれます。

このevent.preventDefaultを削除した後、すべてが正常に機能しました-予想どおり。

0
Pierre