如何解决语音通话期间Agora从音频通话切换为视频通话
我已经实现了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事件
- client.unpublish触发已删除流事件
- 发布触发器添加流事件。在此事件侦听器中,订阅新的流。当您订阅新视频流时,会触发视频流订阅事件。
基于这些事件,您也可以更新ui和(本地,远程)流。
解决方法
处理此问题的最佳方法是使用两个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
。
只有一个时间中断,因为一个流未发布,然后新的流被发布到频道。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。