JsでwebCamを開く方法を知りたいだけですが、APIや他のライブラリへのリンクは必要ありません。常に独自のコードを作成していますが、行く方法が見つからないためです.1行または2行のコードが欲しいだけですjs を使用してウェブカメラを開く方法について説明し、どのブラウザで動作するかについて説明します。
4 に答える
ScriptCamのようなサードパーティのライブラリを使用することをお勧めしますが、独自のコードを書きたいと宣言したので、新しいユーザー メディア API の使用について説明します。
これは、W3C Working Draft HTML Media Capture withで導入されましたgetUserMedia()
。次のブラウザは実験的にサポートしています。
- クロム
- オペラ
Chrome 18 以降では、サイトにアクセスして API を有効にすることができますabout:flags
。
Opera では、実験的なAndroid またはデスクトップ ビルドのいずれかをダウンロードする必要があります。
video
HTML では、 Elementを使用する必要があります。
<video id="basic-stream" class="videostream" autoplay=""></video>
まず、権限を設定する必要があります。
navigator.getUserMedia({video: true, audio: true}, function(localMediaStream) {
var video = document.querySelector('video');
video.src = window.URL.createObjectURL(localMediaStream);
// Note: onloadedmetadata doesn't fire in Chrome when using it with getUserMedia.
// See crbug.com/110938.
video.onloadedmetadata = function(e) {
// Ready to go. Do some stuff.
};
}, onFailSoHard);
Chrome と Opera で動作するコードが必要な場合は、次のコード サンプルで動作するはずです。
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia;
var video = document.querySelector('video');
if (navigator.getUserMedia) {
navigator.getUserMedia({audio: true, video: true}, function(stream) {
if (navigator.webkitGetUserMedia) {
video.src = window.webkitURL.createObjectURL(stream);
} else {
video.src = stream; // Opera
}
}, onFailSoHard);
} else {
video.src = 'somevideo.webm'; // fallback.
}
API が利用可能かどうかは、次の方法で確認できます。
function hasGetUserMedia() {
// Note: Opera builds are unprefixed.
return !!(navigator.getUserMedia || navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia || navigator.msGetUserMedia);
}
詳細については、チュートリアルの HTML でオーディオとビデオをキャプチャするを参照してください。
構文の問題は、ベンダー プレフィックスが原因で発生する可能性があるため、注意してください。
Opera Mobile 12 が必要です。webkit プレフィックスを追加すると、Chrome 21 でも動作するはずです。
if(navigator.getUserMedia) {
navigator.getUserMedia('video', successCallback, errorCallback);
}
ドキュメントを参照してください。
これはいわゆるHTML5 Media Capture APIです。一部のモバイル ブラウザのサンプル コードはこちらにあります。