C#VLC 1.1 Wrapper

时间:2010-08-05 15:03:07

标签: c# wrapper vlc libvlc

有谁知道C#VLC 1.1 Wrapper?我找到了旧版VLC的一些包装器(尚未尝试过),但新版本没有。

所以,如果您知道,请发布。

3 个答案:

答案 0 :(得分:6)

我正在使用http://www.codeproject.com/KB/audio-video/nVLC.aspx - 它非常出色,是我为C#找到的最新库。

应该注意的是,尽管该库是使用GPL许可证列出的,但是它的作者said in comments使用了与libVLC相同的许可证,其版本2.0是LGPL。

答案 1 :(得分:4)

libvlc.net现在支持libVLC 1.1.x.您必须从SVN存储库中获取源代码;他们还没有正式发布这种支持。

http://sourceforge.net/projects/libvlcnet/

答案 2 :(得分:1)

我也在寻找这个,我发现那里的大多数.NET包装都已经过时,不能立即使用,或者拥有不适合专有软件的许可证。

说,我开始考虑构建自己的包装器。由于大多数包装器的代码太多而且理解和使用都很混乱,因此使自己成为包装器的想法越来越多。说,http://www.helyar.net/2009/libvlc-media-player-in-c-part-2/是一个开始制作自己的代码的好地方。

请注意,libvlc和libvlccore已将许可证更改为LGPL。正如Jean-Baptiste Kempf在一个视频论坛中所说: “你可以抓住VLC安装> = 2.0.0附带的dll(libVLC和libVLCcore)。”

现在让它工作,你必须将libvlc.dll和libvlccore.dll放在与exe文件相同的目录中,因为一些代码指向本地目录......

要与libvlc中的一个函数互操作,请执行以下操作:

创建一个包含您要与之交互的函数的类:

static class LibVlc
    {
        [DllImport("libvlc", CallingConvention = CallingConvention.Cdecl)]
        public static extern IntPtr libvlc_new(int argc, [MarshalAs(UnmanagedType.LPArray,
          ArraySubType = UnmanagedType.LPStr)] string[] argv);

        [DllImport("libvlc", CallingConvention = CallingConvention.Cdecl)]
        public static extern void libvlc_release(IntPtr instance);
    }

在vlc docs的帮助下,libvlc.html“> http://www.videolan.org/developers/vlc/doc/doxygen/html/group_libvlc.html,您只能拥有所需的功能,仅此而已

CallingConvention = CallingConvention.Cdecl适用于.NET 4.0+。上述两个函数本身不会做任何有趣的事情。它们只是初始化和释放VLC框架所需的资源。

小心文件路径(特别是在链接到插件文件夹时),因为他们需要“/”而不是“\”,如“C:/ Program Files /...”