76 lines
2.1 KiB
C#
76 lines
2.1 KiB
C#
using ShengShengBuXi.ConsoleApp.Models;
|
|
|
|
namespace ShengShengBuXi.ConsoleApp.Services;
|
|
|
|
/// <summary>
|
|
/// SignalR客户端服务接口
|
|
/// </summary>
|
|
public interface ISignalRService
|
|
{
|
|
/// <summary>
|
|
/// 连接状态改变事件
|
|
/// </summary>
|
|
event EventHandler<bool> ConnectionStateChanged;
|
|
|
|
/// <summary>
|
|
/// 配置更新事件
|
|
/// </summary>
|
|
event EventHandler<PhoneBoothConfig> ConfigUpdated;
|
|
|
|
/// <summary>
|
|
/// 音频文件更新事件
|
|
/// </summary>
|
|
event EventHandler<(string FileName, byte[] FileData)> AudioFileUpdated;
|
|
|
|
/// <summary>
|
|
/// 启动连接
|
|
/// </summary>
|
|
/// <param name="hubUrl">SignalR Hub URL</param>
|
|
/// <returns>异步任务</returns>
|
|
Task StartConnectionAsync(string hubUrl);
|
|
|
|
/// <summary>
|
|
/// 停止连接
|
|
/// </summary>
|
|
/// <returns>异步任务</returns>
|
|
Task StopConnectionAsync();
|
|
|
|
/// <summary>
|
|
/// 获取当前是否已连接
|
|
/// </summary>
|
|
bool IsConnected { get; }
|
|
|
|
/// <summary>
|
|
/// 获取最新配置
|
|
/// </summary>
|
|
/// <returns>异步任务,返回配置信息</returns>
|
|
Task<PhoneBoothConfig> GetConfigAsync();
|
|
|
|
/// <summary>
|
|
/// 上传录音文件
|
|
/// </summary>
|
|
/// <param name="filePath">文件路径</param>
|
|
/// <returns>异步任务,返回是否上传成功</returns>
|
|
Task<bool> UploadRecordingAsync(string filePath);
|
|
|
|
/// <summary>
|
|
/// 开始音频流
|
|
/// </summary>
|
|
/// <param name="sampleRate">采样率</param>
|
|
/// <param name="channels">通道数</param>
|
|
/// <returns>异步任务</returns>
|
|
Task StartAudioStreamAsync(int sampleRate, int channels);
|
|
|
|
/// <summary>
|
|
/// 结束音频流
|
|
/// </summary>
|
|
/// <returns>异步任务</returns>
|
|
Task EndAudioStreamAsync();
|
|
|
|
/// <summary>
|
|
/// 实时上传音频数据
|
|
/// </summary>
|
|
/// <param name="audioData">音频数据字节数组</param>
|
|
/// <returns>异步任务,返回是否上传成功</returns>
|
|
Task<bool> UploadAudioDataRealtimeAsync(byte[] audioData);
|
|
} |