zoukankan      html  css  js  c++  java
  • EasyPlayerPro Windows播放器全屏模式下GDI显示出现黑屏问题解决

    问题来源

    • 2017.12.21
      前天有杭州某教育领域客户反馈有部分视频源在全屏模式下显示黑屏;

    问题复现

    EasyPlayerPro由于没有实现单个窗口完全全屏,故没有暴露该问题,晚上加班,加上单个窗口完全全屏,即把控制区全部隐藏,仅将视频铺满整个屏幕;

    改完,电脑罢工了,今天上午还蓝屏两次,ASUS, 伤透了我的心…

    复现问题, 发现其实是1080P的视频在全屏状态下显示黑屏, 且显示器分辨率刚好是1080P. 并且是GDI显示模式;

    又是GDI

    问题解决

    EasyPlayerPro

    GDI显示视频使用的是DrawDibDraw函数, 后经调试, 是坐标的问题,修改以下三行代码:

        SetWindowExtEx(gdiRenderObj.canvas.hDCMemRender, 1, -1, &szWindowExt);
        ::SetViewportOrgEx(gdiRenderObj.canvas.hDCMemRender, rcWindow.left, rcWindow.bottom, &ptOrg);       //2017.11.28  rcWindow.bottom-1, 解决显示时顶部一条黑线问题
        ::SetViewportExtEx(gdiRenderObj.canvas.hDCMemRender, 1, 1, &szViewportExt);
    

    然后在DrawDibDraw函数中将height-1(必须,否则不能正常显示);

    BOOL bRet = ::DrawDibDraw(gdiRenderObj.hDrawDIB,
            gdiRenderObj.canvas.hDCMemRender,
            dstL,//rc.left,             // dest : left pos
            dstT,//rc.top,              // dest : top pos
            //-1,                   // don't zoom x
            //-1,                   // don't zoom y
            dstW,
            dstH-1,
            pbih,                   // bmp header info
            pBuf,                // bmp data
            iSrcLeft,                    // src :left
            iSrcTop,                     // src :top
            iSrcWidth,               // src : width
            iSrcHeight,              // src : height
            0//DDF_SAME_DRAW             // use prev params....
            );
    

    问题搞定, 收工!!!

    关于EasyPlayerPro

    EasyPlayerPro是一款全功能的流媒体播放器,支持RTSP、RTMP、HTTP、HLS、UDP、RTP、File等多种流媒体协议播放、支持本地文件播放,支持本地抓拍、本地录像、播放旋转、多屏播放、倍数播放等多种功能特性,核心基于ffmpeg,稳定、高效、可靠、可控,支持Windows、Android、iOS三个平台,目前在多家教育、安防、行业型公司,都得到的应用,广受好评!

    EasyPlayerPro:https://github.com/EasyDSS/EasyPlayerPro

    点击链接加入群【EasyPlayer & EasyPlayerPro】:544917793

    技术交流

    获取更多信息

    EasyDarwin开源流媒体服务器:www.EasyDarwin.org

    EasyDSS商用流媒体解决方案:www.EasyDSS.com

    EasyNVR无插件直播方案:www.EasyNVR.com

    Copyright © EasyDarwin Team 2012-2017

    EasyDarwin

  • 相关阅读:
    【11平台天梯】【原理分析】11平台天梯原理分析
    2020年8月11日
    2020年8月10日
    2020年8月12日
    2020年8月9日
    2020年8月13日
    2020年8月8日
    2020年8月7日
    2020年8月6日
    2020年8月14日
  • 原文地址:https://www.cnblogs.com/babosa/p/8206960.html
Copyright © 2011-2022 走看看