SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Silverlight 4で作る新しいRIAアプリケーション

カメラとマイクを使った新しいユーザー体験

Silverlight 4で作る新しいRIAアプリケーション(2)

  • このエントリーをはてなブックマークに追加

ダウンロード sample.zip (1.8 MB)

 本連載では、Silverlight 4で提供された機能を適宜コードにあわせて解説します。Silverlight 4では、ユーザーの投票により多くの機能が実装されました。今回はその中から、メディアの新機能であるWebカメラとマイクについて解説します。

  • このエントリーをはてなブックマークに追加

はじめに

 Silverlight 4ではユーザーの投票により多くの機能が実装されました。今回はその中から、メディアの新機能であるWebカメラとマイクについて解説します。

カメラとマイクを使ったユーザー体験

 ここ数年、SkypeやLiveMessengerなどのカメラを使ったチャットや、カメラに映る現実世界をリアルタイムに合成する拡張現実などが出てきたことで、一般的なネットユーザーにもカメラやマイクといったデバイスが広く普及しました。最近では、ソーシャルコミュニケーションのツールとして、カメラやマイクは欠かせないデバイスになっています。

 ユーザーがSilverlightに望んだことのトップの項目に、カメラとマイクのサポートがありました。Silverlight 3まででもHTML-DOM連携を使うことで実現は可能でしたが、Silverlight 4ではユーザーの要望が反映され、正式にサポートされることになりました。

 これにより、カメラで撮影中の画像や動画、音声をSilverlightの任意のオブジェクトに表示したり、ファイルとして保存したり、入力された音声によって処理を分岐させたりといったことが、Silverlightだけで行えるようになりました。

【参考】拡張現実

 カメラを使った面白い研究に拡張現実(AR)という分野があります。これはiPhoneのアプリケーションの「セカイカメラ」などで使われている技術で、最近ではニュースで取り上げられるようになったのでご存知の方も多いと思います。

 マイクロソフトが2009年のTechEdなどで紹介していた次のビデオでは、2019年のビジョンとして提供してこのARの技術が存分に盛り込まれています。

 今はまだ、カメラを通して現実世界を拡張することしかできませんが、今後が楽しみな技術の1つです。SilverlightでARを体験するには、CodePlexで提供されているSilverlight用のARToolkit を利用するのが一番の近道でしょう。

 また、NyARToolkitは、もともとC++で書かれたARToolkitをJavaで動かすよう実装されたクラスライブラリで、Java以外にもFlashや.NET/CompactFramework、Androidといったプラットフォームで同じように動作します。

カメラとマイクの概要

 Silverlight 4では、あらかじめコンピュータにインストールされたカメラやマイクを操作するクラスが用意されています。これらのクラスを利用することで、C#やVisual Basicからカメラやマイクのキャプチャーを開始したり、指定した形式でファイルを保存したりできます。

 表1に、Silverlight 4で用意されているカメラとマウスを操作するクラスの一覧を示します。

表1 カメラとマウスを操作するためのクラス群
クラス名 概要
CaptureDeviceConfiguration インストールされているデバイスの取得、ユーザーにデバイスを利用するための許可を取る機能を提供する
VideoCaptureDevice カメラなどの画像デバイスを表す
AudioCaptureDevice マイクなどの音声デバイスを表す
CaptureSource 関連付けられたデバイスをアプリケーションで操作する機能を提供する
VideoSink キャプチャーしたビデオ形式のメディアを処理するための機能を提供する抽象クラス
AudioSink キャプチャーしたオーディオ形式のメディアを処理するための機能を提供する抽象クラス

 これらのクラスを用いてSilverlightにおけるカメラとマイクの扱い方を簡単に図解すると、図1のようになります。

図1 Silverlightのカメラとマイクの扱い方
Silverlightのカメラとマイクの扱い方

 つまり、Silverlightでカメラとマイクを利用するには、下記のような手順が必要になります。

  1. ユーザーの許可を取る
  2. カメラやマイクをキャプチャーデバイスに設定する
  3. ブラシやシンクに関連付ける
  4. メディアを表示する

 手順の番号は図1の番号を示します。

【参考】ブラシとシンク

 ブラシは、Silverlightオブジェクトの領域を塗りつぶすためのクラスです。例えば、色を指定してオブジェクトを塗りつぶす場合はSolidColorBrushクラスを利用し、今回のようにビデオでオブジェクトを塗りつぶす場合は、VideoBrushクラスを利用することで簡単にオブジェクトを塗りつぶすことができます。

 ブラシに関する詳しい記述は、MSDNのサイトを確認してください。

 シンク(Sink)は「流し台」などと訳されるため、プログラムでは「データをためこむ場所」という意味で使われることが多いです。後述するVideoSinkクラスやAudioSinkクラスも、カメラやマイクなどのデバイスで取得したデータを一時的にためこむための機能を提供するクラスになります。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
ページの構成

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Silverlight 4で作る新しいRIAアプリケーション連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト かるあ (杉山 洋一)(カルア(スギヤマ ヨウイチ))

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5392 2010/09/01 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング