在客户端的配置文件(AnyChatSDK.ini)中增加如下配置:
~~~
[Debug Settings]
OutputTransBuffer=1
OutputTransTask=1
OutputCallBackInvoke=1
OutputAPIInvoke=1
OutputCodecLog=1
OutputThreadStatus=1
~~~
上面的配置信息“=1”表示该配置生效,将额外输出对应的日志信息,“=0”表示关闭,不输出对应的日志信息,在实际调试过程中,建议有针对性的开启某一项的调试信息输出。
**1.通道调用日志【OutputTransBuffer】**:开启时将输出透明通道相关的调用信息,包括:BRAC_TransBuffer、BRAC_TransBufferEx、BRAC_TransFile、BRAC_SendSDKFilterData等API接口,输出内容包括API接口的调用、收到数据后的对应回调函数调用等信息。通常可以用来分析发送数据包,对方是否收到等。把调试设置的参数如下设置时:
~~~
[Debug Settings]
OutputTransBuffer=1
OutputTransTask=0
OutputCallBackInvoke=0
OutputAPIInvoke=0
OutputCodecLog=0
OutputThreadStatus=0
~~~
其启动日志记录如下:
![](https://box.kancloud.cn/9ca19cf5a01d0561830f1a8136e0031b_387x97.png)
1) BRAC_SO_AUDIO_AGCCTRL:音频自动增益控制参数,参数类型为DWORD,当返回值为0时表示关闭,为1时表示打开(默认)。
2) BRAC_SO_AUDIO_VADCTRL:音频静音检测控制参数,参数类型为DWORD,当返回值为0时表示关闭,为1时表示打开(默认)。
3) BRAC_SO_AUDIO_NSCTRL:音频噪音抑制控制参数,参数类型为DWORD,当返回值为0时表示关闭,为1时表示打开(默认)。
4) BRAC_SO_AUDIO_ECHOCTRL:音频回音消除控制参数,参数类型为DWORD,当返回值为0时表示关闭,为1时表示打开(默认)。
5) Invoke AudioGetVolume(device:1, dwVolume:50)=0
Invoke AudioGetVolume(device:0, dwVolume:50)=0//表示获取设备1和设备0的当前音量,0表示调用执行。
当传输文件时,此时会调用BRAC_TransFile接口,其日志如下:
~~~
Invoke BRAC_TransFile(dwUserid=-16,dwTaskId:14975, PathName:D:\360Downloads\liebaofreewifi_2015.3.16.5.1426486905.exe)=0 //DwUserid=-16为目标用户编号,dwTaskId:14975为任务编号,PathName是路径名称。
~~~
当传入缓冲区时,此时会调用BRAC_TransBufferEx接口,其日志如下:
Invoke BRAC_TransBufferEx(dwUserid=-16, buf[0]=0x88, buf[10239]=0x0, len=10240, rc=0, dwTaskId:14976) //dwUserid=-16为目标用户标号,buf[0]=0x88表示数据起始的内存地址,buf[10239]=0x0为数据结束的内存地址,len=10240表示数据长度,dwTaskId:14976表示任务标号。
**2.任务工作日志【OutputTransTask】:** 输出传输任务相关的信息,包括BRAC_TransBufferEx、BRAC_TransFile等API接口,输出内容包含任务的创建、传输、完成等工作状态。设置如下:
~~~
[Debug Settings]
OutputTransBuffer=0
OutputTransTask=1
OutputCallBackInvoke=0
OutputAPIInvoke=0
OutputCodecLog=0
OutputThreadStatus=0
~~~
其日志记录如下:
![](https://box.kancloud.cn/f41300050b3fb3f83298d82fb84abce2_764x215.png)
srcUserId:-22为发送方编号,tarUserId:-23为接收方编号,TaskId:27036为任务编号,Status:2正在传输的状态编号,sendbitrate:403kbps为传送比特率,recvbitrate:419kbps为接受的比特率,dwDeliverBitrate:200kbps为传输的比特率,fLossRate:0.00为丢包率,fBitrateError:0.00为误码率,finishpacknum:331为完成的包数,Status:3为传送成功的状态码。
**3.函数调用日志【OutputCallBackInvoke】:** 开启时将输出所有回调函数的调用记录,包括开始调用、结束调用等。设置如下:
~~~
[Debug Settings]
OutputTransBuffer=0
OutputTransTask=0
OutputCallBackInvoke=1
OutputAPIInvoke=0
OutputCodecLog=0
OutputThreadStatus=0
~~~
对方传输文件来本机,其日志记录如下:
Begin TransBufferFile Callback
End TransBufferFile Callback
//该日志表示开始调用TransBufferFile Callback接口和结束调用TransBufferFile Callback接口。
**4.API接口调用日志【OutputAPIInvoke】:** 开启时将输出所有API的调用记录,包括开始调用,结束调用等。设置如下:
~~~
[Debug Settings]
OutputTransBuffer=0
OutputTransTask=0
OutputCallBackInvoke=0
OutputAPIInvoke=1
OutputCodecLog=0
OutputThreadStatus=0
~~~
其日志记录如下:
a) BRAC_Connect---->
Invoke BRAC_Connect(192.168.6.101,8906)=0
<----BRAC_Connect
//表示连接开始,正在连接,连接结束。
b) BRAC_Login---->
Invoke LoginServer(username=AnyChat5)
<----BRAC_Login
//表示登录开始,正在登录,登录结束。
c) BRAC_EnterRoom---->
Invoke EnterRoom(roomid=1)
<----BRAC_EnterRoom
//表示开始进入房间,正在进入房间,进入房间结束。
d) <----BRAC_SetVideoPos
BRAC_UserCameraControl---->
Invoke UserCameraControl(userid=-1,bOpen=1)
<----BRAC_UserCameraControl
BRAC_UserSpeakControl---->
Invoke UserSpeakControl(userid=-1,bOpen=1)
<----BRAC_UserSpeakControl
//表示音视频开始操作,正在操作音视频,操作音视频操作完成。
e) BRAC_GetOnlineUser---->
<----BRAC_GetOnlineUser
//表示开始获得在线用户,获得在线用户结束。
**5.编解码器调试信息【OutputCodecLog】:** 开启时将输出内核编解码器的额外调试信息。设置如下:
~~~
[Debug Settings]
OutputTransBuffer=0
OutputTransTask=0
OutputCallBackInvoke=0
OutputAPIInvoke=0
OutputCodecLog=1
OutputThreadStatus=0
~~~
其日志记录如下:
![](https://box.kancloud.cn/2fa14b698e4194a04232c809cc19eea0_662x226.png)
**6.线程工作状态日志【OutputThreadStatus】:** 开启时将输出工作线程的日志信息。设置如下:
~~~
[Debug Settings]
OutputTransBuffer=0
OutputTransTask=0
OutputCallBackInvoke=0
OutputAPIInvoke=0
OutputCodecLog=0
OutputThreadStatus=1
~~~
其日志记录如下:
![](https://box.kancloud.cn/68c5336ad6c982efa7cbfe7aaa51cd1e_812x444.png)