UE4 PixelStreaming插件个人笔记

本文主要探讨UE4的PixelStreaming模块,详细介绍了配置文件的设置,如鼠标同步选项,以及IPixelStreamingModule和PixelStreamingModule类的功能。PixelStreamingModule包含了FStreamer、FStreamerConnection和FSignallingServerConnection等关键组件,用于处理流送、连接管理和信令交互。同时,FInputDevice类负责处理Web端用户的输入设备访问。此外,WebRtcLogging用于日志记录。
摘要由CSDN通过智能技术生成

配置文件
  • 可以在此设置像素流鼠标是否被浏览器同步、默认鼠标样式、文本框鼠标样式、隐藏鼠标样式。
  • 按照目前项目情况,我们应当是隐藏鼠标的。
    在这里插入图片描述
    在这里插入图片描述

IPixelStreamingModule类

继承IInputDeviceModule,像素流模块的基类,定义了一些虚函数。
在这里插入图片描述

/**
	 * Returns a reference to the input device. The lifetime of this reference
	 * is that of the underlying shared pointer.
	 * 返回对输入设备的引用。
	 * @return A reference to the input device.
	 */
	virtual class FInputDevice& GetInputDevice() = 0;
	
	/**
	 * Add any player config JSON to the given object which relates to
	 * configuring the input system for the pixel streaming on the browser.
	 * 添加用户配置信息
	 * @param JsonObject - The JSON object to add fields to.
	 */
	virtual void AddPlayerConfig(TSharedRef<class FJsonObject>& JsonObject) = 0;

	/**
	 * Send a data response back to the browser where we are sending video. This
	 * could be used as a response to a UI interaction, for example.
	 * 发送一个数据响应回浏览器我们在哪里发送视频。 例如,这可以用作对UI交互的响应。  
	 * @param Descriptor - A generic descriptor string.
	 */
	virtual void SendResponse(const FString& Descriptor) = 0;

	/**
	 * Send a data command back to the browser where we are sending video. This
	 * is different to a response as a command is low-level and coming from UE4
	 * rather than the pixel streamed application.
	 * 发送一个数据响应回浏览器我们在哪里发送视频。这与上面的响应不同,因为命令是低级的,来自ue4而不是像素流应用程序。  
	 * @param Descriptor - A generic descriptor string.
	 */
	virtual void SendCommand(const FString& Descriptor) = 0;

	/**
	 * Freeze Pixel Streaming.
	 * 冻结像素流帧,例如如果浏览器端过长时间无响应则可以冻结像素流程序,并发送最后一帧给浏览器以减少性能负载。
	 * @param Texture - The freeze frame to display. If null then the back buffer is captured.
	 */
	virtual void FreezeFrame(UTexture2D* Texture) = 0;

	/**
	 * Unfreeze Pixel Streaming.
	 * 同上,解冻。
	 */
	virtual void UnfreezeFrame() = 0;

PixelStreamingModule类

1. 像素流模块,继承与上述基类,我们先来看这个类有哪些东西。

  • 先对上述的虚函数都进行分别实现
/** IModuleInterface implementation */
	void StartupModule() override;
	void ShutdownModule() override;

	TSharedPtr<class IInputDevice> CreateInputDevice(const TSharedRef<FGenericApplicationMessageHandler>& InMessageHandler) override;

	TSharedPtr<IMediaPlayer, ESPMode::ThreadSafe> CreatePlayer(IMediaEventSink& EventSink) override;

	/** IPixelStreamingModule implementation */
	FInputDevice& GetInputDevice() override;
	void AddPlayerConfig(TSharedRef<FJsonObject>& JsonObject) override;
	void SendResponse(const FString& Descriptor) override;
	void SendCommand(const FString& Descriptor) override;
    void FreezeFrame(UTexture2D* Texture) override;
	void UnfreezeFrame() override;
  • 持有FStreamer唯一指针,持有平台对象InpitDevice共享指针,持有所有UPixelStreamerInputComponent*的引用
private
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值