在android中实现vlc播放码流视频,C#编程调用开源播放器VLC播放码流以及本地视频的操纵教程...

本文详细介绍了如何在C#中使用VLC播放器播放码流和本地视频,包括环境配置、VLC库的导入、播放控制以及资源管理。通过一系列的DLLImport和方法调用来实现视频的播放、暂停、停止等功能。
摘要由CSDN通过智能技术生成

本文主要向大家介绍了C#编程调用开源播放器VLC播放码流以及本地视频的操纵教程,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助。

一:环境配置

VLC播放器依赖libvlc和libvlccore两个动态链接库文件以及一个plugins插件包,需要将其放置在debug目录下。依赖文件可以在LVC播放器的安装目录下找到。

二:导入VLC提供的方法

[SuppressUnmanagedCodeSecurity]

internal static class SafeNativeMethods

{

// 创建一个libvlc实例,它是引用计数的

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

internal static extern libvlc_instance_t libvlc_new(int argc, IntPtr argv);

// 释放libvlc实例

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

internal static extern void libvlc_release(libvlc_instance_t libvlc_instance);

//获取libvlc的版本

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

internal static extern String libvlc_get_version();

//从视频来源(例如http、rtsp)构建一个libvlc_meida

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

internal static extern libvlc_media_t libvlc_media_new_location(libvlc_instance_t libvlc_instance, IntPtr path);

//从本地文件路径构建一个libvlc_media

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

internal static extern libvlc_media_t libvlc_media_new_path(libvlc_instance_t libvlc_instance, IntPtr path);

//释放libvlc_media

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

internal static extern void libvlc_media_release(libvlc_media_t libvlc_media_inst);

// 创建一个空的播放器

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

internal static extern libvlc_media_player_t libvlc_media_player_new(libvlc_instance_t libvlc_instance);

//从libvlc_media构建播放器

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

internal static extern libvlc_media_player_t libvlc_media_player_new_from_media(libvlc_media_t libvlc_media);

//释放播放器资源

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

internal static extern void libvlc_media_player_release(libvlc_media_player_t libvlc_mediaplayer);

// 将视频(libvlc_media)绑定到播放器上

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

internal static extern void libvlc_media_player_set_media(libvlc_media_player_t libvlc_media_player, libvlc_media_t libvlc_media);

// 设置图像输出的窗口

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

internal static extern void libvlc_media_player_set_hwnd(libvlc_media_player_t libvlc_mediaplayer, Int32 drawable);

//播放器播放

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

internal static extern int libvlc_media_player_play(libvlc_media_player_t libvlc_mediaplayer);

//播放器暂停

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

internal static extern void libvlc_media_player_pause(libvlc_media_player_t libvlc_mediaplayer);

//播放器停止

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

internal static extern void libvlc_media_player_stop(libvlc_media_player_t libvlc_mediaplayer);

// 解析视频资源的媒体信息(如时长等)

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

internal static extern void libvlc_media_parse(libvlc_media_t libvlc_media);

// 返回视频的时长(必须先调用libvlc_media_parse之后,该函数才会生效)

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

internal static extern Int64 libvlc_media_get_duration(libvlc_media_t libvlc_media);

// 当前播放时间

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

internal static extern Int64 libvlc_media_player_get_time(libvlc_media_player_t libvlc_mediaplayer);

// 设置播放时间

[DllImport("libvlc", CallingConvention = CallingConvention.Cdecl, ExactSpe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值