日期:2014-05-17  浏览次数:20862 次

即时通讯语音视频开发包(C#版本源代码部分)
using System;
using System.Text;
using System.Runtime.InteropServices;

namespace Platform
{
    /********************************************************************************
    * ** AnyChat Platform Core SDK
    * *********************************************************************************/
    public class AnyChatCoreSDK
    {
        #region AnyChat Platform Core SDK 常量定义
        // 内核参数定义,API:BRAC_SetSDKOption、BRAC_GetSDKOption 传入参数
        public const int BRAC_SO_AUDIO_VADCTRL			=	1;	// 音频静音检测控制(参数为:int型:1打开,0关闭)
        public const int BRAC_SO_AUDIO_NSCTRL			=	2;	// 音频噪音抑制控制(参数为:int型:1打开,0关闭)
        public const int BRAC_SO_AUDIO_ECHOCTRL			=	3;	// 音频回音消除控制(参数为:int型:1打开,0关闭)
        public const int BRAC_SO_AUDIO_AGCCTRL			=	4;	// 音频自动增益控制(参数为:int型:1打开,0关闭)
        public const int BRAC_SO_AUDIO_CPATUREMODE		=	5;	// 音频采集模式设置(参数为:int型:0 发言模式,1 放歌模式,2 卡拉OK模式,3 线路输入模式)
        public const int BRAC_SO_AUDIO_MICBOOST			=	6;	// 音频采集Mic增强控制(参数为:int型:0 取消,1 选中,2 设备不存在[查询时返回值])
        public const int BRAC_SO_RECORD_VIDEOBR			=	10;	// 录像视频码率设置(参数为:int型,单位:bps)
        public const int BRAC_SO_RECORD_AUDIOBR			=	11;	// 录像音频码率设置(参数为:int型,单位:bps)
        public const int BRAC_SO_RECORD_TMPDIR			=	12;	// 录像文件临时目录设置(参数为字符串PCHAR类型,必须是完整的绝对路径)
        public const int BRAC_SO_SNAPSHOT_TMPDIR		=	13;	// 快照文件临时目录设置(参数为字符串PCHAR类型,必须是完整的绝对路径)
        public const int BRAC_SO_CORESDK_TMPDIR			=	14;	// 设置AnyChat Core SDK临时目录(参数为字符串PCHAR类型,必须是完整的绝对路径)
        public const int BRAC_SO_CORESDK_PATH			=	20;	// 设置AnyChat Core SDK相关组件路径(参数为字符串PCHAR类型,必须是完整的绝对路径)
        public const int BRAC_SO_LOCALVIDEO_BITRATECTRL	=	30;	// 本地视频编码码率设置(参数为int型,单位bps,同服务器配置:VideoBitrate)
        public const int BRAC_SO_LOCALVIDEO_QUALITYCTRL	=	31;	// 本地视频编码质量因子控制(参数为int型,同服务器配置:VideoQuality)
        public const int BRAC_SO_LOCALVIDEO_GOPCTRL		=	32;	// 本地视频编码关键帧间隔控制(参数为int型,同服务器配置:VideoGOPSize)
        public const int BRAC_SO_LOCALVIDEO_FPSCTRL		=	33;	// 本地视频编码帧率控制(参数为int型,同服务器配置:VideoFps)
        public const int BRAC_SO_LOCALVIDEO_PRESETCTRL	=	34;	// 本地视频编码预设参数控制(参数为int型,1-5)
        public const int BRAC_SO_LOCALVIDEO_APPLYPARAM	=	35;	// 应用本地视频编码参数,使得前述修改即时生效(参数为int型:1 使用新参数,0 使用默认参数)
        public const int BRAC_SO_LOCALVIDEO_VIDEOSIZEPOLITIC=36;// 本地视频采集分辩率控制策略(参数为int型,0 自动向下逐级匹配[默认];1 使用采集设备默认分辩率),当配置的分辩率不被采集设备支持时有效
        public const int BRAC_SO_LOCALVIDEO_DEINTERLACE	=	37;	// 本地视频反交织参数控制(参数为int型: 0 不进行反交织处理[默认];1 反交织处理),当输入视频源是隔行扫描源(如电视信号)时通过反交织处理可以提高画面质量
        public const int BRAC_SO_NETWORK_P2PPOLITIC		=	40;	// 本地网络P2P策略控制(参数为:int型:0 禁止本地P2P,1 服务器控制P2P[默认],2 上层应用控制P2P连接,3 按需建立P2P连接)
        public const int BRAC_SO_NETWORK_P2PCONNECT		=	41;	// 尝试与指定用户建立P2P连接(参数为int型,表示目标用户ID),连接建立成功后,会通过消息反馈给上层应用,P2P控制策略=2时有效
        public const int BRAC_SO_NETWORK_P2PBREAK       =   42;	// 断开与指定用户的P2P连接(参数为int型,表示目标用户ID)[暂不支持,保留]

        // 用户状态标志定义,API:BRAC_QueryUserState 传入参数
        public const int BRAC_USERSTATE_CAMERA		    =	1;	// 用户摄像头状态(参数为DWORD型)
        public const int BRAC_USERSTATE_HOLDMIC		    =	2;	// 用户持有Mic状态(参数为DWORD型)
        public const int BRAC_USERSTATE_SPEAKVOLUME	    =	3;	// 用户当前说话音量(参数为DOUBLE类型(0.0 ~ 100.0))
        public const int BRAC_USERSTATE_RECORDING	    =	4;	// 用户录像(音)状态(参数为DWORD型)
        public const int BRAC_USERSTATE_LEVEL		    =	5;	// 用户级别(参数为DWORD型)
        public const int BRAC_USERSTATE_NICKNAME	    =	6;	// 用户昵称(参数为字符串PCHAR类型)
        public const int BRAC_USERSTATE_LOCALIP		    =	7;	// 用户本地IP地址(内网,参数为字符串PCHAR类型)
        public const int BRAC_USERSTATE_INTERNETIP	    =	8;	// 用户互联网IP地址(参数为字符串PCHAR类型)
        public const int BRAC_USERSTATE_VIDEOBITRATE    =	9;	// 用户当前的视频码率(参数为DWORD类型,Bps)
        public const int BRAC_USERSTATE_AUDIOBITRATE    =	10;	// 用户当前的音频码率(参数为DWORD类型,Bps)
        public const int BRAC_USERSTATE_P2PCONNECT	    =	11;	// 查询本地用户与指定用户的当前P2P连接状态(参数为DWORD类型,返回值:0 P2P不通, 1 P2P连接成功[TCP],2 P2P连接成功[UDP],3 P2P连接成功[TCP、UDP])
        public