4

最近、VLCプレーヤーをC#に組み込むための最良の方法を決定しようとしているときに、この投稿に出くわしました。

VLCメディアプレーヤーにはC#インターフェイスがありますか?

dllファイルをダウンロードしてプロジェクトにインポートしましたが、使用方法がわからないことに気づきました。誰かがこのコードのWindowsフォームの例を手に入れましたか?試したコードを以下に示します-

Vlc.DotNet.Core.Medias.MediaBase media = new
    Vlc.DotNet.Core.Medias.PathMedia(@"C:\Users\...\SampleVideos\Wildlife.wmv");

Vlc.DotNet.Forms.VlcControl vlcControl1 = new Vlc.DotNet.Forms.VlcControl();
vlcControl1.Play(media);

プロジェクトのメインprogram.csでこのリンクのコードも使用しています。

http://vlcdotnet.codeplex.com/wikipage?title=Forms

私が経験している現在の問題は、プロジェクトを開始すると、->に到達したときにNullReferenceExceptionがスローされることです。

vlcControl1.Play(media)

問題はvlcControlにあるようですが、理由はわかりません。ドキュメントはかなり薄いようで、codeplexサイトで実用的な例を見つけることができませんでした。誰かが作業フォームの例を持っているか、私が見逃したかもしれないことを知っているなら、私に知らせてください!

エラーが発生したときに存在するコールスタックは次のとおりです->

RTSPViewer_Test.exe!RTSPViewer_Test.Form1.Form1_Load(object sender, 
    System.EventArgs e) Line 31 + 0xd bytes C#
RTSPViewer_Test.exe!RTSPViewer_Test.Program.Main() Line 30 + 0x1d bytes C#

デバッグすると、VLCコントロールのMedia属性とMedias属性が両方ともnullであるように見えます。コントロールのメディアを上に作成されたメディアオブジェクトに設定しようとすると、

NullReferenceException

VLCコントロールオブジェクトMediaをチェックすることは確かにnullに等しいですが、なぜそれが適切に初期化されていないのかわかりません。

4

1 に答える 1

4

最新バージョンの Vlc.dotnet ライブラリを使用してプログラムを動作させることができませんでしたが、代わりに Raj によって投稿されたアルファ 2 バージョンを使用しました。このライブラリで VLC バージョン 1.1.5 を使用して、基本的な例を適切に機能させました。私の最終的な目的は rtsp デバイスからストリーミングすることでしたが、このライブラリはまだこの機能をサポートしていないようです。

VLC を使用するための優れた C# ラッパーを使用しようとしている人にとって、これは素晴らしい例です -

http://www.codeproject.com/Articles/109639/nVLC

このプロジェクトで VLC 1.1.1 のライブラリ ファイルを使用すると、正常に動作します。VLC で通常使用するほとんどすべての機能をサポートしますが、それらの使用目的をより詳細に制御できます。

これらの DLL ラッパーを使用するときに発生する問題の多くは、ソース DLL ファイルのバージョンが正しくないことが原因でした。現時点では、VLC ライブラリは 32​​ ビットのみであるため、x86 モードを使用してコンパイルする必要があります。そうしないと、libvlc.dll が正しく読み込まれず、アプリケーションがクラッシュします。上記の例を使用すると、libvlc.dll、libvlccore.dll、およびプラグイン フォルダーがビルド フォルダーに含まれていることも確認する必要があります。

于 2012-04-30T15:07:29.803 に答える