[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进行开发了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)