虚幻引擎:4.22
VS:2017
1.播放视频流
- 在资源目录Content下创建媒体文件夹Media。
- 右键创建StreamMediaSource,并填写Stream URL。
- 然后右键,创建MediaPlayer,并且启用视频输出媒体纹理资源(Video output Media Texture asset)。
- 然后我的想法是创建一个材质,设置贴图为刚刚创建的 视频输出媒体纹理。
- 在对应要播放视频的Plane上修改材质为上面的材质,这样视频内容将会在材质上显示出来。
1.1 蓝图实现方式:
- 在关卡蓝图中创建MediaPlayer变量,并指向刚刚创建的MediaPlayer。然后游戏开始,播放StreamURL对应的MediaSource资源。
- 为了可以播放视频声音,第一种方式在关卡蓝图中,添加MediaSoundComponent组件,并且指定MediaPlayer。
- 第二种方式,在上面的视频播放Plane中,添加MediaSoundComponent组件,并且指定MediaPlayer。
1.2 C++实现方式:
- 先在项目对应的Build.cs文件中,添加MediaAsseets模块,这样才可以使用MediaPlayer.h和MediaSource.h等相关的API。不然在.cpp文件中添加MediaPlayer.h和MediaSource.h文件后编译不通过。
- 我设计的是在GameMode中,游戏开始的时候播放。先在GameMode的.h头文件中创建两个变量(MediaPlayer, MediaSource)。
UPROPERTY(BlueprintReadOnly, Category = "MediaPlayer")
class UMediaPlayer* m_MediaPlayer;
UPROPERTY(BlueprintReadOnly, Category = "MediaPlayer")
class UMediaSource* m_MediaSource;
- 在构造方法中,获取上面在编辑器创建的MediaPlayer和MediaSource。
//获取MediaPlayer,MediaSource.
m_MediaPlayer = LoadObject<UMediaPlayer>(NULL, TEXT("/Game/Media/MyMediaPlayer.MyMediaPlayer"));
m_MediaSource = LoadObject<UMediaSource>(NULL, TEXT("/Game/Media/MyStreamMediaSource.MyStreamMediaSource"));
- 在BeginPlay中播放。
void AMRTestGameMode::BeginPlay()
{
Super::BeginPlay();
m_MediaPlayer->OpenSource(m_MediaSource);
}