Files
webRtc/Assets/Script/RenderStreamingSettings.cs
2026-04-30 15:35:47 +08:00

100 lines
2.9 KiB
C#

using UnityEngine;
namespace Unity.RenderStreaming
{
internal enum SignalingType
{
WebSocket,
Http,
}
internal class RenderStreamingSettings
{
public const int DefaultStreamWidth = 1280;
public const int DefaultStreamHeight = 720;
private bool useDefaultSettings = true;
private SignalingType signalingType = SignalingType.WebSocket;
private string signalingAddress = "localhost";
private int signalingInterval = 5000;
private bool signalingSecured = false;
private Vector2Int streamSize = new Vector2Int(DefaultStreamWidth, DefaultStreamHeight);
private VideoCodecInfo receiverVideoCodec = null;
private VideoCodecInfo senderVideoCodec = null;
public bool UseDefaultSettings
{
get { return useDefaultSettings; }
set { useDefaultSettings = value; }
}
public SignalingType SignalingType
{
get { return signalingType; }
set { signalingType = value; }
}
public string SignalingAddress
{
get { return signalingAddress; }
set { signalingAddress = value; }
}
public bool SignalingSecured
{
get { return signalingSecured; }
set { signalingSecured = value; }
}
public int SignalingInterval
{
get { return signalingInterval; }
set { signalingInterval = value; }
}
public SignalingSettings SignalingSettings
{
get
{
switch (signalingType)
{
case SignalingType.WebSocket:
{
var schema = signalingSecured ? "wss" : "ws";
return new WebSocketSignalingSettings
(
url: $"{schema}://{signalingAddress}"
);
}
case SignalingType.Http:
{
var schema = signalingSecured ? "https" : "http";
return new HttpSignalingSettings
(
url: $"{schema}://{signalingAddress}",
interval: signalingInterval
);
}
}
return null;
}
}
public Vector2Int StreamSize
{
get { return streamSize; }
set { streamSize = value; }
}
public VideoCodecInfo ReceiverVideoCodec
{
get { return receiverVideoCodec; }
set { receiverVideoCodec = value; }
}
public VideoCodecInfo SenderVideoCodec
{
get { return senderVideoCodec; }
set { senderVideoCodec = value; }
}
}
}