前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >EasyPlayerPro-win配置全屏模式不能全屏是为什么

EasyPlayerPro-win配置全屏模式不能全屏是为什么

原创
作者头像
TSINGSEE青犀视频
修改2021-06-28 14:35:00
1.4K0
修改2021-06-28 14:35:00
举报
文章被收录于专栏:TSINGSEE青犀视频TSINGSEE青犀视频

最近遇到一个项目团队是做全景视频播放的,希望用EasyPlayerPro做一个客户端程序,但是在调试DEMO的时候遇到一个问题,即配置了全屏模式后,视频只能出现在窗体左上角。

EasyPlayerPro播放界面:

针对该问题,我们与这个项目团队进行了详细沟通,才得知当前的显示器是多屏拼接显示的,用Nvidia的Surround配置多个显示器拼接成一个显示器来用,目的是提高显示效果。但是就算如此,也不应该在本应全屏的时候不能全屏显示,最终只能回归到检查代码。

在检查到代码FullScreen()时,忽然看到了如下代码:

代码语言:javascript
复制
ShowWindow(SW_MAXIMIZE);

这个代码透露了一定的信息,让我们开始思考当前指定窗口最大化是否不能对多屏显示起作用,或者只是对当前第一块屏幕有效?于是我们开始实验,去除最大化操作,这时候程序正好出现在屏幕中间,通过拖拽的方式可以拉到铺满整个屏幕的最大化效果,于是又检查了下当前屏幕分辨率,分辨率为:7688*4328。

既然通过拖拽的方式可以实现最大化的需求,我们是否可以换个思路,直接将窗口指定分辨率,于是做如下试验:

代码语言:javascript
复制
SetWindowPos(NULL, 0, 0, 7688, 4328, 0)

从左上角开始绘制窗体的时候就指定好窗体的宽和高,然后再配合去除窗体边框等,调试运行后,过然可以解决问题,此时能果断解决网友遇到的“全屏”问题。

关键代码如下:

代码语言:javascript
复制
// 去掉标题栏  
ModifyStyle(WS_CAPTION, 0); //(WS_POPUP | WS_BORDER | WS_CAPTION | WS_SYSMENU, WS_CHILD);
// 去掉边框
ModifyStyleEx(WS_EX_DLGMODALFRAME, 0);  
//窗口位置和大小保持原来不变
SetWindowPos(NULL, 0, 0, 7688, 4328, 0);//SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_FRAMECHANGED); 
//SetWindowPos(NULL, 0, 0, 1920, 1080, 0);//SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_FRAMECHANGED); 
//最大化窗口
ShowWindow(SW_NORMAL); 
//ShowWindow(SW_MAXIMIZE);//不能再使用最大化,此最大化只是针对当前屏幕最大化

拓展

EasyPlayerPro虽然支持了几乎所有的流媒体协议,但是在很多场景和需求下面(例如:SDK包大小,自定义协议,数据加密),EasyPlayerPro的定制成本比较高,灵活程度没有EasyPlayer-RTSP和EasyPlayer-RTMP专用播放器的灵活程度高,EasyPlayerPro考虑的是通用性,而专用播放器考虑的是定制性。因此如果还想了解TSINGSEE青犀视频开发的其他专用播放器,欢迎联系我们,目前EasyPlayer系列已经支持H265编码的视频播放,同时支持集成,欢迎了解。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云点播
面向音视频、图片等媒体,提供制作上传、存储、转码、媒体处理、媒体 AI、加速分发播放、版权保护等一体化的高品质媒体服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档