検索
ホームページウェブフロントエンドH5 チュートリアルHTML5_html5 チュートリアルのヒントを使用してオーディオおよびビデオ情報をキャプチャする概要と例

この記事の概要
Web 開発において、オーディオおよびビデオ情報のキャプチャは長い間困難でした。長年にわたり、私たちはこのニーズを満たすためにブラウザーのプラグインに依存してきました。
HTML 5 には、GPS デバイスにアクセスする Geolocation API、加速度計デバイスにアクセスする Orientation API、GPU デバイスにアクセスする WebGL API、オーディオ再生デバイスにアクセスする Web Audio API など、ハードウェア デバイスにアクセスできる API が多数あります。 。開発者は JavaScript スクリプト コードを記述することで基盤となるハードウェア デバイスに直接アクセスできるため、これらの API は非常に強力です。
この記事では、Web アプリケーションが navigatior.getUserMedia() メソッドを使用してユーザーのカメラおよびマイク デバイスにアクセスできるようにする新しい API を紹介します。

メディア データをキャプチャするための技術開発の歴史
ここ数年、Web アプリケーションでクライアントのローカル デバイスにアクセスする必要性が浮上し始めたため、W3C 組織は組織化することを決定しました。この要件を実現するための統一標準を開発する DAP (デバイス APIS ポリシー) ワーキング グループ。
2011 年に何が起こったのか見てみましょう:

HTML ページ ファイルでのメディア データのキャプチャ
DAP ワーキング グループによって開発される最初の標準は、Web の HTML ページでメディア データをキャプチャする方法です。アプリケーション。彼らは、ファイル型 () の入力要素をオーバーロードし、新しい属性値を accept 属性に追加することにしました。
開発者がユーザーがカメラで写真を撮る機能を実装したい場合は、以下に示すようにコードを記述できます。

コードをコピー
コードは次のとおりです:



ビデオ データとオーディオ データを記録するコードは似ています:

コードをコピーします
コードは次のとおりです:



これらのコードでは、ファイル コントロール (ファイル タイプの入力要素) を使用します。写真の撮影またはメディア データの記録機能を完了します。ただし、これらのコードには、いくつかの関連要件 (キャンバス要素でのキャプチャされたビデオ データのレンダリング、キャプチャされたビデオ データへの WEBGL フィルターの適用など) を実装する機能がまだ欠けているため、開発者によって広く使用されていません。
サポートされているブラウザ:
Android 3.0 ブラウザ
Chrome for Android (0.16)
Firefox Mobile 10.0
デバイス要素
ファイル コントロールを使用する場合は、メディア データをキャプチャして処理します。機能は非常に限られているため、あらゆるデバイスをサポートできる新しい標準が登場しました。この規格ではデバイス要素を使用します。
Opera ブラウザは、デバイス要素を通じてビデオ データをキャプチャする最初のブラウザです。ほぼ同じ日に、WhatWG 組織はメディア データをキャプチャするために navigator.getUserMedia() メソッドを使用することを決定しました。 1 週間後、Opera は navigator.getUserMedia() メソッドをサポートする新しいブラウザをリリースしました。その後、Microsoft Tools によって、この方法をサポートする IE 9 ブラウザがリリースされました。
device要素の使い方は以下の通りです。

コードをコピーします
コードは次のとおりです:



<script> <br />function update(stream) { <br />ドキュメント.querySelector('ビデオ').src = ストリーム.url <br /><br /><br /><br /><strong>サポートされているブラウザ: <br />残念ながら、現時点では、device 要素をサポートしているブラウザの正式バージョンはありません。 <br />WEBRTC <br />近年、WebRTC (Web Real Time Communication: ウェブリアルタイム通信) API の登場により、メディアデータキャプチャ技術が大きく進歩しました。 Google、Opera、Mozilla などの企業は、ブラウザへの実装に熱心に取り組んでいます。 <br />WebRTC API は getUserMedia メソッドと密接に関連した API であり、クライアントのローカル カメラまたはマイク デバイスにアクセスする機能を提供します。 <br />サポートされているブラウザ: <br />これまで、Chrome 18 バージョンのブラウザでは、chrome://flags ページで設定した後に WebRTC を使用できました。Chrome 21 バージョンのブラウザでは、この API が使用されました。デフォルトでは、これ以上の設定は必要ありません。 WebRTC API は、Opera 12 および Firefox 17 以降のブラウザでデフォルトでサポートされています。 <br />getUserMedia メソッドの使用 <br />getUserMedia メソッドを使用すると、プラグインに依存せずに、クライアントのローカルのカメラ デバイスおよびマイク デバイスに直接アクセスできます。 <br /><strong>ブラウザのサポートの検出 <br />次に示すメソッドを使用して、ブラウザが getUserMedia メソッドをサポートしているかどうかを検出できます。 <br /><br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" onclick="copycode(getid('phpcode99'));"><u>コードをコピーします</script>
コードは次のとおりです。

function hasGetUserMedia() {
/ /注意: 接頭辞
return は Opera ブラウザでは使用されません!!(navigator.getUserMedia || navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia || navigator.msGetUserMedia);
}
if (hasGetUserMedia()) {
alert('お使いのブラウザは getUserMedia メソッドをサポートしています');
}
else {
alert('お使いのブラウザは getUserMedia メソッドをサポートしていません');
}

デバイスへのアクセス許可を取得する
クライアントのカメラ デバイスとマイク デバイスにアクセスするには、まず許可を取得する必要があります。 getUserMedia メソッドの最初のパラメータは、メディア タイプを指定するオブジェクトです。たとえば、カメラ デバイスにアクセスする場合、最初のパラメータは {video:true} にする必要があります。カメラ デバイスとマイク デバイスに同時にアクセスするには、{video:true,audio: true} パラメータは次のとおりです:

コードをコピーします
コードは次のとおりです:


<script> <br />var onFailSoHard = function() { <br />alert('デバイス アクセスが拒否されました'); 🎜>}; <br />//ベンダープレフィックスを使用しないでください <br />navigator.getUserMedia({video: true, audio: true}, function(localMediaStream) { <br />var video = document.getElementById('video') ; <br />video.src = window.URL.createObjectURL( localMediaStream); <br />//注意: getUserMedia メソッドを使用する場合、onloadedmetadata イベントは Chrome ブラウザではトリガーされません <br />video.onloadedmetadata = function( e) { <br />//以降のコードは省略します<br />}, onFailSoHard); <br /><br /><br /> このコードでは、ビデオ要素が結合されます。なお、video要素のsrc属性値は使用せず、video要素にメディアファイルを参照するURLアドレスを指定し、カメラから取得した映像データを表すLocalMediaStreamオブジェクトをBlob URLに変換します。 <br />このコードでは、video 要素にも autoplay 属性が使用されています。この属性が使用されない場合、video 要素は取得された最初のフレームに留まります。 </script>
注意: Chrome ブラウザで {audio:true} のみを使用するとバグが発生し、Opera ブラウザでも audio 要素を使用できません。
複数のブラウザで getUserMedia メソッドを同時にサポートしたい場合は、以下に示すコードを使用してください:




コードをコピーします
コードは次のとおりです:
window.URL = window.URL ||
navigator.getUserMedia = navigator.webkitGetUserMedia | |
navigator.msGetUserMedia;
var video = document.getElementById('video');
navigator.getUserMedia({audio: true, video: true}, function (stream) {
video.src = window.URL.createObjectURL(stream);
}
else {
alert('Yourブラウザは getUserMedia メソッドをサポートしていません');
}


セキュリティ
一部のブラウザでは、getUserMedia メソッドが呼び出されるときに、カメラまたはマイクへのアクセスを許可するか拒否するかをユーザーに尋ねるプロンプト ウィンドウが表示されます。
写真を撮る
Canvas API では、ctx.drawImage(video,0,0) メソッドを使用して、video 要素内の特定のフレームを Canvas 要素に出力できます。もちろん、ユーザーのカメラから撮影した画像情報をvideo要素に出力しているので、video要素を介してcanvas要素に画像情報を出力することも可能です。つまり、リアルタイムの写真撮影を実現します。関数は次のとおりです。

コードをコピーします
コードは次のとおりです:

HTML5_html5 チュートリアルのヒントを使用してオーディオおよびビデオ情報をキャプチャする概要と例
Canvas>var video = document.getElementById('video');
var ctx = Canvas.getContext('2d'); var localMediaStream = null;
function snapshot() {
if (localMediaStream) {
ctx.drawImage(video, 0, 0).src = Canvas .toDataURL( 'image/png');
}
}
video.addEventListener('click', snapshot, false)
//ベンダープレフィックスを使用しないでください
navigator.getUserMedia ({video : true}, function(stream) {
video.src = window.URL.createObjectURL(stream);
localMediaStream = stream;
},


CSS フィルターを適用する

これまでのところ、CSS フィルターは Chrome 18 以降のブラウザーで使用できます。
CSS フィルターを使用すると、video 要素でキャプチャされたビデオにさまざまな画像フィルター効果を追加できます。



コードをコピーします
コードは次のとおりです。 幅: 307px;
高さ: 250px;
背景: 1px ソリッド
}

-webkit-filter: グレースケール(1);
}
.sepia {
-webkit-filter: sepia(1);
- webkit-filter:blur(3px);
}
...

スクリプト>
var idx = 0;
var フィルター = ['グレースケール'、'セピア'、'ぼかし'、'明るさ'、'コントラスト'、'色相回転'、
'色相回転2 ', ' hue-rotate3', 'saturate', 'invert', ''];
function changeFilter(e) {
var el = e.target;
el.className = ''; 🎜>var effect = filters[idx % filters.length]; // フィルターをループします。
el.classList.add(effect);
>document.getElementById('video').addEventListener('click',changeFilter,false);
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
マスタリングマイクロダタ:HTML5のステップバイステップガイドマスタリングマイクロダタ:HTML5のステップバイステップガイドMay 14, 2025 am 12:07 AM

MicrodatainHTML5enhancesSEOanduserexperiencebyprovidingstructureddatatosearchengines.1)Useitemscope,itemtype,anditempropattributestomarkupcontentlikeproductsorevents.2)TestmicrodatawithtoolslikeGoogle'sStructuredDataTestingTool.3)ConsiderusingJSON-LD

HTML5フォームの新しいものは何ですか?新しい入力タイプの調査HTML5フォームの新しいものは何ですか?新しい入力タイプの調査May 13, 2025 pm 03:45 PM

HTML5INTRODUCESNEWINPUTTYPESTENHANCEUSEREXPERIENCE、SIMPRIYIFYDEVELOPMENT、およびIMPROVEACCESSIBILITY.1)自動的にEmailformat.2)FOTIMIZENUMIMERICYPAD.3)およびSimplifyDateAndtimeInputs、reducingEdeDateDateRutedolutution。

H5の理解:意味と重要性H5の理解:意味と重要性May 11, 2025 am 12:19 AM

H5はHTML5、HTMLの5番目のバージョンです。 HTML5は、Webページの表現力と相互作用を向上させ、セマンティックタグ、マルチメディアサポート、オフラインストレージ、キャンバス描画などの新しい機能を導入し、Webテクノロジーの開発を促進します。

H5:アクセシビリティとWeb標準のコンプライアンスH5:アクセシビリティとWeb標準のコンプライアンスMay 10, 2025 am 12:21 AM

ネットワーク標準へのアクセシビリティとコンプライアンスは、Webサイトにとって不可欠です。 1)アクセシビリティは、すべてのユーザーがウェブサイトに平等にアクセスできるようにします。2)ネットワーク標準は、ウェブサイトのアクセシビリティと一貫性を改善するために続きます。3)アクセシビリティには、セマンティックHTML、キーボードナビゲーション、色コントラスト、代替テキストの使用が必要です。

HTMLのH5タグは何ですか?HTMLのH5タグは何ですか?May 09, 2025 am 12:11 AM

HTMLのH5タグは、小さいタイトルまたはサブタイトルのタグを付けるために使用される5番目のタイトルです。 1)H5タグは、コンテンツの階層を改良し、読みやすさとSEOを改善するのに役立ちます。 2)CSSと組み合わせて、スタイルをカスタマイズして視覚効果を強化できます。 3)H5タグを合理的に使用して、乱用を避け、論理コンテンツ構造を確保します。

H5コード:Web構造に関する初心者向けガイドH5コード:Web構造に関する初心者向けガイドMay 08, 2025 am 12:15 AM

HTML5にWebサイトを構築する方法には、次のものが含まれます。1。セマンティックタグを使用して、などのWebページ構造を定義します。 2。マルチメディアコンテンツ、使用、タグを埋め込みます。 3.フォーム検証やローカルストレージなどの高度な機能を適用します。これらの手順を通じて、明確な構造と豊富な機能を備えた最新のWebページを作成できます。

H5コード構造:読みやすさのためのコンテンツの整理H5コード構造:読みやすさのためのコンテンツの整理May 07, 2025 am 12:06 AM

合理的なH5コード構造により、ページは多くのコンテンツの中で際立っています。 1)コンテンツなどのセマンティックラベルを使用して、構造を明確にするためにコンテンツを整理します。 2)FlexBoxやグリッドなどのCSSレイアウトを介して、さまざまなデバイスでのページのレンダリング効果を制御します。 3)レスポンシブデザインを実装して、ページがさまざまな画面サイズに適応するようにします。

H5対古いHTMLバージョン:比較H5対古いHTMLバージョン:比較May 06, 2025 am 12:09 AM

HTML5(H5)以降のバージョンのHTMLの主な違いには、次のものが含まれます。1)H5はセマンティックタグを導入し、2)マルチメディアコンテンツをサポートし、3)オフラインストレージ機能を提供します。 H5は、新しいタグやタグなどのAPIを介してWebページの機能と表現力を高め、ユーザーエクスペリエンスやSEO効果を改善しますが、互換性の問題に注意を払う必要があります。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SublimeText3 中国語版

SublimeText3 中国語版

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

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Mac版

SublimeText3 Mac版

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