# AgoraCLI **Repository Path**: havin_lee/AgoraCLI ## Basic Information - **Project Name**: AgoraCLI - **Description**: 声网SDK的C#实现 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-04-02 - **Last Updated**: 2021-06-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AgoraCLI项目 因为要用到Visual C++,所以在安装.net运行时后,还需要安装 **Visual C++ Redistributable for Visual Studio** 才可以运行。 对了,他们家新的WebRtc版本好像要出来了,你们可以找他们要这个版本看看, 可能会更好的哦. [Agora声网](http://cn.agora.io)的Windows端SDK只提供了C++的实现, 用在.NET平台上对开发者要求很高. 所以用CLI将其做了一个桥接, 使其可以使用C#进行开发. ~~原始数据API部分因为要在managed与unmanaged的内存之间拷贝数据,所以不推荐运算量大的应用使用,如果要使用,推荐直接用声网的Native DLL来实现~~ 发现声网现在也改成这样子了, 原来Native DLL的实现方式只能有一个DLL被加载, 现在也改成事件形式了. 通信与直播功能下的接口都已实现 信令接口声网自身还处有一些内测接口,这些接口就没有实现。等他们有发新的版本了,再跟进实现。 ~~ 同时,信令接口现在实现只处于能编译通过,是否可以正常使用还没有测试,请使用的朋友自己考虑。~~ 如果使用过程中有发现BUG,请提交issue。本人会尽快处理,如果各位能自行处理后把结果pull上来就更好了。 ## 2020-03-18 10:10 本次修改可解决移动端无法得到PC端推流的问题. 修正在没有开启加密时, 就注册数据包观察器的BUG, 现在只有在用户调用setEncryptionSecret后, 数据包观察器才会被注册, 相应的事件才会被触发, 但监听不会出错, 只是不会被调用而已. 同时在退出频道时, 自动退出数据包观察器. ## 2020-03-14 13:46 合并2.9分支进入主分支, 本次更新是兼容破坏性的, 请各位评估后更新. ## 2020-20-16 13:20 添加RTM实时消息服务 ## 2020-02-10 19:01 居然一年没有更新了, 现在更新到2.9.1版本, 本版本是破坏性更新, 很多API与类都进行了不兼容的改变, 具体请参考Agora官方文档. 各位要升级的话要慎重行事. **信令服务移除** **移除部分文档上已经没有的接口** ## 2019-02-06 19:54 升级Master分支至2.3,要以前版本的请到各自版本的分支去拿 ## 2019-02-06 19:28 onStreamUrlUnpublished 改为 onStreamUnpublished 添加下列函数 ```c# int setLocalPublishFallbackOption(StreamFallbackOptions option); int setRemoteSubscribeFallbackOption(StreamFallbackOptions option); int setRemoteDefaultVideoStreamType(RemoteVideoStreamType type); String^ getErrorDescription(int code); ``` 添加下列回调 ```c# onTokenPrivilegeWillExpire onConnectionStateChanged onFirstLocalAudioFrame onFirstRemoteAudioFrame onUserEnableLocalVideo onVideoSizeChanged onRemoteVideoStateChanged onLocalPublishFallbackToAudioOnly onRemoteSubscribeFallbackToAudioOnly onCameraFocusAreaChanged onRemoteAudioStats onRemoteAudioTransportStats onRemoteVideoTransportStats onRemoteAudioMixingBegin onRemoteAudioMixingEnd onAudioEffectFinished onStreamInjectedStatus onMediaEngineLoadSuccess onMediaEngineStartCallSuccess ``` ## 2019-02-06 12:22 修改 muteAllRemoteVideoStream 为 muteAllRemoteVideoStreams 添加下列函数 ```c# ConnectionStateType getConnectionState(); int setDefaultMuteAllRemoteAudioStreams(bool mute); int setVideoEncoderConfiguration(ClrVideoEncoderConfiguration^ config); int setDefaultMuteAllRemoteVideoStreams(bool mute); int adjustAudioMixingPlayoutVolume(int volume); int adjustAudioMixingPublishVolume(int volume); int setExternalAudioSink(bool enabled, int sampleRate, int channels); int setExternalVideoSource(bool enabled, bool useTexture); int pushVideoFrame(ClrExternalVideoFrame^ frame); int addVideoWatermark(ClrRtcImage^ image); int clearVideoWatermark(); ``` ## 2019-02-01 因2.3.0以后,声网就不再支持录制接口,转而由Recording SDK来提供,于是相应删除 ```c# startRecordingService stopRecordingService refreshRecordingServiceStatus onRefreshRecordingServiceStatus ``` ## 2018-12-07 修改ClrLiveTranscoding不能设置transcodingUsers的BUG ## 2018-07-20 修改信令中 messageInstantSend 方法不能处理中文的BUG ## 2018-07-19 修改[枚举设备列表BUG](https://github.com/horsefaced/AgoraCLI/issues/18)的issue <<<<<<< HEAD ======= ## 2018-06-30 新增以下接口 ```c# int getEffectsVolume(); int setEffectsVolume(int volume); int setVolumeOfEffect(int soundId, int volume); int playEffect(int soundId, String^ file, int loopCount, double pitch, double pan, int gain, bool publish); int stopEffect(int soundId); int stopAllEffects(); int preloadEffect(int soundId, String^ file); int unloadEffect(int soundId); int pauseEffect(int soundId); int pauseAllEffects(); int resumeEffect(int soundId); int resumeAllEffects(); ``` >>>>>>> 2.3 ## 2018-06-27 合并2.1分支进入主分支,2.2因为删除了一些头文件,造成不兼容,新开2.2分支进行开发,原2.1的一些没有开发完的功能将在2.2分支上实现 ## 2018-05-10