文档章节

C#用VLC “全屏” 播放视频

天体图
 天体图
发布于 2017/08/02 16:46
字数 522
阅读 74
收藏 0

工作还没完成,大概记录一下吧!

用VLC播放视频时,它总是保持着原有比例,并不铺满控件。

网上照了一些方法,有的人说libvlc_set_fullscreen,其实这是真的全屏幕,我也没研究过,用法比较复杂,不是简简单单的调一个函数就能实现的,具体看官方说明。

有的人说libvlc_video_set_aspect_ratio,但是我看别人说只有第一次可以按照自定义长宽比,第二次设置没用,那么在控件大小变动后,就无法实现铺满整个控件了。但是在控件大小不变或者比例不变的情况下,应该是可以用的。

设置这个长宽比我也没有试过,因为当时我已经抄了第三种方式的大量代码,不想就这么放弃。

第三种方式也是参考网上的,主要流程是设置libvlc_video_set_format和libvlc_video_set_callbacks,利用video回调函数,处理每一帧图像,把它输出到控件上。

LIBVLC_API void libvlc_video_set_callbacks ( libvlc_media_player_t *  mp,
    libvlc_video_lock_cb  lock,
    libvlc_video_unlock_cb  unlock,
    libvlc_video_display_cb  display,
    void *  opaque 
  )

参考资料:http://www.cnblogs.com/smartsensor/p/4343769.html

大致是如这位大神所说,但是我实际使用中发现,它调用回调函数的顺序并不是按照libvlc_video_lock_cb 、libvlc_video_display_cb 、libvlc_video_unlock_cb 这样的顺序执行的,而是先unlock后display,这应该算是一个坑吧,我按照大神的代码总是走不进display回调,调试之后才发现的。

然后,我就把他的代码拷贝拷贝,将回调函数中获得的图像指定为控件的背景(控件背景的显示模式为拉伸),就实现了视频以拉伸的形式展示在控件上了。

最后检查一下有没有内存泄露什么的,就打开任务管理器,放一段视频,看看内存使用率会不会升高什么的。

© 著作权归作者所有

共有 人打赏支持
天体图
粉丝 16
博文 4
码字总数 4217
作品 0
南京
iOS开发之视频播放

1、如何播放视频 iOS提供了MPMoviePlayerController、MPMoviePlayerViewController两个类,可以用来轻松播放视频和网络流媒体网络音频。 提示:网络音频同样使用此控制器播放。YouTobe就是用...

feng_blog
2015/08/31
278
1
VLC 0.9.9发布,1.0版蓄势待发

最好的开源视频播放器VLC至今下载数量已接近5000万次,4月2日 它正式发布了0.9.9版。主要特性包括:修正Windows上多屏幕全屏显示问题,改进了基于英特尔处理器的苹果电脑视频性能,解码器更新...

红薯
2009/04/05
917
0
MPV 播放器:Linux 下的极简视频播放器

MPV 是一个开源的,跨平台视频播放器,带有极简的 GUI 界面以及丰富的命令行控制。 VLC 可能是 Linux 或者其他平台下最好的视频播放器。我已经使用 VLC 很多年了,它现在仍是我最喜欢的播放器...

17%
09/05
0
0
Mac 版 VLC 3.0 预览版发布:支持 360 度视频

VideoLAN 今天发布了 VLC 3.0 第一个预览版,并加入了 360 度视频播放支持,这意味着 macOS 用户可以使用 VLC 3.0 观看沉浸式环绕视频。Mac 电脑缺少运动追踪功能,所以用户需要使用鼠标和键...

两味真火
2016/11/27
3.2K
8
用VLC做流媒体服务器

VLC确切来说只是个播放器,是videolan的开源产品,videolan原来还有一个VLM,是服务器端,专门用来做流媒体服务器的,但是现在VLM的功能已经都集成进VLC了,所以也就可以用VLC来做流媒体服务...

yizhichao
2016/09/18
47
0

没有更多内容

加载失败,请刷新页面

加载更多

申请Let's Encrypt永久免费SSL证书

环境安装 1、安装git yum install git-core 2、安装python 系统自带 不用安装 只要版本大于2.7即可。 获取Let's Encrypt免费SSL证书 先停止nginx 在阿里云安全组里加入 443端口的入规则 git ...

HGMrWang
26分钟前
0
0
如何使用playframework进行更好的开发

1: 自定义基类Controller 相信刚开始使用Play的人写的Controller 都继承于 play.mvc.Controller , 但这并不是一个很好的选择,自建基类Controller可以扩展更多的功能。 1.1 验证功能。 后台...

tuerqidi
31分钟前
3
0
解决ubuntu下root用户 不能ftp登陆的问题

解决ubuntu下root用户 不能ftp登陆的问题 一般情况下,由于种种原因ftp是不让root用户远程登陆,但只要你修改以个文件就可以登陆了. 注释掉 /etc/ftpusers 中的root即可 (最后重启vsftpd serv...

15834278076
43分钟前
0
0
《JavaScript高级程序设计(第3版)》阅读笔记

第6章 面向对象的程序设计 6.2 创建对象 6.2.1 工厂模式 JavaScript创建对象(一)—— 工厂模式 6.2.2 构造函数模式 JavaScript创建对象(二)——构造函数模式 6.2.3 原型模式 JavaScript...

Bob2100
48分钟前
0
0
Windows小技巧 – Win+R提高Windows使用效率

追求效率的朋友都需要一款顺手的快速启动工具,Win 平台上有键盘流的RunZ、Listary、ALTRun、Launchy、Wox 和图标流的 Fences、Rolan、 WinLaunch 等,而 Mac 上也有 Alfred、Spotlight。 而...

QQZZFT
50分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部