libvlc 获取视频帧 使用了 libvlc_video_set_callbacks 但是进入回调得到的参数都是空句柄是为什么?

穷凶极恶,有容乃大 2019-02-02 10:44:16
//播放网络文件
libvlc_media = SafeNativeMethods.libvlc_media_new_location(libvlc_instance, pMrl);
SafeNativeMethods.libvlc_media_add_option(libvlc_media, ":avcodec-hw=any");
if (libvlc_media == null || libvlc_media == IntPtr.Zero)
{
return false;
}
SafeNativeMethods.libvlc_media_parse(libvlc_media);
//将Media绑定到播放器上
SafeNativeMethods.libvlc_media_player_set_media(libvlc_media_player, libvlc_media);
time = SafeNativeMethods.libvlc_media_get_duration(libvlc_media) * 1.0;

//获取对应播放器句柄
mediaPlayerInstance = SafeNativeMethods.libvlc_media_player_new_from_media(libvlc_media);

//释放libvlc_media资源
SafeNativeMethods.libvlc_media_release(libvlc_media);

//获取视频帧
SafeNativeMethods.libvlc_video_set_callbacks(mediaPlayerInstance, _videoLockCB, _videoUnlockCB, _videoDisplayCB, mediaPlayerInstance);//IntPtr.Zero
SafeNativeMethods.libvlc_video_set_format(mediaPlayerInstance, StrToIntPtr("RGBA"), _width, _height, _pitch);
SafeNativeMethods.libvlc_media_player_play(mediaPlayerInstance);


这里定义了vlc播放器并且设置了回调

但是进入这里的时候
private static void VideoDiplayCallBack(IntPtr opaque, IntPtr picture)
{
..........
}

opaque 和 picture 都是 Inprt.Zero

...全文
1943 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
QQ515311445 2019-07-25
  • 打赏
  • 举报
回复
Windows上VS工程用过,正常的啊
  • 打赏
  • 举报
回复
还请各位大佬解惑

2,542

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧