SHOEISHA iD

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

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

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

特集記事

ASP.NET Futuresで次世代ASP.NETを体験しよう

ASP.NET Futuresのコントロール利用方法を学習する

Mediaコントロール

 Mediaコントロールは後述するXAMLコントロールと共にSilverlightを利用したサーバコントロールです。メディアファイルを参照設定することでWebページ上にSilverlightを組み込むことができます。もしSilverlightをインストールしていない状態で実行すると、図3のような画面が表示されます。画像をクリックすることでSilverlightをインストールできます(図4)。Silverlightをインストールしている状態で実行すると図5~6のように表示されます。

図3 Silverlightをインストールしていない場合の画面
図3 Silverlightをインストールしていない場合の画面
図4 Silverlight1.0のダウンロードダイアログ
図4 Silverlight1.0のダウンロードダイアログ
図5 Mediaコントロールを利用したWebページ
図5 Mediaコントロールを利用したWebページ
図6 Mediaコントロール内のチャプター
図6 Mediaコントロール内のチャプター

 SilverlightはASP.NET以外のWeb技術と組み合わせて利用できますが、その場合には「Silverlight.jsファイル」と「Silverlightのプロパティや動作を記述した.jsファイル」が必要でした。しかし、Mediaコントロール・XAMLコントロールは「Silverlight.jsファイル」を準備することなく、Silverlightを利用できます。

 Silverlightに関する内容はこちらの記事が非常に丁寧に書かれているので、興味がある方はそちらを参考にしてください。

 Mediaコントロールはすべてのメディアファイルを参照することはできません。Silverlightがサポートしているメディアファイルと連動しているからです。現時点では以下の3種類のメディアファイルがMediaコントロールで参照できます。

  • wmv
  • wma
  • mp3

 続いて、以下の表1にMediaコントロールで設定できるプロパティの中で、頻繁に利用しそうな物をまとめてみました。サンプルの中ですべて使用はしていませんが、参照ください。

表1
プロパティ名概要
AutoPlayWebページを開いた直後にメディアを再生するかどうか。既定ではFalse。
Chapters設定したメディアにチャプター付けを行う。MediaChapterCollection型を利用。
MediaChapterメディア再生時に表示するチャプターの設定を行う再生開始時間(TimeIndex)、表示される静止画像(ImageUrl)と、チャプターのタイトル(Title)の設定を行う。
LoopCount繰り返し再生する回数。0の場合は無限に再生。
MediaSkinメディア再生時のスキンの設定を列挙体の中から選択。既定ではProfessional。
MediaUrl参照するメディアのURL。前述の3種類のファイル形式以外は再生できない。
MutedWebページを開いた直後にメディアの音をミュートで再生するかどうか。既定ではFalse。
StartTimeメディアの再生開始の場所(メディアの長さ以内で)。
Volumeボリュームの大きさ(0~1)。
OnClientChapterStartedチャプター開始時に実行したいJavaScript。
OnClientMarkerReachedメディアの再生時間がチャプターの位置に到達した時に実行したいJavaScript。
OnClientMediaEndedメディアの再生が終了した時に実行したいJavaScript。
OnClientMediaFailedメディアの再生が失敗した時に実行したいJavaScript。
OnClientMediaOpenedメディアが再生された時に実行したいJavaScript。
OnClientSizeChangedMediaコントロールのサイズが変更された時に実行したいJavaScript。
OnClientStateChangedメディアが一時停止や一時停止から再生など、メディアの状態が変わった時に実行したいJavaScript。
OnClientVolumeChangedメディアのボリュームが変更された時に実行したいJavaScript。

 Mediaコントロールはフォームデザイナ上で張り付けた後、MediaUrlプロパティの参照だけ設定をすれば動作します。非常に扱いやすいコントロールなので、ASP.NETを利用したSilverlightアプリケーションの第一歩としては最適なコントロールの1つと言えます。

 以下のサンプルはチャプターの組み込みやJavaScriptファイルを組み合わせた物です。図6のようにMediaコントロールの中に設定したチャプターが表示されます。チャプター画像をクリックすることで設定された再生開始時間までジャンプしてメディアが再生されます。JavaScriptの指定方法は通常の埋め込みの他にMediaコントロール内のScriptsプロパティでも設定ができます。以下のサンプルの実行画面は図5のようになります。ただし、「xxx.wmv」ファイルや「xxx.bmp」はサンプルファイルに含んでいません(容量が膨大になってしまうため)。実際にサンプルを動作させる場合は、wmvファイルとチャプターの静止画像を準備して設定を行って確かめてみてください。

Media.aspxファイル(一部)
<script type="text/javascript">
    function alertMedia(sender){
        alert("Start");
    }
</script>
中略
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:Media ID="Media1" runat="server" AutoPlay="True" Height="240px"
 MediaUrl="~/メディアファイル" Width="320px" Windowless="True"
 OnClientMediaOpened="alertMedia"  OnClientVolumeChanged="VolumeChange" >
    <Scripts>
        <asp:ScriptReference Path="Volume.js" />
    </Scripts>
    <Chapters>
        <asp:MediaChapter ImageUrl="~/画像ファイル" Title="はじめから" />
        <asp:MediaChapter ImageUrl="~/画像ファイル"
                          TimeIndex="10" Title="10秒後" />
        <asp:MediaChapter ImageUrl="~/画像ファイル"
                          TimeIndex="20" Title="20秒後" />
        <asp:MediaChapter ImageUrl="~/画像ファイル"
                          TimeIndex="30" Title="30秒後" />
    </Chapters>
</asp:Media>

 続いて、Mediaコントロールのボリュームが変更された時にアラートを表示するJavaScriptファイルです。

Volume.js
function VolumeChange(sender, chapterEventArgs) {
    alert("VolumeChange");
}

 以上の設定でMediaコントロールとJavaScriptを組み合わせたページの完成です。実行画面は図5~6のようになります。

次のページ
XAMLコントロール

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

特集記事連載記事一覧

もっと読む

この記事の著者

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

静岡県榛原町生まれ。一橋大学経済学部卒業後、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本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

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

WINGSプロジェクト ナオキ(ナオキ)

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

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

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

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/1586 2007/08/23 14:00

イベント

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

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

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

メールバックナンバー