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

音视频即时通讯的部分C#代码

代码的下载地址:http://down.51cto.com/data/690098

?

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;  // 用户本