If you can not exit the channel, but you can release the mic microphone, such as home operation, want to stop the mic, but do not exit the channel
To use the SDK to collect, you must leavechannel and then call destroy, you must do this. As long as you are still on the channel, you will always be occupied. If the only exit channel Leavechannel, the resources may not be released, to wait until Onleavechannel callback can be, if the direct call destroy there is no this onleavechannel callback.
After Destory also use the new Create Engin, specific look at the document. Example of a live picture of windows
Https://github.com/jjzhang166/OpenLive_Windows/blob/71de271bf5b6bf21d1bdeb2fc8f27b2d95c8fdf7/AgoraOpenLive/AgoraObject.cpp
Whether VoIP and video call scenarios can use a third party signaling
The media SDK and signaling are decoupled and can be. is Joinchannel return 0来 to do join channel success, or with success callback to judge join success.
Determine whether to join the success with a callback success to make a decision. Why I returned 0 success when I was joinchannel, but I success no callback.
A common scenario is to open the app certificate, for example, if the local engin state is OK when the channel is joined, Joinchannel local judgment returns 0 directly, but Channelkey is done on the network, and the SDK callback is asynchronous, If Channelkey is not correct, it can cause success to have no callback. And there are 109 110 17 error codes in the onerror error. There is now no callback to join the channel failure, which needs to be seen in onerror. Can the Channelkey in the same channel be different?
The answer is yes, Channelkey is certainly not the same. Each time the Channelkey is not the same should be right. When I joined the channel, I used Channelkey to do the authentication, but the key expired and there were multiple onerror callbacks.
This is likely to be you after the key expires, renew a new key, the new key is also expired (109 110 error code), so callback many times, itself is only one callback. In the Joinchannel time passed the Channelkey expired key, how to deal with this part of the error and business logic.
In the Onerro 109 back to Renewchannelkey can be, the local is returned 0 successful, so only need to call to retrieve the new key is good, do not need to joinchannel again. The logic that expires in midstream can also be handled here, or it can be done in an expired callback. The video uses the third party beauty to collect, the audio uses the sound net collection, discovered that the music picture does not sync achieves 1 seconds
Pushexternalvideoframe This interface has a timestamp, in milliseconds, of a timestamp [necessary] incoming video frame. An incorrect timestamp can cause the frame to drop or the audio and video to be out of sync. can solve this problem. Setting local and remote mirrors
Local
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
Distal:
Mrtcengine.setparameters ("{\" che.video.enableremoteviewmirror\ ": true}");