本地录制视频调用sdk报错

4
有哪位知道原因的,指点一下小弟

请正确选择提问版块,否则你的提问可能不能及时得到回复。帮你移动了。

一般是在调createChannel方法时,找不到第四个测试config对应的RecodingConfig文件,请按照demo中的包名放置:

io.agora.recording.common.RecodingConfig.java

io.agora.recording.RecodingSDK.java

io.agora.recording.RecodingEventHandler.java

这个必须是这个路径吗,sdk会回调这几个文件?我们的项目都是有规范的,这么命名,通不过公司的规范

路径变了的话,要修改 build.sh 里面的路径,然后重新编译

RecordingEventHandler的实现类和RecordingSDK类,每次创建频道的时候都重新new一个吗?leaveChannel(long nativeHandle)中nativeHandle称为录制引擎,这个参数的值是怎么来的

需要的,并且一个进程只能创建一个频道。

在调createChannel成功之后,就会触发nativeObjectRef这个回调,返回nativeHandle,代表当前录制实例。
你可以在这个回调中保持nativeHandle变量,方便后续调用

public void nativeObjectRef(long nativeHandle) {

{{ mNativeHandle = nativeHandle; }}

System.out.println(mNativeHandle)

}

你说的进程你指一个客户端的请求线程吗?
RecordingSDK RecordingSdk = new RecordingSDK();
RecordingSample ars = new RecordingSample(RecordingSdk);
ars.createChannel(args);
ars.unRegister();上一步创建频道,下一步就卸载注册吗?

RecordingSample提供的创建频道的方法我修改了一下
public void createChannle(RecorderDTO recorderDTO) {
RecordingSDK RecordingSdk = new RecordingSDK();
RecordingSample recordingSample = new RecordingSample(RecordingSdk);
recordingSample.createChannel(recorderDTO);
recordingSample.unRegister();
}
在我的service服务类中调用,是不是其它的方法就不用改了

以上截图是我调用录制产生的文件,并没有产生音视频文件
postman调用参数,AgoraCoreService文件放在了linux的“/home/recorder”目录下
{
“channelName”:“testChannel”,
“applitePath”:"/home/recorder",
“token”:“0061b76bac69ec546a29280f1384820ccfeIAAGPMKQSh3D9AsngxMVt/6qfeYkPJKh7tM1Pne+7VnSmupuE8xh03IJIgA8N+fF+p06XQQAAQAAAAAAAgAAAAAAAwAAAAAABAAAAA”,
“decryptionMode”:"",
“secret”:"",
“channelProfile”:0,
“uid”: 8716,
“logLevel”:5,
“recordFileRootDir”:"/home/file-video",
“cfgFilePath”: “”,
“proxyServer”:"",
“defaultVideoBgPath”:"",
“defaultUserBgPath”:""
}
参数里的token和uid要和某个用户的token和uid一直吗,还是要独立生成一个

谢谢你

因为uid是生成token的参数之一,你可以理解为 uidtoken一一对应,你那边应该是加入频道就失败了吧?


回调的信息中显示的是有用户的啊,那怎么才能加入成功

使用录制 SDK 必须与 Agora Native/Web SDK 设置相同的频道模式,否则可能导致问题。
这边从后台看到你频道里的web端用户是直播模式,请把录制端的“channelProfile”设置为1试试看。


这是这个错误,而且user size的值为什么一直在增大?
下面是产生的文件
99

从日志来看,很明显你录制端用户多次重新加入频道,导致wrapper层错误

RecorderDTO是什么,你检查下是不是多次反复调了createChannle

上面的参数就是RecorderDTO的内容,在postman里调用的,就一次

你发下你的recording_sys.log吧

recording_sys.zip (23.0 KB)
文件已压缩上传


1s内,调用了那么多次join channel,应该是createChannel部分代码逻辑有问题。请参照demo的代码来改。

recorder.zip (6.9 KB)
帮忙看下,我只是把示例中的createChannel方法由main方法调用改为接口调用,参数抽取了一下,逻辑都没改,下图是项目结构:

好的,有结果了我们会及时反馈给你。