天天看點

EasyPlayer-RTSP在WPF架構播放不顯示視訊畫面,是什麼原因?

TSINGSEE青犀視訊根據不同的播放協定,擁有多種類型的視訊流媒體播放器,以便滿足使用者在不同場景下的需求,比如EasyPlayer流媒體播放器,就包括有EasyPlayer-RTSP、EasyPlayer- RTMP、EasyPlayerPro 和EasyPlayer.js 等版本。以上播放器均核心基于ffmpeg,性能穩定、高效、可靠、可控,支援RTSP、RTMP、HTTP、HLS、UDP、RTP、File等多種流媒體協定播放。

EasyPlayer的相容性強且版本廣泛,有很多使用者都将EasyPlayer作為播放平台,內建進自己的伺服器中。TSINGSEE青犀視訊也在持續對旗下各類型的播放器進行功能優化和更新。

近期有使用者回報,在WPF架構中,網頁無插件視訊流媒體播放器EasyPlayer-RTSP出現了播放時不顯示畫面的情況,如下圖所示:

EasyPlayer-RTSP在WPF架構播放不顯示視訊畫面,是什麼原因?

上圖中,中間的白色區域應該是顯示視訊的畫面,但是此時使用EasyPlayer-RTSP播放器未出現視訊圖像。

接到回報後,TSINGSEE青犀視訊技術團隊第一時間進行了排查。

首先,我們在EasyPlayer-RTSP設定回調函數,添加如下代碼:

EasyPlayer-RTSP在WPF架構播放不顯示視訊畫面,是什麼原因?

從控制台我們可以看到,已有資料資訊列印,這表明EasyPlayer-RTSP播放器可以拿到視訊流,但是界面卻沒有渲染視訊畫面。

是以,我們可以判斷,可能是某個代碼屬性的設定問題。一番排查後發現,.cs檔案不是導緻該問題的原因。那麼就有可能是因為.xaml檔案的某個屬性設定導緻視訊畫面沒有正常渲染。

将.xaml檔案裡的内容全部節點都注釋,隻留下Image渲染視訊。操作後發現,依然沒有渲染出視訊圖像。

EasyPlayer-RTSP在WPF架構播放不顯示視訊畫面,是什麼原因?

此時問題的解決範圍已經縮小到隻剩下Windows這個節點的某個屬性值。依據我們的經驗判斷,Xmlns和WindowStyle這兩個屬性也不是該問題的原因。

于是我們又進行了一次調試,在調試過程中,找到了原因:AllowsTransparency="True"值導緻了視訊畫面不渲染。因為AllowsTransparency的屬性作用是:視窗透明,正是如此,是以出現了剛剛上文所述的播放器沒有正常播放視訊圖像的現象。

解決起來也很簡單,将其改為False即可。修改後,EasyPlayer-RTSP播放器已經可以正常播放視訊了。

如果大家對我們的播放器感興趣,可以檢視我們以往的文章,了解更多的内容。同時也歡迎大家持續關注我們的更新,我們将不斷更新更多的開發技巧和新功能拓展。

繼續閱讀