多媒体管理器解析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"文件夹
 
原文地址:https://www.cnblogs.com/aoyeyuyan/p/5552856.html