• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C#のAxWindowsMediaPlayerからリソースに埋め込まれ)

C#のAxWindowsMediaPlayerからリソースに埋め込まれた動画を読み込む方法

このQ&Aのポイント
  • C#のAxWindowsMediaPlayerを使用して、リソースに埋め込まれた動画を読み込む方法を探しています。
  • 動画ファイルを1つの .exe ファイルに統合し、簡易動画プレイヤーを作成したいです。
  • AxWindowsMediaPlayer.URL にはファイル名しか指定できないため、動画ファイルを一時的に書き出す方法を検討していますが、他に効果的な方法はないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • sygh
  • ベストアンサー率76% (42/55)
回答No.1

AxWindowsMediaPlayer ではなく、Windows Media Player のサブコンポーネントである MediaElement クラスの SetSource メソッドと、Assembly クラスの GetManifestResourceStream メソッドを使えばなんとかなります。 http://msdn.microsoft.com/ja-jp/library/cc190669(VS.95).aspx http://msdn.microsoft.com/ja-jp/library/system.reflection.assembly.getmanifestresourcestream(v=VS.95).aspx ・使い方の例 MediaElement media = new MediaElement(); Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("SomeProjectNamespace.SomeVideo.wmv"); media.SetSource(stream); media.AutoPlay = false; media.Stop(); media.Play(); ただし SetSource メソッドを持っているのは Silverlight 用のコントロールであり、WPF 用のコントロールは持っていないので、フォームアプリの場合は WebBrowser コントロールを使って Silverlight を埋め込むなどの方法をとる必要があります。 ・埋め込み方の例 http://blog.loadlimits.info/2010/01/windows%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%81%B8%E3%81%AE%E3%80%81%E3%82%84%E3%81%9F%E3%82%89%E7%B0%A1%E5%8D%98%E3%81%AAsilverlight%E3%83%9B%E3%82%B9%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E6%96%B9/ なお、WPF の MediaElement クラスの説明に、「アプリケーションでメディアを配布する場合、メディア ファイルをプロジェクト リソースとして使用することはできません」という記述があるので、素直にコンテンツファイルとして出力指定するのが楽だと思います。 http://msdn.microsoft.com/ja-jp/library/system.windows.controls.mediaelement(v=VS.100).aspx ちなみに質問するときはターゲット環境(.NET Framework のバージョンなど)を併記しておいたほうがいいです。

nano70
質問者

補足

回答ありがとうございます。 Silverlightアプリケーションとして作成、それを表示させるWebBrowserといっしょにビルド、ということでしょうか? この場合、出来合いのコントロール(再生ボタンやシークバー等)は無く、自前での実装となるのでしょうか? Silverlightの経験が無いため難航しそうな予感がありますが、googleで検索したところ日本語サンプルも結構出てきましたので、方法が無いようであればチャレンジしてみようかと思います。 .NET Framework のターゲットの件は失礼いたしました。2.0か3.0(WindowsXP以降)として考えておりました。WPFということは3.0になりますね。

関連するQ&A