5分でウェブブラウザからカメラ・アクセスを実行する方法
8567 ワード
The MediaDevices.getUserMedia() 唯一のAPIは、Webブラウザからカメラにアクセスするために使用されます.それは簡単ですが、完全なWebカメラのビューアを実装するには、まだ仕事がたくさんあります.Dynamsoftがリリースするまで、既存のJavaScriptカメラウィジェットはありませんでしたCamera Enhancer library 最近.今、すべてが容易になります.この記事は、Dynamsoftが提供する無料JavaScriptカメラライブラリを使用してWebカメラビューアを実装する手順を共有します.
カメラSDKをインストール
JavaScriptカメラSDKが公開されて以来npmjs.com , 次の行を含めるだけでインストールできます
Webブラウザからの開放カメラの実装
DynamsoftカメラエンハンサーJavaScript版では、Webカメラビューアを実装することは決して容易にすることはできません.2つの手順しかありません.
コンテナとしてHTML div要素を作成します
Dynamsoftカメラエンハンサーでコンテナを初期化します.
簡単なWebカメラビューアが行われます.ビューアは3つの部分から成ります:カメラのソースリスト、カメラの解像度のリスト、およびカメラのプレビューは、ほとんどのWeb開発者によって必要な主要なコンポーネントです.
カメラのフレームを取得する方法を尋ねることがあります.あなたがカメラフレームで何かをしたいならば、あなたは電話することができます
ここでフレームをキャプチャし、キャプチャされたフレームをポップアップウィンドウに表示するボタンを追加できます.
バーコードスキャン、オブジェクトの検出、顔認識などのいくつかの画像処理を継続的に行う場合は
展開と使用
最後に、プロジェクトを配備しましょう.Webカメラアクセスはhttpsを必要とするので、ローカルのWebサーバをngrokでhttpsに転送するか、githubページを使うことができます.
コードは完璧にiOS、Android、デスクトップのWebブラウザで動作することができます.複数のバックカメラの選択は、Android上でのみサポートされます.以下のスクリーンショットは、計算されたプロからです.
ソースコード
https://github.com/yushulx/web-browser-camera-access
カメラSDKをインストール
JavaScriptカメラSDKが公開されて以来npmjs.com , 次の行を含めるだけでインストールできます
index.html
ファイル<script src="https://unpkg.com/[email protected]/dist/dce.js"></script>
独自のWebサーバーにライブラリを配備するには、NPMパッケージをダウンロードできます.npm i dynamsoft-camera-enhancer
Webブラウザからの開放カメラの実装
DynamsoftカメラエンハンサーJavaScript版では、Webカメラビューアを実装することは決して容易にすることはできません.2つの手順しかありません.
コンテナとしてHTML div要素を作成します
<div id="enhancerUIContainer" style="height: 100vh;"></div>
高さを設定する100vh
カメラのビューアをフルスクリーンにする.Dynamsoftカメラエンハンサーでコンテナを初期化します.
let enhancer = null;
(async () => {
enhancer = await Dynamsoft.DCE.CameraEnhancer.createInstance();
document.getElementById("enhancerUIContainer").appendChild(enhancer.getUIElement());
await enhancer.open(true);
})();
カメラのフレームを取得する方法を尋ねることがあります.あなたがカメラフレームで何かをしたいならば、あなたは電話することができます
getFrame()
. 詳細についてはAPI documentation . ここでフレームをキャプチャし、キャプチャされたフレームをポップアップウィンドウに表示するボタンを追加できます.
<button id="capture">Capture</button>
<script>
document.getElementById('capture').onclick = () => {
if (enhancer) {
let frame = enhancer.getFrame();
let width = screen.availWidth;
let height = screen.availHeight;
let popW = 640, popH = 640;
let left = (width - popW) / 2;
let top = (height - popH) / 2;
popWindow = window.open('', 'popup', 'width=' + popW + ',height=' + popH +
',top=' + top + ',left=' + left + ', scrollbars=yes');
popWindow.document.body.appendChild(frame.canvas);
}
};
</script>
注意:フレームはJavaScript BlobオブジェクトでもJavaScriptバッファーオブジェクトでもありません.それはDynamsoftによって定義されたタイプです.真のカメラフレームデータは、内蔵のキャンバスオブジェクトに格納されます.バーコードスキャン、オブジェクトの検出、顔認識などのいくつかの画像処理を継続的に行う場合は
timer
呼ぶgetFrame()
数ミリ秒ごと.展開と使用
最後に、プロジェクトを配備しましょう.Webカメラアクセスはhttpsを必要とするので、ローカルのWebサーバをngrokでhttpsに転送するか、githubページを使うことができます.
コードは完璧にiOS、Android、デスクトップのWebブラウザで動作することができます.複数のバックカメラの選択は、Android上でのみサポートされます.以下のスクリーンショットは、計算されたプロからです.
ソースコード
https://github.com/yushulx/web-browser-camera-access
Reference
この問題について(5分でウェブブラウザからカメラ・アクセスを実行する方法), 我々は、より多くの情報をここで見つけました https://dev.to/yushulx/how-to-implement-camera-access-from-web-browsers-in-5-minutes-4hopテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol