2012-02-09 23 views
1

Windows XP(SP3)、Vista、および7で動作するメディアプレーヤー(C#.net 4.0)を作成しようとしています。通常、 WPFの独自のMediaElementを使用しますが、それはWindows Media Player 10以上に依存しているため、Windows XP SP3にはWPM9しかないため動作しません。ユニバーサルビデオプレーヤー(XP、Vista、7)の作成

最初に私はJerimiah MorillのWPF MediaKitサンプルアプリケーションをダウンロードしようとしましたが、これは私のテストマシンでは表示されないEVRを使用しました(デフォルトのコーデックとデフォルトプログラム、さらにはさまざまな.NetフレームワークインストールのWindows XP SP3のみ)。また、バイナリをダウンロードして、これらを別々にして、DirectShow-dllとWPFメディアキットの最小限のものについてのみ新しいプロジェクトを作成しました。今回はEVRの参照が一切ありません。まだ運がありません。これは私が苦労していることを理解している - Windows XPでもVMRを使ってムービーを再生できるはずですか?

これらのいずれかが動作するメディアプレーヤーのサンプルが見つかりました。これはDxPlayと呼ばれ、DirectShowのグラフ作成ツールを使用していますが、winformsに組み込まれており、生の目に見えないコードがいくつかあり、スケーリング、シーク、オーディオの処理は行われません。

したがって、WMP10 +を押さずに上記のすべてのプラットフォームで再生されるメディアプレーヤーを簡単に作成する方法はありますか?私はWPF MediaKitに大きな期待を持っていましたが、何かがWindows XP SP3で再生できないようにしています(これに対する解決策は非常に興味深いでしょう)。

ありがとうございます!

-ruNury

+0

[WPF-MediaKit](https://github.com/Sascha-L/WPF-MediaKit)は、デフォルトでVMR9を使用します。 – xmedeko

答えて

2

私はあなたの.NETプロジェクトでVLCメディアプレーヤーをラップしようとするだろう。

+0

アドバイスをいただきありがとうございます。しかし、これはVLCがメディアプレーヤーを実行しているコンピュータにインストールされている必要がありますか?私がやっていることはソフトウェアの大部分の一部なので、他の方法がない限り、サードパーティ製のソフトウェアをプッシュすることはできません... – ruNury

+0

@ruNury常に他の方法があります - あなた自身のプレーヤーコントローラを書くことができます:) – Seekeer

+0

@ruNuryサードパーティライブラリの問題は何ですか?特に大量の作業が必要なビデオプレーヤーの場合、ホイールを永遠に再現することはできません。これはWindows Media Playerでも同じですが、インストールする必要があります。ライセンスに関する問題であれば、Ms-PLとL-GPLの両方がユースケースの90%でOKです。 – ken2k

0

MSDNどこのシステムにビデオ出力用のEVR(拡張ビデオレンダラ)を提案する:ここでは

はあなたを助けるかもしれないいくつかの.NETプロジェクトでありますサポートされています:Windows Vista以降。ビデオミキシングレンダラーフィルタ(バージョン7と9)は、ビデオのスムーズなスケーリングを実現するために導入されました。ビデオミキシングレンダラー7は、カスタマイズの面でも機能はほとんどありませんが、リソースをほとんど消費しません(Direct 3Dを使用しない)ので、一度に多くのビデオを出力できます。

ここでの標準的なソリューションは、VMRとEVRの両方の出力をサポートし、後者のWindows Vistaを使用することです。

EVRはWindows XPに.NETランタイムでインストールされ、インスタンス化のトリックで使用できます:それぞれのDLLはCOMに登録されておらず、CoCreateInstance APIを使用してインスタンスを作成することはできませんが、 CoLoadLibraryDllGetClassObjectとお友達。

C#開発では、通常、DirectShowをDirectShow.NET Libraryで消費します。

関連する問題