Language:
Page Info
Engine Version:
Share
此中文页面内容对应的英文页面有后续更新,如需浏览最新文档可切换至英文页面浏览。

媒体框架总览

媒体框架(Media Framework) 利用数个资源在虚幻引擎 4 中播放视频。在 媒体播放器 资源中可对视频进行拖动、暂停或倒回,并通过 C++蓝图 - 可视化脚本 进行控制。无论是需要在关卡中的一块表面上播放视频,还是创建一个 UMG UI Designer 界面让玩家控制视频播放,首先需要指定 媒体源,以便引擎找到媒体资源。

媒体源类型

可使用数个不同媒体源资源定义媒体来源。无论文件是项目的一部分,还是从网页上进行流送,或者是平台特定的媒体,在播放视频前都需要定义源。点击 Add New 按钮,然后在 Media 部分指定所需的源类型,即可在 Content Browser 中添加媒体源。

MediaSource.png

媒体框架技术参考 页面可查看支持文件类型和 URL 的内容。

文件媒体源

MediaSource_File.png

文件媒体源(File Media Source) 资源用于保存在设备或共享本地网络文件中的媒体文件。可在 File Path 部分指定媒体文件存放路径。媒体文件可保存在任意路径下,但建议将其保存在项目的 Content/Movies 文件夹中,然后指向此文件。此操作可确保媒体文件与项目正常打包。指向此路径外的文件时将出现黄色感叹号警告。

这种类型的源资源可用于将整个媒体文件载入内存,然后启用 Precache File 选项进行播放。基于文件大小,缓存时间将存在差异,因此选择此项时需将其纳入考虑。

每个源资源支持一个 Default Player 域中的命名,以便为该资源识别适当的原生媒体播放器。如将此域中留空,将自动检测媒体播放器。

请查阅 在关卡中播放视频 指南,了解如何使用文件媒体源资源。

流送媒体源

MediaSource_Stream.png

流送媒体源(Stream Media Source) 资源使用 URL 作为媒体的源,并从互联网进行获取。当前版本不支持链接到 YouTube 或 DailyMotion 式的 URL,需要直接链接到托管文件。注意:以上显示的 URL 只是一个范例,无法使用。

请查阅 在关卡中流送视频 指南,了解如何使用流送媒体源资源。

平台媒体源

MediaSource_Platform.png

平台媒体源(Platform Media Source) 资源支持以每个平台为基础覆盖媒体源。如目标平台未指定源,可指定使用的媒体源并定义每个平台的媒体源。

例如您希望只在安卓设备或只在 PS4 上播放特定视频。在 Media Sources 部分可指定哪些视频在哪些平台上播放。如 Media Source 为空,则将使用 默认源

平台媒体源资源仍在实验阶段,在 4.13 版本中无法正常使用。计划在 4.14 版本中推出。

媒体播放列表

媒体源资源可进行单个播放,使用 媒体播放列表(Media Playlist) 资源可按顺序播放多个媒体源。创建数个媒体源资源后可将它们添加到媒体播放列表,在此将自动循环,按定义的顺序播放每个资源。通过 Content BrowserMedia 部分下的 Add New 按钮即可创建媒体播放列表。

MediaPlaylistButton.png

可在媒体播放列表窗口(下图)的 Playlist 部分下定义需要添加的源资源并指定播放顺序。创建的所有媒体源资源将显示在下方的 Media Library 窗口中,可双击资源将其添加到播放列表末尾。

CustomizedPlaylist.png

除非经蓝图脚本指定,媒体播放列表可混合每种媒体源类型并按顺序播放。

请查阅 使用媒体播放列表 指南,了解如何使用媒体播放列表资源。

媒体声波

创建 媒体声波(Media Sound Wave) 资源,以便播放与视频关联的音频。

MediaPlayerSound.png

通过 Media 下的 Add New 按钮选择 Media Sound Wave 资源。

MediaPlayerSoundWindow.png

媒体声波资源拥有 DebugConcurrencyAttenuation 设置,可对它们进行调整,定义资源的处理方式。连接到媒体播放器资源时,附加到视频源的音频将随视频自动播放。通常可沿用新建媒体声波资源的默认设置。如需对声音的感知进行控制,可对 Concurrency 和 Attenuation 设置进行调整。

可在 音频系统 部分查阅虚幻引擎 4 中使用音频的更多细节内容。

媒体纹理

媒体纹理(Media Texture) 资源用于从媒体播放器资源渲染视频轨。

MediaTexture.png

媒体声波提供音频,而媒体纹理提供媒体源资源的视觉效果。 媒体纹理资源可包含在 材质 中,然后再应用到关卡中的模型(如公告牌、电视或显示器)进行显示,使视频在游戏世界中的物体上播放。

MediaTextureWindow.png

上图中,带媒体纹理资源的材质已被创建并应用到关卡中的静态网格体。 在 纹理编辑器 中,媒体纹理显示在关卡中其所在材质的相同播放位置。 除标准 纹理属性 外,媒体纹理接受 ClampedMirrorWorld 值的 XY 轴 Addressing 值。

请在 媒体框架指南 部分查阅媒体纹理播放视频的设置和使用指南。

媒体播放器资源

拥有媒体源或媒体播放列表后,即可使用 媒体播放器(Media Player) 资源播放资源。媒体播放器资源需要使用媒体纹理生成视频播放、使用媒体声波生成与视频关联的音频。通过 Content BrowserMedia 部分下的 Add New 按钮即可创建媒体播放器资源。

MediaPlayer.png

创建媒体播放器资源时将出现 Create Media Player 窗口(下图),询问是否需要创建并链接资源到媒体播放器。这将自动创建并指定与媒体播放器资源关联的媒体纹理和媒体声波文件。

CreateMediaPlayer.png

双击 媒体播放器资源将打开 媒体播放器窗口

MediaPlayerWindow.png

在媒体播放器窗口中可播放并预览创建的所有媒体源资源(创建的源媒体显示在 Media Library 面板中)。可使用顶部的工具栏播放、暂停、倒回、或跳至视频的开头和结尾。当前正在播放视频的媒体播放列表将显示在 Playlist 窗口的右上角。

Details 面板的右下角可定义 Playback 的选项或指定与媒体播放器相关的 声波视频纹理(或 图片纹理)。此外 Info 面板将显示源的信息,如流送类型、编解码、取样率、维度等。

当前尚无媒体播放器插件实现静态图像纹理输出,此功能尚在实验阶段。

媒体资源和脚本编写

媒体播放器资源设置完成并链接资源后,即可在游戏会话中进行播放。如需在游戏中播放媒体,首先需要通过蓝图或 C++ 打开媒体源资源。先在包含对媒体播放器资源引用的任意蓝图中创建一个 变量

MediaPlayerDetailsSet.png

对定义的媒体播放器进行引用后,即可基于媒体源类型调用一个 Open 函数。

MediaPlayerOpen.png

选项

描述

Open Playlist

打开指定播放列表中的第一个媒体源。

Open Playlist Index

打开指定播放列表中指定的媒体源。

Open Source

打开指定的媒体源(文件媒体、流送媒体或平台媒体)。

Open URL

打开指定的媒体 URL。

Reopen

重新打开当前打开的媒体或播放列表。

新建媒体播放器资源的 Play on Open 选项为默认开启,意味着打开媒体源时它将自动开始播放视频。 Play on Open 复选框使用方便,但不强制要求。如不需要媒体在成功打开后自动播放,可挂钩到 OnMediaOpened 蓝图事件。 如取消勾选 Play on Open 选项(下图所示),则需要在媒体源打开后调用 Play 函数。

UncheckPlayOnOpen.png

下图中我们在 Event BeginPlay 节点上打开了媒体播放列表,并在 Right Mouse ButtonPressed 状态下时播放 Media Player

PlayWhenPressed.png

如未在媒体源打开时自动播放而是使用 Play 函数进行播放,建议不要在 Open Source 或 Open Playlist 调用后直接连接 Play 调用。 这是因为媒体源需要一定时间打开,未打开前 Play 命令将返回 false,视频将无法播放。

可从媒体播放器引用调用其他函数(如 Binding Events )到播放的多个状态(如视频暂停或视频终止)。 还可在媒体播放器引用后调用多个不同函数,如检查视频能否被暂停、视频是否正在播放、视频是否设为循环、访问播放速度信息等。

MediaPlayerNodes.png

如需查看这些选项,从媒体播放器引用连出引线,然后在蓝图快捷菜单的 Media Player 部分下查看。