通常對於一個播放器,應該支持以下幾種顯示模式:api
要實現這幾種顯示模式。其實只要對播放控件的佈局進行些許調整便可。那EasyPlayer是怎麼實現的呢?佈局
EasyPlayerPro是一款全功能的流媒體播放器,支持RTSP、RTMP、HTTP、HLS、UDP、RTP等多種流媒體協議播放、支持本地文件播放,支持本地抓拍、本地錄像、視頻翻轉、多屏播放等多種功能特性,穩定、高效、可靠。
測試
咱們研發在對EasyPlayerPro進行測試的時候,忽然想起來以前有用戶反饋過關於EasyPlayerPro的問題,稱EasyPlayerPro在播放一個rtmp源時,畫面顯示異常。今天咱們就整理一下這個問題的解決方案,以便之後你們遇到相似的問題可以有所參考。編碼
首先咱們來複現一下這個錯誤。咱們嘗試把播放器的顯示格式改成D3D顯示,頁面正常,所以,咱們初步推測此問題爲分辨率的問題。D3D顯示是固定的拷貝,而GDI顯示是由api DrawDibDraw實現,在源端將分辨率固定爲編碼分辨率,顯示效果以下:spa
由分析發現的確是源端分辨率的問題,仔細查看發現,回調出來的分辨率是顯示分辨率(width,height),而非編碼分辨率(coded_width,coded_height)。咱們把分辨率修改過來,就可以正常顯示了。3d