目次
カメラのアクセス許可を取得することが最初のステップです
ビデオフレームのインターセプトと画像処理
識別にはデコードライブラリを使用します
互換性とパフォーマンスの最適化
ホームページ ウェブフロントエンド H5 チュートリアル getUsermediaでのH5バーコードとQRコードスキャン

getUsermediaでのH5バーコードとQRコードスキャン

Jul 20, 2025 am 02:03 AM

H5ページは、主にGetUserMediaを呼び出してカメラの権限を取得し、リアルタイムの識別のためにデコードライブラリと組み合わせて、バーコードとQRコードスキャン機能を実現します。 1.最初に、getUsermediaを使用してカメラの権限を取得し、ビデオストリームを

getUsermediaでのH5バーコードとQRコードスキャン

H5ページは、主にgetUserMediaを呼び出してカメラの権限を取得し、デコードライブラリを組み合わせてリアルタイム識別を組み合わせて、バーコードおよびQRコードスキャン機能を実装します。この機能はネイティブアプリでは非常に一般的ですが、特に軽量のQRコードスキャンシナリオに適したH5を通じて優れたエクスペリエンスを実現することもできます。

getUsermediaでのH5バーコードとQRコードスキャン

カメラのアクセス許可を取得することが最初のステップです

getUserMediaを使用してカメラの権限を取得することは、プロセス全体の出発点です。ブラウザは承認リクエストをポップアップし、ユーザーが同意した後にのみ継続できます。このステップの鍵は、ビデオストリームが正しくロードされ、 <video></video>タグにバインドされて表示されることを確認することです。

getUserMediaへの呼び出しにはHTTPS環境が必要であり、ローカルテストがLocalHostを通過できることに注意する必要があります。さらに、さまざまなデバイスがカメラに異なるサポートがある場合があります。たとえば、モバイル端末はデフォルトで背面カメラをオンにしますが、一部のブラウザはデバイスIDを手動で指定する必要がある場合があります。

getUsermediaでのH5バーコードとQRコードスキャン

呼び出しの基本コードは次のとおりです。

 navigator.mediadevices.getusermedia({video:true})
  .then(stream => {
    videolement.srcobject = stream;
  })
  .catch(err => {
    console.error( &#39;カメラを取得できない&#39;、err);
  });

ビデオフレームのインターセプトと画像処理

カメラ画面が表示された後、次のステップは、識別のためにビデオからフレームを傍受することです。通常、現在のビデオフレームは<canvas>を介して描画され、画像データが抽出されます。

getUsermediaでのH5バーコードとQRコードスキャン

このステップでは、周波数制御に注意が必要であり、すべてのフレームを処理するわけではありません。そうしないと、パフォーマンスの消費が高すぎます。 requestAnimationFrameを使用するか、タイマー(100msごとに1回など)を設定して、認識周波数を制御できます。

特定のプロセスは次のとおりです。

  • ビデオの現在のフレームをキャンバスに描画します
  • キャンバスを使用して、画像ピクセルデータを取得します
  • 識別のために画像データをデコードライブラリに渡す

これにより、ビデオストリームの直接動作を回避し、認識効率を改善できます。

識別にはデコードライブラリを使用します

現在、最も一般的に使用されるデコードライブラリは、 QuaggajsZxingです。これらはすべて、さまざまなバーコードおよびQRコード形式をサポートしており、プロジェクトの要件に従って選択できます。

Zxingを例にとると、デコーダーを初期化した後、識別のために画像データを直接渡すことができます。

 const codereader = new zxing.browsermultiformatreader();
codereader.decodefromvideodevice(未定義、videolement、(result、err)=> {
  if(result){
    console.log( &#39;認識結果:&#39;、result.text);
  }
});

認識結果が遅延または繰り返される可能性があることに注意する必要があります。複数のトリガーを避けるために有効なコードを特定した後、1回アンチシェイク治療を実行することをお勧めします。

互換性とパフォーマンスの最適化

さまざまなデバイスやブラウザでのコードエクスペリエンスをスキャンする場合があります。たとえば、一部のAndroidブラウザは、デフォルトで前面カメラを使用するか、高解像度のサポートが不十分です。この時点で、ビデオの制約を設定することで最適化できます。

 {ビデオ:{facingMode: &#39;環境&#39;}} //背面カメラの強制使用

さらに、モバイル端末のコードをスキャンして認識成功率を改善するときに、自動フォーカスをオンにし、輝度とその他の操作を調整することをお勧めします。 UIを使用して、スキャンエリアのQRコードを調整してインタラクティブエクスペリエンスを改善するようにユーザーに促すこともできます。

パフォーマンスの観点から、メインスレッドで頻繁に画像処理タスクを避けるようにしてください。メインスレッドブロックを減らすためにWebワーカーを使用してデコードすることを検討できます。


基本的にそれだけです。実装するのはそれほど難しくありませんが、アクセス許可、画像回転、さまざまなデバイスの互換性など、すべてテストおよび処理する必要があるなど、詳細に詰まらせるのは簡単です。

以上がgetUsermediaでのH5バーコードとQRコードスキャンの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

HTML5パーサーはエラーをどのように処理しますか? HTML5パーサーはエラーをどのように処理しますか? Aug 02, 2025 am 07:51 AM

html5parsershandlemalformedhtmlbyfollowingadEticalgorithmtoensureconsentandroburtendering.1.formismatchedorunclosedtags、the parserautagetally closeStagsAndAddjustsnestingSnestingSnestingStingSneStingStingStingStingStagSassandJustrising ontext

HTML5データ属性とは何ですか? HTML5データ属性とは何ですか? Aug 06, 2025 pm 05:39 PM

html5dataattributesarecustom、validhtmlattributesusedTostoreExtrainformationinelements forjavasdatorcss.1.theyReadefinedassdata-*属性、Likedata-user-id = "123" .2.theyallowembembembedprivate

html5の脇の要素は何ですか? html5の脇の要素は何ですか? Aug 12, 2025 pm 04:37 PM

そのためには、継続的に関連することができるようになりました

HTML5キャンバスでマウスイベントを処理する方法は? HTML5キャンバスでマウスイベントを処理する方法は? Aug 02, 2025 am 06:29 AM

HTML5キャンバスのマウスイベントを正しく処理するには、最初にイベントリスナーをキャンバスに追加し、次にキャンバスと比較してマウスの座標を計算し、幾何学的検出を介して描画されたオブジェクトと相互作用するかどうかを判断し、ドラッグアンドドロップなどのインタラクティブモードを実現します。 1. AddEventListenerを使用して、キャンバス用のMousedown、Mousemove、Mouseup、Mouseleaveイベントをバインドします。 2。getBoundingClientRectメソッドを使用して、ClientX/ClientyをCanvasに関連する座標に変換します。 3.手動の幾何学的計算(長方形の境界や円の距離式など)を介してマウスを検出します)

HTML5で複数のオーディオファイルを順番に再生する方法は? HTML5で複数のオーディオファイルを順番に再生する方法は? Aug 25, 2025 pm 03:08 PM

HTML5オーディオ要素の終了イベントを聞くことで、複数のオーディオファイルを順番に再生できます。まず、明確な答えは、終了イベントを使用して次のオーディオ再生をトリガーすることです。特定の手順は次のとおりです。1。オーディオファイル配列を定義し、オーディオ要素を取得します。 2.現在の再生インデックスを設定し、ロードして最初のオーディオを再生します。 3.オーディオ要素の終了イベントをバインドし、イベントがトリガーされ、次のオーディオがロードされたときにインデックスをインクリメントします。 4.再生が終了した後、ループの再生を実現するか、停止することを選択できます。 5.エクスペリエンスを改善するために、次のオーディオをプリロードできます。 6.エラー処理を追加して、故障したオーディオをスキップします。 7.ブラウザのオートプレイの制限に注意してください。また、最初の再生をユーザーの相互作用によってトリガーする必要があります。

HTML5の読み取り属性は何ですか? HTML5の読み取り属性は何ですか? Aug 08, 2025 am 11:55 AM

thereadonlyattributionhtml5makesforminputsnon-edable whilestallowingsubmissionanduser interaction; 1. itappliestoanttribute;

HTML5でサポートされているオーディオ形式は何ですか? HTML5でサポートされているオーディオ形式は何ですか? Aug 05, 2025 pm 08:29 PM

HTML5オーディオ形式のサポートは、ブラウザごとにブラウザまでさまざまです。最も一般的に使用される形式には、1.mp3(.mp3、audio/mpeg、すべての主流ブラウザーがサポートし、最高の互換性を備えています)が含まれます。 2.wav(.wav、audio/wav、より良いが大きなファイル、短いオーディオに適したサポート); 3.ogg(.ogg/.oga、audio/ogg、chrome、firefox、opera support、safari、ieはサポートされていません。 4.AAC(.AAC/.M4A、Audio/AAC、Safari、Chrome、Edge Support、Firefoxサポートは限られており、Appleデバイスでよく使用されます)。互換性を確保するために、

シンプルなHTML5 Webページを作成する方法 シンプルなHTML5 Webページを作成する方法 Aug 12, 2025 am 11:51 AM

シンプルなHTML5 Webページを作成するには、最初に宣言ドキュメントタイプを使用してから、キャラクターのエンコード、ビューポート、タイトルを設定する基本構造を構築する必要があります。 .htmlファイルとして保存し、サーバーサポートなしで表示するためにブラウザで直接開きます。これは、完全かつ効果的なHTML5ページの基礎です。

See all articles