createStream时支持自定义参数吗?

需求是多人视频通话时,参会人可能有两种不同的身份,需要创建流的时候给这个流一个自定义的字段标记,在后面的事件中通过这个标记来区分身份
有没有过来人阔以指导一下,感谢!

没有诶,createStream 没有提供可自定义的参数。

你说的两种不同的身份是指什么?一般建议通过业务逻辑去处理这类需求(可以自己根据需要,管理不同的 streamID)。

我们试了如果uid传入字符串的话,SDK还是会生成一个数字作为uid,就是说我们要自己规范两种可区分的数字来作为uid对吧

这是因为底层只支持接收 int 型 uid,所以 string 型 uid 需要完成映射(映射为 int 型)。出于稳定性考虑,我们更建议使用 int 型 uid。

嗯,是的。或者你们也可以自己添加一个变量来判断,比如说用户在进入界面时,就选择自己的身份,然后将这个变量和用户 uid 关联。这类业务逻辑处理方法挺多的

不好意思,我还有一个问题,就是远端unpublish之后再publish进来,我在stream-added也拿到了放到远端流数组里了,打印出来也看得到,但是远端那个画面就是一个黑的窗口,看不到画面,播放器用的"agora-stream-player",跟这个有关系吗?

你看看 Console log, video 标签的 status 是什么?
paused 可能的原因:
1)频繁操作 dom 导致浏览器暂停播放器;
2)无法解码视频流;
3)视频包需要等待音频包同步播放,而音频包播放不了,需要手动触发播放。关于自动播放策略的更多信息,请参考 Autoplay Policy Changes
aborted 可能的原因:
video 标签在 play 前被删除了。

看看这篇帖子,有可能是播放策略阻止导致的:

还是那个远端取消发布之后重新发布不播放的问题,
我在stream-subscribed事件里面加了:
if (!stream.isPlaying()) {
stream.play(‘agora_remote’, {fit: ‘contain’})
}
然后报错了:

cannot read property “appendChild” of null :一般是 play 指定的 dom 不存在或者 id 没有找到,基本都是你那边处理的问题(play之前没有及时生成相应的父容器)。

这个报错在上面给你的帖子里有说明啊 【Web SDK】常见集成问题集锦