Webページの作成
今回作成するWebページの構成
では、さっそくWebページを作成してみましょう。今回のプログラムでは、グリッドを使ってImageコントロールとC1MediaPlayerコントロールを配置します。画像と動画コンテンツは、別のWebサーバにリンクを貼って表示します。
Silverlightプロジェクトの作成
まずは、Silverlightプロジェクトの作成からです。
- Visual Studio 2008 Silverlight Tools 3.0をインストールし、Visual Studioで新しいプロジェクトを作成すると、「プロジェクトの種類」に[Silverlight]が追加されています。これを選択し、「テンプレート」から[Silverlightアプリケーション]を選びます。
- 「新しいSilverlightアプリケーション」というダイアログボックスが表示されるので、「新しいWebプロジェクトの種類」のリストから[ASP.NET Webサイト]を選びます。
    リストから[ASP.NET Webサイト]を選ぶ![リストから[ASP.NET Webサイト]を選ぶ](//cz-cdn.shoeisha.jp/static/images/article/5456/Image12.gif) 
- プロジェクトが作成され、新しいWebサイトに「MainPage.xaml」が作られ、XAMLのコードが表示されます。
グリッドの作成
今回は、2行1列のグリッドを設定します。
グリッドに行を追加するには、RowDefinitionsコレクションのRowDefinitionオブジェクトを、必要な行数分定義します。高さはHeightプロパティで指定します。
<Grid x:Name="LayoutRoot">
    <Grid.RowDefinitions>
        <RowDefinition Height="130" />
        <RowDefinition Height="350" />
    </Grid.RowDefinitions>
</Grid>

Imageコントロールの作成
 ツールボックスにあるImageコントロールを、今配置したGrid.RowDefinitions要素の下にドラッグ&ドロップします。<Image>要素が作成されるので、グリッドの1段目の行(Grid.Row="0")を指定し、Sourceプロパティで画像のURLを指定します。また、グリッド内の水平位置と垂直位置も指定します。
</Grid.RowDefinitions>
<Image Grid.Row="0" Width="100" Height="100" Source="http://www.big.or.jp/~seto/film.jpg" 
       HorizontalAlignment="Left"   VerticalAlignment="Center"></Image>
<Image Grid.Row="0" Width="400" Height="80" Source="http://www.big.or.jp/~seto/logo.jpg"
       HorizontalAlignment="Center" VerticalAlignment="Center"></Image>
C1MediaPlayerコントロールの作成
C1MediaPlayerコントロールを作成する前に、テーマを作成します。
- Image要素の下に、ツールボックスから「C1ThemeShinyBlue」をドラッグ&ドロップし、2段目のグリッド(Grid.Row="1")を指定します。<Image Grid.Row="0" Width="400" Height="80" Source="http://www.big.or.jp/~seto/logo.jpg" HorizontalAlignment="Center" VerticalAlignment="Center"></Image> <my:C1ThemeShinyBlue Grid.Row="1"> </my:C1ThemeShinyBlue > 
- C1ThemeShinyBlueの中に、C1MediaPlayerコントロールをツールボックスからドラッグ&ドロップします。名前を「C1MediaPlayer」とし、サイズを指定します。
    <my:C1ThemeShinyBlue Grid.Row="1"> <c1mediaplayer:C1MediaPlayer x:Name="C1MediaPlayer" Height="300" Width="350"> </c1mediaplayer:C1MediaPlayer> </my:C1ThemeShinyBlue >
- C1MediaPlayerコントロールの中に、C1MediaItemオブジェクトを作成します。これが、再生するビデオコンテンツになります。MediaSourceプロパティにコンテンツのURLを設定し、Titleプロパティでタイトルを設定します。
    <c1mediaplayer:C1MediaItem x:Name="media0" MediaSource="http://www.big.or.jp/~seto/sample.wmv" Title="mimi">
- そして、C1MediaPlayerの要素の下に、C1MediaChapterオブジェクトを作成します。これがチャプターになります。チャプターは、Positionプロパティで開始位置を再生時間で指定し、Titleプロパティでチャプターのタイトルを付けます。今回のサンプルビデオは15秒と短いため、チャプターは1つしか作成していませんが、長いビデオの場合はいくつものチャプターを設定できます。その場合は、このC1MediaChapterオブジェクトをチャプターの数だけ作成します。
    <c1mediaplayer:C1MediaChapter Position="00:00:10" Title="Chapter 1"> </c1mediaplayer:C1MediaChapter> </c1mediaplayer:C1MediaItem>
- 同じように、もう1つの動画ファイルをC1MediaItemオブジェクトで作成します。
    <c1mediaplayer:C1MediaItem x:Name="media1" MediaSource="http://www.big.or.jp/~seto/sample2.wmv" Title="けんか"> <c1mediaplayer:C1MediaChapter Position="00:00:10" Title="Chapter 1"> </c1mediaplayer:C1MediaChapter> </c1mediaplayer:C1MediaItem>
これで自動的にアイテムリストとチャプターリストが作成され、それぞれプレーヤーのボタンをクリックすることで選択できます。
<UserControl xmlns:dataInput="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.Input"  xmlns:my1="clr-namespace:C1.Silverlight.Theming.ShinyBlue;assembly=C1.Silverlight.Theming.ShinyBlue"  xmlns:my="clr-namespace:C1.Silverlight.Theming.WhistlerBlue;assembly=C1.Silverlight.Theming.WhistlerBlue"  xmlns:c1mediaplayer="clr-namespace:C1.Silverlight.MediaPlayer;assembly=C1.Silverlight.MediaPlayer"  x:Class="sl_mplayer_vb.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d" d:DesignWidth="Auto" d:DesignHeight="Auto">
  
<Grid x:Name="LayoutRoot">
      
      <Grid.RowDefinitions>
          <RowDefinition Height="130" />
          <RowDefinition Height="350" />
      </Grid.RowDefinitions>
      <Image Grid.Row="0" Width="100" Height="100" Source="http://www.big.or.jp/~seto/film.jpg" 
             HorizontalAlignment="Left"   VerticalAlignment="Center"></Image>
      <Image Grid.Row="0" Width="400" Height="80" Source="http://www.big.or.jp/~seto/logo.jpg"
             HorizontalAlignment="Center" VerticalAlignment="Center"></Image>
      <my1:C1ThemeShinyBlue Grid.Row="1">
          <c1mediaplayer:C1MediaPlayer x:Name="C1MediaPlayer" Height="300" Width="350">
              <c1mediaplayer:C1MediaItem x:Name="media0" 
                                         MediaSource="http://www.big.or.jp/~seto/sample.wmv"
                                         Title="mimi">
                  <c1mediaplayer:C1MediaChapter Position="00:00:10" Title="Chapter 1">
                  </c1mediaplayer:C1MediaChapter>
              </c1mediaplayer:C1MediaItem>
              <c1mediaplayer:C1MediaItem x:Name="media1" 
                                         MediaSource="http://www.big.or.jp/~seto/sample2.wmv"
                                         Title="けんか">
                  <c1mediaplayer:C1MediaChapter Position="00:00:10" Title="Chapter 1">
                  </c1mediaplayer:C1MediaChapter>
              </c1mediaplayer:C1MediaItem>
          </c1mediaplayer:C1MediaPlayer>
      </my1:C1ThemeShinyBlue>
  </Grid>
</UserControl>
まとめ
動画コンテンツは、商品説明などさまざまな場面で利用されますが、プラグインのMediaPlayerなどでは、チャプターの作成やコンテンツのリストなどが作成できないため、いまいち応用性に欠けています。
C1MediaPlayerコントロールは、プロパティ設定で簡単にチャプター・コンテンツリストの作成が行え、ループ再生もできるので、使い勝手のよいものになっています。Webページに動画を使おうというときには、お勧めのコントロールでしょう。

 
              
               
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                              
                               
                              
                               
                              
                               
                              
                               
                              
                               
                      
                     
                      
                     
                      
                     
                      
                     
                      
                     
                      
                     
                      
                     
															
														 
															
														.png) 
     
     
     
     
     
													 
													 
													 
													 
													 
										
									


![リストから[ASP.NET Webサイト]を選ぶ](http://cz-cdn.shoeisha.jp/static/images/article/5456/Image12.gif)

 
                    