|
.NET TIPS
WPFアプリケーションにメディア・ファイルを追加するには?[VS 2008]
デジタルアドバンテージ 岸本 真二郎
2008/09/18 |
|
|
WPFアプリケーションに組み込む動画や音声などのメディア・ファイルをXAMLファイルで指定する場合、ファイルは絶対パスあるいは相対パスで指定できる。
相対パスの場合は、ビルドされたWPFアプリケーション(EXEファイル)が置かれた場所(アプリケーション起動時のフォルダ)を基準にして、ファイルが参照される。一方、絶対パスの場合には、次のようにドライブ・レターを含めたパスを指定する。
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<MediaElement Margin="10,10,10,10" Name="media1"
Stretch="Uniform" Source="d:\temp\media\bear.wmv" />
</Grid>
</Window>
|
|
絶対パスでメディア・ファイルを指定しているXAMLの記述例 |
しかし、アプリケーションの配布を考えた場合、絶対パスの使用は避けるべきだろう。そのため、相対パスでアクセスできる場所にメディア・ファイルを配置して、以下のように記述したいところだが、実際にはこの記述だけでは不十分だ。
<MediaElement Margin="10,10,10,10" Name="media1"
Stretch="Uniform" Source="media\bear.wmv" />
|
|
相対パスによりメディア・ファイルを指定しているMediaElement要素 |
このような記述を行うには、まずソリューション・エクスプローラでプロジェクト内に(本稿の場合では)「media」フォルダを作成し、ここにメディア・ファイルをエクスプローラからドラッグ&ドロップする。
|
ソリューション・エクスプローラで作成したフォルダ |
|
そしてさらに、メディア・ファイルのプロパティで、「出力ディレクトリにコピー」を「新しい場合はコピーする」に設定する(デフォルトは「コピーしない」)。これにより、ビルドの際に実行ファイルが生成されるフォルダ(デバッグ時は「bin\Debug」フォルダ)にmediaフォルダが生成され、そこにメディア・ファイルがコピーされる。
なお、動画ファイルについてはリソースとしてアプリケーションに埋め込むことができないため、「ビルド アクション」のプロパティは「コンテンツ」のままにしておく。
|
メディア・ファイルのプロパティ |
|
こうすることで、実行時にXAMLファイルに記述した相対パスからメディア・ファイルがロードされ、正しく再生されるようになる。
|
generated by
|
|
Insider.NET 記事ランキング
本日
月間