tangtangyamu 发表于 2014-10-27 19:22:02

业务服务器向录像服务器发送录制指令问题

业务服务器调用录制发送指令方法:
AnyChatServerSDK.StreamRecordCtrl(dwUserId, bStartRecord, dwFlags, dwParam, dwRecordServerId);
返回值为:100,这个状态吗代表什么意思,还有录制指令发送后,服务器并没有开始录制,
请问这个方法如何解决呢?

admin 发表于 2014-10-27 19:26:43

您好,业务服务器调用API接口返回ErrorCode:100,表示业务服务器没有与核心服务器建立连接,请参考:Windows服务器部署、Linux服务器部署

建议上传业务服务器日志文件(AnyChatServerSDK.log)、核心服务器日志文件(AnyChatCoreServer.log),我们帮您分析一下,谢谢。

admin 发表于 2014-10-27 19:37:37

有关中心录像服务器的部署、开发请参考:http://bbs.anychat.cn/forum.php?mod=viewthread&tid=20&extra=page%3D1

tangtangyamu 发表于 2014-10-27 19:49:20

AnyChatServerSDK.log:
        AnyChat Server SDK Init,V5.1, Build Time:Oct 13 2014 19:09:55
        Invoke        BRAS_InitSDK(0x0)
        Ready to connect anychatcoreserver....
        Success connected to anychatcoreserver...

AnyChatCoreServer.log:
        ---------------------Init Service--------------------------
        Current File Version,Build time:2014-10-13 19:11:42
        Load brservernetlayer.dll success!(V5.1, Build time:Oct 13 2014 19:11:24)
        Start TCP Server Successed(port=8906)!
        Start UDP Server Successed(port=8907)!
        AnyChat IPC Filter Plus Init, Build Time:Oct 13 2014 19:11:26
        Load SDK Filter Plus:IPCFilterPlus.dll Success, ver:SDK Filter Plus (IPC), for Windows V5.1
        Start Server At Demo Mode!
        Successful communicate with the business server!
        Successful communicate with the record server!(192.168.25.27:2258, id:-1)

AnyChatRecordServer.log:
        AnyChat Record Server Init,V5.1, Build Time:Oct 13 2014 19:10:38
        Record Root Directory: C:\Documents and Settings\Administrator\桌面\AnyChatCoreSDK_Win32_r4297\bin\recordserver\record\
        Ready to connect anychatcoreserver192.168.25.27(8907)....
        Load BRMediaUtil.dll success!(V5.2 Build Time:Oct 13 2014 19:10:51)
        Successfully connect to the anychatcoreserver!

tangtangyamu 发表于 2014-10-27 19:52:13

本帖最后由 tangtangyamu 于 2014-10-27 19:55 编辑

您好!相关资料已经阅读,我描述下我的环境:
核心服务器采用:AnyChatCoreSDK_Win32_r4297\bin\server
业务服务器采用:AnyChatCoreSDK_Win32_r4297\src\server\java\AnyChatBussinessServer
录像服务器采用:C:\Documents and Settings\Administrator\桌面\AnyChatCoreSDK_Win32_r4297\bin\recordserver\

在业务处理器添加一个方法,调用:
// 中心端录像控制
public static native int StreamRecordCtrl(int dwUserId, int bStartRecord, int dwFlags, int dwParam, int dwRecordServerId);
// 中心端录像控制(扩展)
public static native int StreamRecordCtrlEx(int dwUserId, int bStartRecord, int dwFlags, int dwParam, String lpUserStr, int dwRecordServerId);

但是这两个方法都是返回100,连接超时

admin 发表于 2014-10-27 19:52:22

您好,上面的日志显示都是正常的,建议您开启业务服务器的调试模式,将会输出更多的信息。

请修改AnyChatServerSDK.ini,将DebugMode改为1,然后重启业务服务器程序即可。

另外调用API:AnyChatServerSDK.StreamRecordCtrl之前,请确保已经调用了InitSDK接口且核心服务器与业务服务器已经连接成功。

tangtangyamu 发表于 2014-10-27 20:22:46

您好,AnyChatRecordServer.ini是设置为debug模式
DebugMode改为1

DebugMode=1
ServerIpAddr=192.168.25.27
ServerUdpPort=8907
RecordRootDir=record
RecordRootURL=http://www.anychat.cn/record/
ServerCallBackPathType=1
ClientCallBackPathType=2

调用API:AnyChatServerSDK.StreamRecordCtrl之前,请确保已经调用了InitSDK接口,我调用的是InitSDK(0),初始化方法返回0,但是AnyChatServerSDK.StreamRecordCtrl方法仍然为100,是录像服务器连接不上?还有InitSDK(0)传输的参数是否正确呢,我业务服务器采用的java代码

admin 发表于 2014-10-27 20:31:21

您好,客户端是否已经连接上服务器?

如果连接上服务器,业务服务器日志(AnyChatServerSDK.log)应该会有相关的记录?但是从前面您上传的日志来看,并没有对应的客户端登录记录?

另外您是否运行了多个业务服务器程序?因为一个核心服务器只能对应一个业务服务器,第二个业务服务器将连接不上核心服务器,调用任何API接口都将返回ErrorCode:100。

还有InitSDK(0)传输的参数是否正确呢,我业务服务器采用的java代码
传0参数没有问题。

我调用的是InitSDK(0),初始化方法返回0,但是AnyChatServerSDK.StreamRecordCtrl方法仍然为100,是录像服务器连接不上您是在什么时候调用的StreamRecordCtrl呢,是InitSDK之后马上就调用?

tangtangyamu 发表于 2014-10-28 09:30:08

您好,这是业务处理器swing窗口运行控制器台信息:
V5.1 Build Time:Oct 13 2014 19:09:55
10-28 09:02:39:671Connect AnyChatCoreServer successed!
10-28 09:02:52:296Success connected with anychatrecordserver(id:0) ...
证明了,业务服务器和核心、录像服务器都已经连接成功!
用户登入也成功,视频双方也都打开
业务服务器添改代码如下:
BusinessServer.java:
public static AnyChatServerSDK anychat; //该成员变量改成static

同一个包内创建一个类 RecordServer.java:
package com.bairuitech.server;
public class RecordServer {
        @SuppressWarnings("static-access")
        public static void main(String[] args) {
//                System.out.println(BusinessServer.anychat.StreamRecordCtrl(1, 1, 0, 0, 0));
                System.out.println(BusinessServer.anychat.StreamRecordCtrlEx(1, 1, 0, 0, "0", 0));
        }
}
运行RecordServer的main方法,返回的100,帮我看看上面的测试方法是否正确?

admin 发表于 2014-10-28 09:36:58

您好,您不能在main函数里面直接调用录像的API接口,因为main函数是最早运行的,而业务服务器连接核心服务器是一个异步的过程。

您应该在一些业务场景中调用录像的API接口,而不是在程序的入口main函数中,而且第一个参数userid也必须为在线用户的userid,您这样直接传一个“1”是不合适的。
页: [1] 2
查看完整版本: 业务服务器向录像服务器发送录制指令问题