如何解决单用户加入时Agora Cloud Recording无法正常工作
我已经实现了agora云录制,并且能够将录制文件保存在Amazon S3中。我在录制的视频中遇到问题,我只能在录制的视频中看到一个人。没有开始录制的人。
以下是步骤。
- 开始视频通话
- 其他人加入通话
- 获取-开始记录-查询(状态5)-记录正常
- 完成录制-录制上传成功
- 检查Amazon S3中的记录(我可以看到另一个正在编码的人,但不是我自己)
我已经订阅了两个UID,也尝试使用全选订阅
"subscribeVideoUids": [ "#allstream#" ],"subscribeAudioUids": [ "#allstream#" ],
需要了解什么是不正确的。请在下面找到完整的请求。
{"cname":"1000","uid":"3924255811","clientRequest":{"token":"006d144dfdf7042dcc742acaca3c34af3afe220IAD6qWGaJzXtNJerzqvOQv1tItIa4sVXAb82LOj2vRAygRejJGdfUjEAAubpgRidf8lgXwEA","recordingConfig":{"maxIdleTime":30,"streamTypes":2,"channelType":0,"videoStreamType":1,"transcodingConfig":{"height":640,"width":360,"bitrate":500,"fps":15,"mixedVideoLayout":1,"maxResolutionUid":"3924255811","backgroundColor":"#000000"},"subscribeVideoUids":["#allstream#"],"subscribeAudioUids":["#allstream#"],"subscribeUidGroup":0},"recordingFileConfig":{"avFileType":["hls"]},"storageConfig":{"accessKey":"xxxxxxxx","region":14,"bucket":"dummybucket","secretKey":"xxxxxxxx","vendor":1}}}
解决方法
根据我的经验,有时仅记录1个用户,这是由于记录器使用与该频道中的一个用户相同的UID。
调用Agora Cloud Recording(获取,启动,停止)时,该UID对通道中已有的用户应该是唯一的。
,是的,如果频道中只有一个用户,则此方法将不起作用,以下是我为使其正常工作而应用的解决方案。
- 创建一个新的或本地客户端,该客户端将加入频道,但不创建该客户端的音频和视频轨道。
- 现在,在继续进行录制之前,请打开一个新窗口,并在该窗口的负载下,再创建一个客户端(通过与上述相同的操作),这次允许创建其音频和视频轨道。 此新创建的客户端在此窗口中的行为类似于本地客户端,而在原始窗口中的行为类似于远程客户端。
这里发生的是-
- 第一次创建客户端时,它会加入频道,但不会在频道中发布任何流,但是我们有此客户端的UID,我们将使用该UID发送录制请求。
- 第二次打开新窗口并创建新客户端或本地客户端时,此客户端是原始窗口的远程客户端( 正在录制或正在请求录制的 ),这就是正在记录的客户。
理想情况下,该频道中有两个用户,其中一个正在发布流(新的窗口客户端),而另一个不在发布但请求录制(原始窗口客户端)。从逻辑上讲,正在记录的用户在两个窗口中都具有相同的uid。
要记录单个用户,通道中至少应包含两个唯一的uid,一个uid人员可以请求记录,另一个uid用户可以记录。
希望这会有所帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。