VR正在改变我们生活、社交和工作方式。今天的消费者正在寻找体验,经过近几年的研究,我们知道VR有能力在未来的学习和发展中发挥巨大的作用。TSINGSEE青犀视频开发的EasyPlayerPro作为一款专业播放器,在VR播放扮演了重要的角色。
应我们开发者的要求,我们现在一个项目中需要做一个VR播放器,基于EasyPlayerPro进行改造,因为用户使用的不是标准的显示器,而是用电视机拼接的电视墙,我这边使用MFC自带的 ShowWindow(SHOW_FULLSCREEN),达不到预期的效果,如下图所示,在项目中,播放器并不能根据屏幕的大小全屏显示:
该开发者要求全屏,但项目中使用的是拼接屏,所以我们找寻了一些全屏的方法,主要方式就是需要获取该屏幕的分辨率,然后赋值屏幕分辨率达到播放器全屏展示的目的。我们首先尝试了通过各种系统api获取屏幕分辨率,都没成功,随后到网上搜索了一些解决方法,发现可以从代码层面进行修改,就能够获取此类拼接屏幕的分辨率。
参考代码如下:
HMONITOR monitor = MonitorFromWindow(hwnd, MONITOR_DEFAULTTONEAREST);
MONITORINFO info;
info.cbSize = sizeof(MONITORINFO);
GetMonitorInfo(monitor, &info);
int monitor_width = info.rcMonitor.right - info.rcMonitor.left;
int monitor_height = info.rcMonitor.bottom - info.rcMonitor.top;
在该问题中,获取到的屏幕分辨率为SetWindowPos(NULL, 0, 0, 7688, 4328, 0),我们将该值手动复制到播放器中,即可解决播放器在最大化状态下的全屏问题:
效果如下所示,播放器可直接占满全屏: