japan.internet.com The Internet & IT Network


RSSニュース検索
カテゴリ
> トップページ
> Webビジネス
> Eコマース
> Webファイナンス
> Webマーケティング
> パブリック
> Webテクノロジー
> 携帯・ワイヤレス
> Linux Today
> Linux Tutorial
> J.I.C.ブログ
キャリア
> 転職ならen
> 派遣ならen
> アルバイトならen
> IT求人情報
ヘッドライン
> 今日のヘッドライン
> 週間ヘッドライン
Special Link
> フォトコミュニティ
> ストックフォト
> クリップアート
> イラスト
> フェリカ
> Web2.0
> 写真
イベント&セミナー
> イベントカレンダー
> 書評「IT の耳」
> 出張・接待検索
> ニュースガジェット 注目
無料ニュースメール
> 新規登録
> 変更・解除
> オプトインメールの登録・変更・解除
インフォメーション
> パートナーサイト
転職ならエン
就職ならen
求人ならen
履歴書ならen
アルバイトならエン
CRM/SFAならオラクル
> グループ会社
株式会社アエリア
(株)サンゼロミニッツ
株式会社エアネット
> お問い合わせ
> 広告掲載について
> リンクについて
> 著作権について
> その他お問い合わせ
> 利用規約
> 個人情報保護方針
> 会社概要地図
デベロッパー 2008年5月7日 10:00
デベロッパー・バックナンバー
Silverlight 1.0でメディアを操作する

著者: Wei-Meng Lee  オリジナル版を読む プリンター用 記事を転送
2008年5月7日 10:00 付の記事
海外internet.com発の記事
このエントリーを含むはてなブックマーク この記事をクリップ! Buzzurlにブックマーク Yahoo!ブックマークに登録 newsing it!

はじめに

 前回の記事ではSilverlightの一般的な概要について説明し、さらに、Silverlight 1.1アプリケーションでマネージコードを実行する方法について説明しました。本稿では、Silverlightの主要な機能の1つである、リッチメディアエクスペリエンスについて考察します。それにあたり、WindowsメディアファイルをSilverlightアプリケーションに埋め込む方法、Windowsメディアファイルの再生を制御する方法について学習します。また、ビデオに単純な効果を作成する方法についても学習します。

編集部注
 Silverlight 1.1はバージョン番号が見直され、Silverlight 2.0としてリリースされることになっています。

Silverlightプロジェクトの作成

 まず、Silverlightプロジェクトを作成します。Microsoft Expression Blend 2 September Previewを使用して、プロジェクトにMediaという名前を付けます(図1を参照)。ページのXAMLビューに切り替えて、ページに次のようなCanvasオブジェクトを追加します。

<Canvas
    xmlns="http://schemas.microsoft.com/client/2007"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Width="664" Height="611"
    Background="White"
    x:Name="Page"
    >

    <Canvas Width="544" Height="595" 
         Canvas.Left="8" 
       Canvas.Top="8"/>    

</Canvas>
図1 新規プロジェクトの作成: Expression Blend 2 September Previewを使用して新規プロジェクトを作成します。
図1 新規プロジェクトの作成: Expression Blend 2 September Previewを使用して新規プロジェクトを作成します。
 後でこのCanvasオブジェクトにWindowsメディアファイルを関連付けます。

 [Project]ウィンドウでプロジェクト名(Media)を右クリックし、[Add Existing Item]を選択します。Windowsメディアファイルを選択します。この例では、「WindowsMedia.wmv」という名前の.wmvファイルを選択します。これでプロジェクトに「WindowsMedia.wmv」ファイルが追加されます。

 [Project]ウィンドウで「WindowsMedia.wmv」ファイルをダブルクリックして、ページに追加します。

 このプロジェクトを実行するには、Windows Media Player 10以上が必要です。
 「WindowsMedia.wmv」ファイルがCanvasオブジェクト内に取り込まれていることを確認します(図2を参照)。<MediaElement>要素を<Canvas>要素内に手動で移動することが必要な場合もあります。

図2 ファイルの追加: .wmvファイルがCanvasオブジェクトに関連付けられます。
図2 ファイルの追加: .wmvファイルがCanvasオブジェクトに関連付けられます。
 F5キーを押して、ページをテストします。ページの読み込みが終了すると、ビデオが自動的に再生されます(図3を参照)。

図3 ビデオの再生: ページの読み込みが終了すると、既定ではメディアが自動的に再生されます。
図3 ビデオの再生: ページの読み込みが終了すると、既定ではメディアが自動的に再生されます。

自動再生の無効化

 ビデオの自動再生は便利な機能ですが、場合によっては、自動再生を既定で無効にした方が適切なこともあります。たとえば、ページに複数のビデオが埋め込まれている場合、この機能は非常に邪魔になります。自動再生機能を無効にするには、次のように、<MediaElement>要素のAutoPlay属性をFalseに設定します。

<Canvas Width="544" Height="595" Canvas.Left="8" Canvas.Top="8">    
    <MediaElement x:Name="WindowsMedia_wmv" 
       AutoPlay="False" 
       Width="320" Height="240" 
       Source="WindowsMedia.wmv" 
       Stretch="Fill"/>
</Canvas>
 次に、ビデオをどのような場合に、どのような方法で再生するかを決定します。ユーザーのマウスがビデオの上に移動したらビデオを再生し、ビデオから離れたら一時停止するように、プログラムで制御することにします。また、ユーザーがビデオをクリックしたら、再生を停止して最初まで巻き戻すことにします。このような処理を行うには、次の太字で示す属性を設定します。

<Canvas Width="544" Height="595" Canvas.Left="8" Canvas.Top="8">    
    <MediaElement x:Name="WindowsMedia_wmv" 
           AutoPlay="False" 
           MouseEnter="MouseEnter"
           MouseLeave="MouseLeave"
           MouseLeftButtonDown="MouseClick"
           Width="320" Height="240" 
           Source="WindowsMedia.wmv" 
           Stretch="Fill"/>
</Canvas>
 ここでは基本的に、<MediaElement>要素によって処理される各種イベントのイベントハンドラを設定しています。イベントハンドラを記述するには、[Project]ウィンドウに移動し、「Page.xaml.js」ファイルをダブルクリックします。

 「Page.xaml.js」ファイルに、次のコードを追加します。

function MouseEnter (sender, eventArgs)
{  
   var obj = sender.findName("WindowsMedia_wmv");
   obj.play();
}

function MouseLeave (sender, eventArgs)
{  
   var obj = sender.findName("WindowsMedia_wmv");
   obj.pause();
}

function MouseClick (sender, eventArgs)
{  
   var obj = sender.findName("WindowsMedia_wmv");
   obj.stop();
}
 findName()メソッドを使用すると、Silverlightページ上の指定された要素(x:Name属性によって識別されます)への参照をプログラムで取得できます。この例では、MediaElementオブジェクトのインスタンスを参照しています。このオブジェクトは、play、pause、およびstopプロパティをサポートしています。

 F5キーを押して、アプリケーションを再度テストします。今回は、マウスがビデオの上に移動すると再生が始まり、マウスがビデオから離れると一時停止します。ビデオを再度初めから再生するには、ビデオをクリックします。

鏡像効果の作成

 ビデオに対するおもしろい操作として、鏡像効果を作成してみましょう。図4に、下に鏡像を同時再生するビデオの例を示します。

図4 鏡像: ビデオに対するおもしろい操作として、鏡像効果を作成します。
図4 鏡像: ビデオに対するおもしろい操作として、鏡像効果を作成します。
 この鏡像を作成するには、まず、元のCanvasオブジェクトを修正します。そのためには、XAMLビューに切り替えて、リスト1の太字のコードを追加します。

 これにより、ビデオは、図5に示すような形に変形します。

図5 ビデオの変形: 元のビデオを変形します。
図5 ビデオの変形: 元のビデオを変形します。
 次に、リスト2のような<MediaElement>要素を追加して、鏡像効果をシミュレートします。

 これで、正像のビデオと鏡像のビデオが作成されます(図6を参照)。

図6 2つのビデオ: 2つのビデオがあるページ
図6 2つのビデオ: 2つのビデオがあるページ
 鏡像を半透明にするには、Opacity属性を0〜1の値に設定します。

<MediaElement x:Name="WindowsMedia_wmv1" 
   AutoPlay="False" 
   MouseEnter="MouseEnter"
   MouseLeave="MouseLeave"
   MouseLeftButtonDown="MouseClick"
   Width="319.125" Height="125.423" 
   Source="WindowsMedia.wmv" 
   Stretch="Fill" 
   Canvas.Left="188.405" Canvas.Top="523.848" 
   Opacity="0.3">
 さらに、「Page.xaml.js」の後続のコードブロックをリスト3のように修正します。

 各イベントハンドラ内でfindName()メソッドを使用してメディアオブジェクトを探すのではなく、handleLoad()関数を使用して探すこともできます。また、このページ内にある2つのビデオは同じものなので、鏡像として作成したビデオを自動再生する必要はありません。同じ理由から、ボリュームプロパティを0に設定してボリュームをオフにします(使用可能な値は0〜1です)。

 F5キーを押して、ページをテストしてみましょう。上部に配置されたビデオの上にマウスが移動すると、両方のビデオの再生が始まります。

Silverlightのその他の機能

 この記事では、Silverlightの<MediaElement>オブジェクトが持つ機能について、ごく簡単に説明しました。Silverlightのメディア機能の詳細については、ここのドキュメントを参照してください。

著者紹介

Wei-Meng Lee(Wei-Meng Lee)
Microsoft MVP受賞者。Microsoft社の最新テクノロジー実地研修を専門とするDeveloper Learning Solutions社を創設。.NETとワイヤレステクノロジーの開発者、指導者として知られる。
国際的なカンファレンスでたびたび講演し、.NET、XML、ワイヤレステクノロジーに関する著書、共著書多数。.NETからMac OS Xに至るまで広範な分野について執筆している。著書に『.NET Compact Framework Pocket Guide』 (Oreilly&Associates Inc、2005年5月)、『ASP.NET 2.0: A Developer's Notebook』 (Oreilly&Associates Inc、2005年6月)、『Programming Sudoku』 (Apress刊、2006年3月)など。ブログ「Wei-Meng Lee's Blog」を開設している。


関連記事
  • YouTube の映像を MP3 ファイルに変換してくれるシンプルツール「FLVto」
  • 野球中継の動画利用は約半分、野球中継に関する調査
  • オンライン付箋「lino」、zoome 動画貼り付けに対応
  • チームラボ、「サグールテレビ」を開発するために作られたライブラリ群を公開
  • SUN、YouTube を携帯端末でフル視聴できるサービスを開始


  • 関連テーマ
  • XML
  • Microsoft
  • Blog


  • ★最新トップニュース
    国内 Aucfan.com、Yahoo! ショッピング API 活用の「売れ筋アイテムランキング」を提供(E-コマース 7月25日 16:20)
    株式会社オークファンは、2008年7月25日、ヤフー株式会社が運営する Yahoo! ショッピング Web サービスの「カテゴリランキング」を活用した新サービス「売れ筋アイテムランキング」の提供を開始したと発表した。
    国内 au 携帯「W64SA」26日発売、カロリーカウンターなどを搭載画像のある記事(携帯・ワイヤレス 7月25日 16:00)
    KDDI、沖縄セルラーは、2008年7月25日、au 携帯電話の新ラインアップとして“ヒカリ”の演出と、カロリーカウンターを搭載した“ビューティー・イルミ・ケータイ”「W64SA」(京セラ製)を26日に全国一斉発売すると発表した。
    国内 Kabayaki のタイムインターメディア、オープンソースビジネス推進協議会に参加(LinuxToday 7月25日 16:00)
    今後、本格的に OBCI の活動を支持する意向。同社は未来の主流プログラミング言語と言われる、Gauche や Haskell の普及活動も行っている。
    国内 あの豪快な笑い声が着信音に―ドワンゴ、麻生太郎氏のボイスと待受画像を配信画像のある記事(E-コマース 7月25日 15:50)
    株式会社ドワンゴは、2008年7月25日、同社が運営する「dwango.jp」各サイトにて、麻生太郎氏のボイスと待受画像を、株式会社 EDGE が運営するデコメアニメ配信サイト「花よりデコメ」では、麻生太郎氏のデコメアニメテンプレートを、それぞれ配信開始した。
    国内 フリービット、中国向け事業で北京 BII と提携、事業子会社アドバイザーに出井氏と村井氏が就任予定(Webファイナンス 7月25日 15:40)
    中国では、通信事業分野では外資規制があり、“次世代ネットワークサービス”を展開するには、中国国内企業にのみ与えられる各種ライセンスが必要。フリービットでは事業展開のパートナー企業として、BII を選択した。
    トピックス
    > オススメのIT系求人情報【毎週月曜日更新】
    footer_301.gif


    リサーチ
    > デイリーリサーチDLサイト
    > OnlineResearchPortal (リサーチデータバンク)
    > モバイルリサーチ with goo
    footer_301.gif
    キーワード
    > iPhone > Youtube
    > Google > モバイルノート
    > 半導体 > ウィルコム
    > テーマ一覧はこちら
    footer_301.gif
    セミナー情報
    > 第1回インターネットコムマーケティングセミナー「新規クライアントを効率的に獲得する Web マーケティング手法とは」(3月26日)多数のご参加ありがとうございました
    footer_301.gif
    デベロッパー
    > DevX
    > CodeGuru
    > developer.com
    footer_301.gif
    日本Oracle
    footer_301.gif
    j.i.c.ブログ
    ブログ一覧
    デスマーチからの脱却 【デスマーチからの脱却】
    独自ドメインでiPhoneのメール送受信(7月25日)
    データメーション 【データメーション】
    本物のスパム王様はお名乗り出ください(7月24日)
    Graphic Design Forum 【Graphic Design Forum】
    興味深い(?)90年代 (7月24日)
    エンジニアの独り言 【エンジニアの独り言】
    新入社員が配属される季節ですね。(7月23日)
    ジュピターメディア創設者がITを斬る 【ジュピターメディア創設者がITを斬る】
    Alan を探せ(7月18日)
    ベンチャー専門家の目利きブログ「なぜこの企業は伸びるのか?」 【ベンチャー専門家の目利きブログ「なぜこの企業は伸びるのか?」】
    「『訪問歯科診療』のパイオニア」/デンタルサポート株式会社(7月15日)
    footer_301.gif
    最新コラム一覧
    CodeGuru CodeGuru

    Visual C++ 2008 Feature Pack: MFCの強化 (2)(7月25日)
    最新アフィリエイト事例にみる成功の法則 最新アフィリエイト事例にみる成功の法則

    メディアのニーズ 〜アフィリエイトに対する思い〜(7月25日)
    最新ハイテク講座 最新ハイテク講座

    Blu-ray がノート PC でも快適に!インテル「Centrino 2」(7月25日)
    百式のネットビジネス研究 百式のネットビジネス研究

    究極にシンプルなタスク管理ツール「now do this」(7月25日)
    週刊-サイト別アクセス状況データ 週刊-サイト別アクセス状況データ

    ビデオリサーチインタラクティブ調査(月間インターネットオーディエンスデータ)(7月24日)
    IT マネジメント IT マネジメント

    Google Trends で見る IT のトレンド(7月24日)
    ハードウェアから見たデータベース ハードウェアから見たデータベース

    表計算ソフトの計算を支える仕組(7月24日)
    「IT の耳」 「IT の耳」

    【書評】ネットオークションで騙す。―全米を揺るがした絵画詐欺犯の告白―(7月24日)
    検索エンジンマーケティング 検索エンジンマーケティング

    ピンポイントマーケティングにおける P4P(検索連動型広告)の“当たり前”(7月24日)
    Eメールマーケティング事情 Eメールマーケティング事情

    大量送信のスパムからターゲット絞り込みスパムメールへ(7月23日)
    footer_301.gif
    専門チャンネル
    > セキュリティチャネル > テレコムチャネル
    > サーチエンジンウォッチ
    footer_301.gif
    海外のインターネットコム アメリカ韓国ドイツトルコ
    関連企業のサイト:ストックフォト イラスト ネットストリート ホテル予約サイト タウン情報 出張 事業継承 シミュレーション トランクルーム 優待映画チケット 田舎暮らしガイド オリジナルデザインTシャツ ニタコエ
    Copyright 2008 Jupitermedia Corporation All Rights Reserved. http://www.internet.com/
    space.gif space.gif