流媒體播放器又叫流式媒體,是指邊傳邊播的媒體軟件。流媒體中的“流”指的是一種傳輸方式。流媒體播放器通常指能把視頻文件通過流式傳輸的方式在Internet播放的播放器。用戶通過一邊不斷接受數據然後一遍播放數據達到一個流媒體的傳輸方式。
網頁流媒體播放器
EasyPlayerPro是一款簡單精煉,易用,高效,穩定的流媒體播放器,支持RTSP(TCP / UDP上的RTP),RTMP,HTTP,HLS,TCP,UDP等多種流媒體協議,支持多種編碼格式的流媒體音視頻直播流,點播流,文件播放。
EasyPlayerPro-Win全屏模式下黑屏
對於每一位用戶反饋、諮詢的問題,我們一般都會盡快進行排查和解決。之前有用戶反饋有部分視頻源在全屏模式下顯示黑屏,我們接到反饋的同時馬上協同開發人員進行檢查。
經過我們的開發檢測,發現其實是1080P的視頻在全屏狀態下會顯示黑屏,且顯示器分辨率剛好是1080P,並且是在GDI的顯示模式下。
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....
);