多媒体管理器解析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"文件夹