vlc播放器下载地址
https://vlc-media-player.en.softonic.com/
vlc sdk下载地址
http://download.videolan.org/pub/videolan/vlc/
vlc-3.0.12\sdk\文件夹下include和lib文件夹copy到工程目录下,vlc-3.0.12目录下libvlc.dll、libvlccore.dll和plugins文件夹copy到执行文件(.exe)目录。
代码如下:
handle为传入参数
//一个libVLC的实例
libvlc_instance_t* m_plibvlc_instance;
//播放器
libvlc_media_player_t* m_plibvlc_media_player;
const char* vlc_args[] =
{
"-I", "dummy",
"--ignore-config",
"--rtsp-tcp",
"--plugin-path=./plugins",
"--no-audio",
"--verbose=1"
};
//设置启动参数 创建一个libVLC的实例
m_plibvlc_instance = libvlc_new( sizeof( vlc_args ) / sizeof( vlc_args[0] ), vlc_args );
if( m_plibvlc_instance == nullptr )
{
return;
}
// 创建一个可以播放的媒体
libvlc_media_t* libvlc_media = nullptr;
//本地文件
libvlc_media = libvlc_media_new_path( m_plibvlc_instance, szurl );
//网络流
//libvlc_media = libvlc_media_new_location( m_plibvlc_instance, szurl );
if( libvlc_media == nullptr )
{
return;
}
//创建播放器
m_plibvlc_media_player = libvlc_media_player_new_from_media( libvlc_media );
if( m_plibvlc_media_player == nullptr )
{
return ;
}
//释放libvlc_media资源
libvlc_media_release( libvlc_media );
//设置播放窗口
libvlc_media_player_set_hwnd( m_plibvlc_media_player, handle );
//开始播放
//return 0 if playback started (and was already started), or -1 on error.
libvlc_media_player_play( m_plibvlc_media_player );
Sleep(10*1000);//10s
//停止播放
libvlc_media_player_stop( m_plibvlc_media_player );
//释放播放器
if( m_plibvlc_media_player )
libvlc_media_player_release( m_plibvlc_media_player );
//释放libVLC的实例
if( m_plibvlc_instance )
libvlc_release( m_plibvlc_instance );