UE4+视频播放

16 篇文章 0 订阅
7 篇文章 0 订阅

虚幻引擎:4.22

VS:2017

1.播放视频流

  • 在资源目录Content下创建媒体文件夹Media。

  • 右键创建StreamMediaSource,并填写Stream URL。

推介一个官方视频地址:https://docs.unrealengine.com/Attachments/Engine/MediaFramework/HowTo/StreamMediaSource/Infiltrator%20Demo.mp4 

  • 然后右键,创建MediaPlayer,并且启用视频输出媒体纹理资源(Video output Media Texture asset)。

StreamMedia_05.png

  • 然后我的想法是创建一个材质,设置贴图为刚刚创建的 视频输出媒体纹理。

  •  在对应要播放视频的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);
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值