用C# 调用libvlc.dll和libvlccore.dll 做视频播放器 添加不了.dll引用

用C# 调用libvlc.dll和libvlccore.dll 做视频播放器 添加不了.dll引用,第1张

将dll放在编译的文件夹里,

[DllImport("libvlc", CallingConvention = CallingConvention.StdCall, ExactSpelling = true)]

libvlc.dll和libvlccore.dll 不是.NET的程序集,只能照上面做法调用。具体,我也不会。

VLC提供的模块说明如上图。下面分别讲解了如何添加模块目录和添加模块,源代码见最后。

一、添加“模块目录。

(1) 在Modules目录下新建MyModules子目录,加入“模块源代码”mymdule1.c

(2) 添加Modules.am文件

SOURCES_mymodule1 = mymodule1.c

libvlc_LTLIBRARIES += \

$(NULL)

(3) 修改Modules/Makefile.am文件,添加MyModules子目录

BASE_SUBDIRS = \

....

MyModules

(4) 修改根目录下的configure.ac文件,添加模块,支持编译

dnl

dnlmymodules

dnl

VLC_ADD_PLUGIN([mymodule1])

(4) 运行./bootstrap

./configure**.sh (自己定义的configure文件)

二、添加“模块”

例如:在Demux目录下添加MyModule1模块

(1) 修改Demux目录下的Modules.am文件,增加1行

SOURCES_mymodule1 = mymodule1.c

(2) 复制MyModule1.c到Demux目录

(3) 修改根目录下的configure.ac文件,添加模块,支持编译

dnl

dnlmymodules

dnl

VLC_ADD_PLUGIN([mymodule1])

(4) 运行./bootstrap

./configure**.sh (自己定义的configure文件)

附:MyModule1.c源代码:

#ifdef HAVE_CONFIG_H

# include "config.h"

#endif

#include <vlc_common.h>

#include <vlc_plugin.h>

/*****************************************************************************

* Local prototypes.

*****************************************************************************/

static intOpen ( vlc_object_t * )

static void Close( vlc_object_t * )

/*****************************************************************************

* Module descriptor

*****************************************************************************/

vlc_module_begin()

add_shortcut( "testmodule" )

set_description("testmodle plug-in")

set_callbacks( Open, Close )

set_capability( "testing", 0 )

set_category( CAT_INPUT )

vlc_module_end ()

/*****************************************************************************

* Open: initialize interface

*****************************************************************************/

static int Open( vlc_object_t *p_this )

{

msg_Dbg(p_this,"Using test module...\n")

return VLC_SUCCESS

}

/*****************************************************************************

* Close: destroy interface

*****************************************************************************/

static void Close( vlc_object_t *p_this )

{

msg_Dbg(p_this,"Close test module!\n")

}

VLC开发所需的库文件可以有2种获取方法:

1. 自行编译

2. 直接从安装目录里面拷贝出来

第一种方法难度要大一些。尤其是在Windows下编译VLC是个比较麻烦的事情。一般情况下可以选择第二种方法获取VLC开发所需的文件。

开发VLC所需的文件的位置:

1. 动态链接库*.dll:安装目录下的libvlc.dll,libvlccore.dll以及plugins目录下的所有文件。

PS:VLC支持非常多的plugin。因此plugins目录的体积确实是非常大的。

2. 静态链接库*.lib:安装目录/sdk/lib

3. 头文件*.h:安装目录/sdk/include

新建一个VC工程后,把上述三类文件分别拷贝至新工程目录下,并且配置它们的路径之后,就可以使用libVLC进行开发了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11391687.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存