UE4像素流如何做到多人同时交互同一服务端不冲突?

UE4像素流如何做到多人同时交互同一服务端不冲突?

像素流冻结帧功能

  • 如果要用静态映像替换媒体流,请使用“冻结帧”节点。

    冻结帧节点

    该节点接受对纹理资产的可选引用。如果提供一个,则连接的客户端将在其播放器窗口中看到您指定的纹理。如果您不提供任何一个,则连接的客户端将在您调用此节点时看到虚幻引擎应用程序生成的最后渲染的帧。

  • 如果要恢复每个帧的流传输,请使用“取消冻结帧”节点。

    取消冻结帧节点

在单帧或图像纹理上冻结不会影响来自浏览器的输入。默认情况下,播放器页面在冻结时仍会将键盘和鼠标事件转发到虚幻引擎。

响应像素流事件

Pixel Streaming系统为您的应用程序的游戏代码提供了一种方法,以响应在Pixel Streaming会话的整个生命周期中发生的选定事件:

事件

描述

在所有关闭的连接上

当连接到该虚幻引擎应用程序实例的最后一个客户端断开连接时发出。发出此事件后,将没有客户端查看您的应用程序的媒体流。您可以以此为契机,利用游戏逻辑将应用程序重置为初始状态,以准备加入新客户端。

要响应这些事件,请使用Pixel Streamer Delegates类将其绑定。通常,您将在游戏开始时就设置此绑定;例如,您可以响应事件BeginPlay事件来执行此操作。设置绑定后,每次触发绑定事件时都会触发自定义事件。

在媒体框架中播放流

当您拥有使用Pixel Streaming插件编码和广播媒体流的虚幻引擎实例时,可以让另一个Unreal Engine应用程序播放该媒体流。

此流媒体播放基于UE4 Media Framework构建。设置它就像为Media Framework设置任何其他类型的流媒体源一样-有关分步说明,请参见播放视频流 。

唯一的区别是您为流媒体源设置的Stream Url值必须遵循以下格式:

webrtc://<signaling-server-address>

<signaling-server-address>运行信令和Web服务器的计算机的IP地址和端口在哪里。

例如:

流媒体源配置

当前仅在Windows平台上提供Pixel Streaming媒体的流式播放。

您需要启用像素流插件都被编码并发送媒体流的项目和正在播放回来的项目。

  1. 在“蓝图图编辑器”中,从任何节点的执行引脚上向右拖动,然后选择“像素流媒体代理”>“获取像素流媒体代理”

    获取Pixel Streamer代表

  2. 从其“返回值”中向右拖动,并展开“像素流媒体代理”类别。您将看到用于绑定和取消绑定事件的许多新选项。

    Pixel Streamer Delegates节点

  3. 为您要响应的事件选择Bind ...选项,例如将事件绑定到On All Connections Closed。您将获得一个带有事件输入的新节点。从Get Pixel Streamer Delegates将其输入执行引脚连接到输出执行引脚。

    绑定代表

  4. 如果已经有要触发的自定义事件,则将其标题栏中的“输出代表”引脚连接到刚创建的“绑定”节点上的“事件”输入。否则,从“事件”输入中向左拖动,然后选择“添加事件”>“添加自定义事件”以创建新的自定义事件。

    自订活动

  5. 将您的自定义事件连接到要响应像素流事件而运行的蓝图逻辑。

例如,此实现调用在同一蓝图中定义的自定义函数,以将应用程序重置为其初始状态:

响应自定义事件