• ベストアンサー
※ 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

  • VS2013のリソースについて

    VS2013上でアプリが完成したので、発行してVS2013の環境のない別マシンで動作確認を行ったところ、そのコンピューターに音声リソースが存在しなかったため正常動作しませんでした。これでは配布することができません。 リソースをexeに埋め込むとか、発行時にセットアップファイルに同梱させる方法はありませんでしょうか。

  • C++/CLIのリソースファイルについて

    C++/CLIのリソースファイルについて質問です。 環境は、Visual Studio 2005のC++/CLIです。 アセンブリリソースファイル(resx)の文字列リソースをEXEファイルをに含めることは可能でしょうか? 含めるか、含めないかの設定はどこで可能でしょうか? 現在は、EXEファイルと同じ場所にアセンブリリソースファイル(resx)がないと例外が発生します。

  • C++ リソースファイルの使い方について

    うまく説明できていないかもしれませんが AAA.exeとBBB.exeとBBB.exeを実行するために必要なファイル(以後 CCC.dll)があり、 AAA.exeの中にBBB.exeとCCC.dllを埋め込み AAAexeを実行時にCCC.dllをsystem32フォルダの中に置き、その後BBB.exeを実行させたいのですが、埋め込んだファイルの抽出方法が見つかりません。 どなたか、抽出ソースの書き方、またはよいサイトをご存じでしたら教えていただけないでしょうか?

  • IE6の「更新」アイコンのリソースはどのEXE/DLLに同梱されていますか

    XP(SP2)のエクスプローラや,IE6にある「更新」ボタンのアイコンリソースは どのEXE(ないしDLL)に同梱されていますか. あるソフトのアイコンをカスタマイズするのに個人的に借りたいのですが. http://www.mct.ne.jp/users/fjv/win2ktips/tips2k014.htm をみて, c:\WINNT\system32\compstui.dll c:\WINNT\system32\dsuiext.dll c:\WINNT\system32\shell32.dll C:\Program Files\Internet Explorer\iexplore.exe にはありませんでした.

  • 【C#】リソースファイルの埋め込みと書き出し

    C#初心者です。 アクセスの空データベースファイル(.accdb)を.exeに埋め込んで、必要に応じてファイルとして出力したいのですが、その方法がわかりません。 埋め込み方法は画像ファイルと同じように[追加]→[既存の項目]からリソースとして読み込み、ビルドアクションプロパティを[埋め込まれたリソース]に設定すれば、それでよいのでしょうか? また、埋め込んだファイルをファイルとして出力する場合はどうすればよいのでしょうか? 本当ならわざわざリソースとして埋め込むのではなく、空の.accdbをプログラムで生成できればよいのですが、もしご存知でしたらそれもご教示ください。 よろしくお願いします。

  • MFCのダイアログのリソースが更新されない

    Visual studio 2008(以後VS)のMFCのプロジェクトでリソース(ダイアログ)が 更新されなくなりました。原因はどういうのが考えられますか? リソースのIDがおかしくなっているのでしょうか? 具体的には、 ダイアログを追加、変更して更新→実行しても変更が反映されません。 リソースエディタで、表示上は更新されているのですが、 リソースファイル(以後rcファイル)をエディタ開いて中身を確認しても更新されていません。 直接、エディタでrcファイルを変更したら反映されますが、調整が面倒です・・・。 最悪、バックアップを使って差分を実装しなおしですね・・・ ■原因で思い当たる節 VSでリソースエディタを開きながら、外部のエディタでもrcファイルを更新し、 変更後VSで外部での更新メッセージがでたとき、いいえ(更新しない)と してしまったかもしれません。

  • C#で参照したCOMコンポーネントが動作しない

    VS.NETのVisualC#でアプリケーションの開発を行っているのですが、あるCOMコンポーネント「A」を参照して、その中のメソッドを動作させようとするとFileNotFoundExceptionが発生し、「ファイル名またはアセンブリ名A、またはその依存関係の1つが見つかりませんでした。」というメッセージが出力されてしまいます。「A」は別のCOMコンポーネント「B」を参照していますが、「B」は管理ツールのコンポーネントサービスに登録済みです。なおtlbimpを使用して厳密名はつけてあります。 C#に詳しいかた、いらっしゃいましたらよろしくお願いします。

  • C#からCで作成したDLLにステップインできません

    C#からCで作成したDLLにステップインできません。 対策としては以下を行いましたが、ステップインできませんでした。他の対策を知っていたら教えてください! 環境:C#, CともにVS2008, Windows XP professional ・プロジェクトのプロパティのデバッグタブで、「アンマネージのデバッグを~」にチェックを入れる。 ・完全なソースを必要とするのチェックをはずす。 ・C#のexeと同一DIRにdllと、pdbファイルを配置する。 ・全てデバッグでコンパイルする。

  • マネージドDLLをC++からLoadLibrary

    プログラムの環境設定、実装についての質問になります。 (1)VS2013 C#で作成したDLL を  (2)MFCプロジェクトからLoadLibrary関数を使い呼び出す方法があれば教えてくれませんか? (1)にCOMとして参照する設定を行い、COMとして扱うのでしたら ネットでいくつか方法がありましたが、今回はDynamicLinkLibraryとして扱いたいです。 この場合、C++/CLIを用いる事になるのでしょうか。。 全く予想つかなく悩んでおります。何か参考となるURLなどでも構いません。 何卒宜しくお願いします。

  • Python3.5をC++に組み込んで配布するには

    C++のプログラムから、PythonのC APIを使って内部的にPython3.5を実行するプログラムを作りました。 目標としては、別途Pythonをインストールしなくても、必要なコンポーネントを同梱して動くようにしたいのです。 手元のPCでは満足に動作していましたので、試しにほぼインストールしたままの状態のPCで動作させてみたところ動きませんでした。 調べたところ依存ファイルが足りず起動できていないようでしたので、一旦Pythonに同梱されていた python35.dllと、vcruntime140.dll をコピーして再実行しました。 今度は起動自体はできたのですが、Pythonの初期化が出来ず Py_Initialize() を実行するとプログラムがハングアップします。 正しくPythonを動かすには他に何が必要なのでしょうか?