多媒体管理器解析IMultimediaManager
一。基本API
bool Available { get; } bool Working { get; } AdvancedOptions Advanced { get; }
二。作为通信引擎
string CurrentUserID { get; } string SystemToken { get; set; }
void Initialize(string userID, string password, string serverIP, int serverPort); 、 void Initialize(string userID, string password, string serverIP, int serverPort, Dictionary<MultimediaDeviceType, AgileIPEndPoint> deviceChannelDic); bool AutoReconnect { get; set; } bool IsP2PChannelExist(string destUserID); bool IsUserOnline(string userID); void CloseConnection(bool reconnectNow); ChannelMode ChannelMode { get; set; } void DisconnectGuest(bool notifyGuest); void DisconnectGuest(string guestID, MultimediaDeviceType deviceType, bool notifyGuest); List<string> GetGuests(MultimediaDeviceType deviceType); AgileIPEndPoint ServerIPE { get; } IShortMessageController ShortMessageController { get; } event CbGeneric<IPEndPoint> ConnectionInterrupted; event CbGeneric<IPEndPoint> ConnectionRebuildSucceed; event CbGeneric<string, int, int, int> JitterBufferDepthChanged;
三。作为设备管理者(OWner)
1.通用设备管理
event CbGeneric<MultimediaDeviceType, int, string> DeviceErrorOccurred; bool DeviceIsWorking(MultimediaDeviceType deviceType); event CbGeneric<string, MultimediaDeviceType> DeviceConnected; event CbGeneric<string, MultimediaDeviceType> DeviceDisconnected;
2.摄像头管理
bool AutoAdjustCameraEncodeQuality { get; set; } int CameraDeviceIndex { get; set; } int CameraEncodeQuality { get; set; } Size CameraVideoSize { get; set; } int MaxCameraFrameRate { get; set; } bool OutputVideo { get; set; } event CbGeneric<int, int> CameraIndexChanged; void ChangeCameraDeviceAsyn(int deviceIndex);
3。桌面管理
int DesktopEncodeQuality { get; set; } Rectangle? DesktopRegion { get; set; } int MaxDesktopFrameRate { get; set; } bool OutputDesktop { get; set; } bool AllowControlDesktop { get; set; }
4。麦克风管理
int MicrophoneDeviceIndex { get; set; } int VolumeAmplifyFactor { get; set; } event CbGeneric<byte[]> AudioCaptured; bool OutputAudio { get; set; }
5。白板管理
string CoursewaresRootPath { get; set; }
四。扩展接口
IVideoCapturerFactory VideoCapturerFactory { get; set; } IAudioCapturerFactory AudioCapturerFactory { get; set; } IImageConverterFactory ImageConverterFactory { get; set; } IChatGroupEntrance ChatGroupEntrance { get; }
五。日志管理
bool SecurityLogEnabled { get; set; } IAgileLogger OmcsLogger { set; } string OmcsLogPath { get; set; }
六。作为Guest
bool Mute { get; set; } int SpeakerIndex { get; set; } event CbGeneric<IMultimediaConnector, ConnectorDisconnectedType> ConnectorDisconnected; event CbGeneric<byte[]> AudioPlayed;
****************************************************************************
****************************************************************************
1.可动态设置:
bool OutputAudio bool OutputDesktop bool OutputVideo int VolumeAmplifyFactor bool AllowControlDesktop bool AutoAdjustCameraEncodeQuality int CameraDeviceIndex int MicrophoneDeviceIndex int MicrophoneDeviceIndex Size CameraVideoSize Rectangle? DesktopRegion int DesktopEncodeQuality int CameraEncodeQuality int SpeakerIndex
2.初始化之前设置:
IAudioCapturerFactory AudioCapturerFactory IImageConverterFactory ImageConverterFactory IVideoCapturerFactory VideoCapturerFactory int MaxCameraFrameRate int MaxDesktopFrameRate IAgileLogger OmcsLogger AdvancedOptions Advanced bool AutoReconnect
3.初始化之后设置:
IChatGroupEntrance ChatGroupEntrance bool OutputAudio bool OutputDesktop bool OutputVideo bool AllowControlDesktop
4.默认值
DesktopEncodeQuality=6 MaxCameraFrameRate = 10 MaxDesktopFrameRate = 3 CameraDeviceIndex = 0 CameraEncodeQuality = 3 CameraVideoSize = 320*240 AutoAdjustCameraEncodeQuality = true OutputAudio = true OutputDesktop = true OutputVideo = true SecurityLogEnabled = false VolumeAmplifyFactor = 1 AllowControlDesktop = true ChannelMode = P2PChannelFirst OmcsLogPath = 运行目录下OmcsLog.txt CoursewaresRootPath = 运行目录下的"Coursewares"文件夹
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)