.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ファイルに記述した相対パスからメディア・ファイルがロードされ、正しく再生されるようになる。End of Article

カテゴリ:WPF/XAML  処理対象:メディア

この記事と関連性の高い別の.NET TIPS
作業フォルダのパスを取得/設定するには?
アプリケーション設定情報はどこに保存すべきか?
ファイルをコピー/削除/リネーム/移動するには?
[ASP.NET]ページから生成されたソース・コードを見るには?
8.3形式の短いパスを長いパスに変換するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間