2026-04-28 16:48:04 +08:00
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using Unity.WebRTC;
|
|
|
|
|
|
|
|
|
|
namespace Unity.RenderStreaming
|
|
|
|
|
{
|
|
|
|
|
public interface IRenderStreamingDelegate
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
event Action onStart;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
event Action<string> onCreatedConnection;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
event Action<string> onDeletedConnection;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
event Action<string, string> onGotOffer;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
event Action<string, string> onGotAnswer;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
event Action<string> onConnect;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
event Action<string> onDisconnect;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
event Action<string, RTCRtpTransceiver> onAddTransceiver;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
event Action<string, RTCDataChannel> onAddChannel;
|
2026-04-29 15:13:24 +08:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 参与者加入事件 (connectionId, participantId)
|
|
|
|
|
/// </summary>
|
|
|
|
|
event Action<string, string> onParticipantJoined;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 参与者离开事件 (connectionId, participantId)
|
|
|
|
|
/// </summary>
|
|
|
|
|
event Action<string, string> onParticipantLeft;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 呼叫请求事件 (connectionId, data)
|
|
|
|
|
/// </summary>
|
|
|
|
|
event Action<string, string> onCallRequest;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 自定义消息事件 (connectionId, participantId, message)
|
|
|
|
|
/// </summary>
|
|
|
|
|
event Action<string, string, string> onMessage;
|
2026-04-28 16:48:04 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public interface IRenderStreamingHandler
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="connectionId"></param>
|
|
|
|
|
void CreateConnection(string connectionId);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="connectionId"></param>
|
|
|
|
|
void DeleteConnection(string connectionId);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="connectionId"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
bool ExistConnection(string connectionId);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="connectionId"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
bool IsConnected(string connectionId);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="connection"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
bool IsStable(string connection);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="connectionId"></param>
|
|
|
|
|
/// <param name="label"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
RTCDataChannel CreateChannel(string connectionId, string label = null);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="connectionId"></param>
|
|
|
|
|
void SendOffer(string connectionId);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="connectionId"></param>
|
|
|
|
|
void SendAnswer(string connectionId);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="connectionId"></param>
|
|
|
|
|
/// <param name="track"></param>
|
|
|
|
|
/// <param name="init"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
RTCRtpTransceiver AddTransceiver(string connectionId, MediaStreamTrack track, RTCRtpTransceiverInit init = null);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="connectionId"></param>
|
|
|
|
|
/// <param name="kind"></param>
|
|
|
|
|
/// <param name="init"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
RTCRtpTransceiver AddTransceiver(string connectionId, TrackKind kind, RTCRtpTransceiverInit init = null);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="connectionId"></param>
|
|
|
|
|
/// <param name="track"></param>
|
|
|
|
|
void RemoveSenderTrack(string connectionId, MediaStreamTrack track);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="connectionId"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
IEnumerable<RTCRtpTransceiver> GetTransceivers(string connectionId);
|
|
|
|
|
}
|
|
|
|
|
}
|