是否可以不退出频道,但是可以释放mic麦克风,比如home 操作,想要停掉mic,但是不退出频道
用sdk去采集,必须要leavechannel 然后调用destroy,必须要这样操作。只要你还在频道内,就会一直占用。如果单单是退出频道leavechannel,可能资源还没释放,要等到onleavechannel回调才可以,如果直接调用destroy就没有这个onleavechannel回调了。
destory后还用从新create engin,具体看文档。
windows的直播画中画例子
https://github.com/jjzhang166/OpenLive_Windows/blob/71de271bf5b6bf21d1bdeb2fc8f27b2d95c8fdf7/AgoraOpenLive/AgoraObject.cpp
voip和视频通话场景是否可以使用第三方的信令
媒体sdk和信令是解耦的,是可以的。
是以 joinchannel返回的0来做加入频道成功呢,还是以success回调来判断加入成功?
确定是以回调success来做判断是否加入成功。
为什么我joinchannel的时候返回了0成功,但是我success没有回调呢。
有一种常见的场景就是开启了App Certificate,比如加入频道时如果本地engin状态都是ok的,joinchannel本地判断会直接返回0,但是channelkey是在网络中做的,sdk的回调是异步的,如果channelkey不对,就可能导致success没有回调。而且在onerror的错误中有109 110 17的错误码。现在暂时没有加入频道失败的回调,需要在onerror中看。
同一个频道内的channelkey 可以不同吗?
答案是肯定的,channelkey肯定是不一样的。每次的channelkey都不一样应该才对。
当我加入频道的时候使用了channelkey做鉴权,但是key过期了,并且出现了多次的onerror回调
这个很可能就是你在key过期后,重新renew一个新的key的时候,新的key也是过期的(109 110 错误码),所以回调了多次,本身是只有一次回调的。
在joinchannel的时候传了channelkey过期的key,该如何处理这部分的报错和业务逻辑呢?
在onerro的109回调中去renewchannelkey即可,本地是返回了0成功的,所以只需要调用重新获取新的key就好了,不需要重新joinchannel。中途过期的逻辑也可以在这里处理,或者到过期回调中去做也可以。
视频用了第三方美颜自采集,音频使用声网的采集,发现出现了音画不同步达到1秒
pushExternalVideoFrame 这个接口中有一个timestamp [必要]传入的视频帧的时间戳,以毫秒为单位。不正确的时间戳会导致丢帧或者音视频不同步。可以解决这个问题。
设置本地和远端镜像
本地
mRtcEngine.setParameters(“{\”che.video.localViewMirrorSetting\”:\”disableMirror\”}”);
string value could be one of following value:
1. forceMirror Always mirror local preview
2. disableMirror Always disable mirror for local preview
3. default Whether mirror is determined by SDK
远端:
mRtcEngine.setParameters(“{\”che.video.enableRemoteViewMirror\”:true}”);