2010-5-17
Kagula
这里采用的环境:
[1] ts3_sdk_3.0.0-beta3
[2]VS2008+SP1
问题一:调用ts3client_startConnection连接服务器时,ChannelArray的设置。
正确的应该是
char *ChannelArray[2];
char strNull[]={""};
ChannelArray[0] = pChannelName;
ChannelArray[1] = strNull;
/* Connect to server on localhost:9987 with nickname "client", no default channel, no default channel password and server password "secret" */
if((error = ts3client_startConnection(scHandlerID, identity, ip, port, nickname, ChannelArray, "", "secret")) != ERROR_ok) {
sprintf(msg,"Error connecting to server: %d/n", error);
OutputDebugStringA(msg);
return 1;
}
若 char ChanelArray[2][32]形式来设置Channel,调用API会产生错误!
若指定名称的通道不存在,不会产生错误提示,自动连接到默认通道!
问题二:Mute客户端的问题
发现使用ts3client_requestMuteClients和ts3client_requestUnmuteClients两个函数不起作用(虽然函数返回结果看起来是正确的)。
我使用了下面的代码段来解决问题
其中IsMuted成员函数用来检查当前状态是否处于Mute。
问题三:设置Channel的最大slots
设置当前VirtualServer的最大用户数为32,原来为8。
参考TS3SDK中的ts3_server_example中的main.c
/* Maximum number of clients allowed per virtual server */
#define MAX_CLIENTS 32
设置0号Channel的Slots数为16
ts3server_setChannelVariableAsInt(serverID, 0, CHANNEL_MAXCLIENTS, 16);
TS3免费版的限制:
Only one server process per machine
Only one virtual server per process
Only 32 slots
问题四:录音功能
录音的采样率和采样精度,默认和当前通道语音的采样率及采样精度无关。
使用ts3client_startVoiceRecording函数在客户端开启录音功能后
你可以使用下面的代码来录音
测试录制的pcm文件内容是否正常,可以使用Cool Edit PRO软件。数据存储默认采用Intel大数端方式。
备注:
[1]删除默认通道,会产生通道标志出错的提示信息,但是,删除自己建立的通道不存在这个问题。
[2]在当前OS中调用ts3server_initServerLib只能一次,所以ts3server里有virutual server的概念。