天天看點

UE4學習筆記:如何在場景中播放視訊

       UE4的媒體架構(https://docs.unrealengine.com/en-US/Engine/MediaFramework/index.html)可用于播放本地視訊、視訊流以及圖檔序列。可以利用這些功能實作在場景中播放視訊,例如在場景中有一個電視機模型,可以通過按鍵互動控制電視畫面的播放、暫停以及關閉。

      以播放單個視訊為例,需要的資源有:

       1、視訊檔案:将MediaPlayer支援的視訊格式檔案放到Content/Movies目錄下

       2、視訊源:FileMediaSource或者StreamMediaSource,本地視訊就是視訊檔案路徑,視訊流就是URL(官方Demo:https://docs.unrealengine.com/Attachments/Engine/MediaFramework/HowTo/StreamMediaSource/Infiltrator%20Demo.mp4)

       3、視訊播放器:MediaPlayer,可用于播放視訊源

       4、視訊幀貼圖:MediaTexture,MediaPlayer隻能用于播放視訊源,不能顯示在場景中,但是可以将視訊幀渲染到MediaTexture中,再通過MediaTexture建立材質賦予模型

       5、視訊幀材質:Material,将MediaTexture作為紋理貼圖,進而顯示到模型表面

       下面是具體的實作步驟。

       将Demo.mp4檔案放到Content/Movies目錄下,Movies目錄下的媒體檔案在打包之後會一起複制到打包目錄下,如果在其他目錄要額外設定。

       建立一個FileMediaSource,命名為VideoSource

UE4學習筆記:如何在場景中播放視訊

       FilePath引用到Demo.mp4

UE4學習筆記:如何在場景中播放視訊

       建立MediaPlayer,命名為VideoPlayer

UE4學習筆記:如何在場景中播放視訊

       建立MediaPlayer時會彈出對話框,對話框中勾選Video output Media Texture asset項可以同時建立對應的MediaTexture,如果未勾選也可以自行建立

UE4學習筆記:如何在場景中播放視訊

       輕按兩下打開VideoPlayer,在左下角能看到所有的MediaSource清單,輕按兩下任何一個就可以播放該視訊,在右下角的Details面闆有一些設定項,可将滑鼠懸停檢視說明

UE4學習筆記:如何在場景中播放視訊

       建立MediaTexture,命名為TVTexture,如果上面已經建立直接重命名就可以了

UE4學習筆記:如何在場景中播放視訊

       打開TVTexture,将MediaPlayer屬性值引用到VideoPlayer

UE4學習筆記:如何在場景中播放視訊

       在内容浏覽器中TVTexture資源上右鍵CreateMaterial建立材質,命名為TVMaterial

UE4學習筆記:如何在場景中播放視訊

       打開關卡藍圖,建立一個MediaPlayer類型的變量,預設值設定為上面建立的VideoPlayer

UE4學習筆記:如何在場景中播放視訊

       在關卡藍圖中添加空格按鍵鍵事件,藍圖代碼如下

UE4學習筆記:如何在場景中播放視訊

       OpenSource用于打開視訊源,在Play之前至少調用一次,停止播放的函數為Close,還可以增加一個關閉視訊功能

UE4學習筆記:如何在場景中播放視訊

       在關卡中加入一個平面作為視訊播放螢幕(電視機螢幕),調整位置大小和方向,完成以上步驟後運作,按下空格鍵控制視訊的播放和暫停,倒退鍵關閉視訊

UE4學習筆記:如何在場景中播放視訊

       MediaPlayer還有很多其他的函數用于控制視訊的播放

UE4學習筆記:如何在場景中播放視訊

播放視訊流和圖檔序列等媒體檔案與上面的步驟類似,可參考官方文檔。