我已经实现了Agora Web SDK进行调用,并且可以在Laravel和Vue.js中很好地工作。
我想知道在进行音频通话时是否可以从音频通话切换到视频通话。
如果我用video = false创建createStream,那么它只是音频通话,但我无法将其更改为使用rtc.localStream.unmuteVideo()
切换到视频通话,因为它需要video = true才能正常工作
如果我用video = true创建createStream,那么我将使用rtc.localStream.muteVideo()
关闭相机。因此它可以关闭相机,用户可以在需要时将其打开。但是相机灯仍然亮着。
// create local stream
this.rtc.localStream = AgoraRTC.createStream({
streamID: this.rtc.params.uid,
audio: true,
video: true,
screen: false,
microphoneId: this.option.microphoneId,
cameraId: this.option.cameraId
});
这意味着它仍然是视频通话,但视频轨道只是一个空白屏幕。
我正在寻找一种方法,可以不中断地删除唯一的音频通话流并添加音频视频通话流。
我看过Agora文档,但找不到任何东西。
我认为一旦创建了流,就无法将视频更改为真或假。
更新:
阅读爱马仕的答案后。我做了一些RnD,发现了一些有用的事件。
技巧与答案中提到的相同。
要从屏幕<=>音频<=>视频<=>屏幕更改呼叫。
以上3个步骤将触发AGORA事件
基于这些事件,您也可以更新ui和(本地,远程)流。
答案 0 :(得分:1)
处理此问题的最佳方法是使用两个Agora <div class="LoginPage">
<div class="outerContainer">
<form name="form">
<div class="emailLabelInput">
<input type="text" class="login-form-control" name="email" placeholder="Email address"/>
</div>
<div class="passwordLabelInput">
<input type="password" class="login-form-control" name="password" placeholder="Password"/>
</div>
<div class="form-group">
<button class="submit-btn">Log In</button>
</div>
</form>
</div>
</div>
对象。
首先仅创建音频products['word_count'] = products['review'].apply(lambda x : nltk.FreqDist)
,然后使用stream
发布。然后,当您想更改为视频通话时,\然后在音频stream
上调用client.publish
,并创建另一个启用了视频选项的client.unpublish
,并在通话stream
时使用视频stream
。
只有一个时间中断,因为一个流未发布,然后新的流被发布到频道。