ブラウザのカメラ起動についてちょっと調べてみた。

フロントエンド
date 2012.05.08 tag HTML5
最近HTML5関連でブラウザからのカメラ起動などが実現してますねー。だけど、その技術仕様は1つだけではありません。ややこしいので少し整理してみたいと思います。ちなみに調べてみたところ3つの技術仕様が存在しているぽいです。

HTML Media Capture

http://www.w3.org/TR/html-media-capture

まずはHTML Media Captureです。こいつはW3Cでワーキングドラフトとして策定されています。HTMLフォームのinput要素を拡張し、例えば次のようなHTMLコードを書くことでブラウザからカメラを起動することができます。

HTML

[html]
<input type=”file” accept=”image/*;capture=camera”>
[/html]

撮影した写真はFileAPIと組み合わせることで取得できます。対応しているブラウザはAndroid3.0以降の標準ブラウザ、Android Google Chrome。簡単で良いなーと思ったんですが、ブラウザベンダーはこれ以上実装しない方向らしいです。

参考

CameraAPI

https://wiki.mozilla.org/Platform/Features/VideoConferencing

FirefoxのMozillaが策定しているWebAPIというものがあるのですが、その中にCamera APIがあります。これも上記のHTML Media Capture同様にHTMLフォームのinput要素を拡張したものです。ソースコードはHTML Media CaptureのHTMLコードとほぼ同じです。対応ブラウザはAndroid Firedox9以降。

HTML

[html]
<input type=”file”accept=”image/*”>
[/html]

参考

getUserMedia

http://dev.w3.org/2011/webrtc/editor/getusermedia.html

HTML Media Captureでは無理だったリアルタイムにHTML要素に映像を出力するといったことを可能にするJavaScriptAPIです。最近知ったばかりで全然理解できてませんが、どうやら今後のデバイスAPIの主役になりそうな存在みたいです。Google、Opera、Mozillaが実装を行っているようで、Google Chrome18以降では設定を行うことで利用可能だそうです。

参考

また、CameraAPIとgetUserMediaはWebRTCに関係あるっぽいですね。WebRTCに関しては超理解不足なので勉強します…。なお、今回の記事にはきっと間違いや勘違いがあると思いますのでよろしければご指摘をお願いします。