Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate issue from 3.x.x to 4.0.0 beta #283

Open
ArcherEmiya05 opened this issue Jun 25, 2022 · 9 comments
Open

Migrate issue from 3.x.x to 4.0.0 beta #283

ArcherEmiya05 opened this issue Jun 25, 2022 · 9 comments

Comments

@ArcherEmiya05
Copy link

ArcherEmiya05 commented Jun 25, 2022

Good day, we had a project that haven't touch in a long time and wanting to migrate from 3.4.2 to the latest SDK. We read the migration documentation but does not answer the questions below:

  1. How huge is the change we must perform? So far we only refactor the packages to io.agora.rtc2 then change some constants. We also updated the onRemoteAudioStateChanged callback from
@Override
    public void onRemoteAudioStateChanged(int uid, int state, int reason, int elapsed) {
        runOnUiThread(() -> {
            if (state == Constants.REMOTE_AUDIO_STATE_STOPPED && reason == Constants.REMOTE_AUDIO_REASON_REMOTE_MUTED)
                onRemoteUserMute(uid, true);
            if (state == Constants.REMOTE_AUDIO_STATE_DECODING && reason == Constants.REMOTE_AUDIO_REASON_REMOTE_UNMUTED)
                onRemoteUserMute(uid, false);
        });
    }

to this

@Override
    public void onRemoteAudioStateChanged(int uid, IRtcEngineEventHandler.REMOTE_AUDIO_STATE state, IRtcEngineEventHandler.REMOTE_AUDIO_STATE_REASON reason, int elapsed) {
        runOnUiThread(() -> {
            if (state == IRtcEngineEventHandler.REMOTE_AUDIO_STATE.REMOTE_AUDIO_STATE_STOPPED && reason == IRtcEngineEventHandler.REMOTE_AUDIO_STATE_REASON.REMOTE_AUDIO_REASON_REMOTE_MUTED)
                onRemoteUserMute(uid, true);
            if (state == IRtcEngineEventHandler.REMOTE_AUDIO_STATE.REMOTE_AUDIO_STATE_DECODING && reason == IRtcEngineEventHandler.REMOTE_AUDIO_STATE_REASON.REMOTE_AUDIO_REASON_REMOTE_UNMUTED)
                onRemoteUserMute(uid, false);
        });
    }

(Please let us know if the code above is not the equivalent of the first sample)

  1. What is the replacement for Constants.REMOTE_VIDEO_STATE_DECODING? We are using it in onRemoteVideoStateChanged.
  2. What is the replacement for Constants.USER_PRIORITY_NORMAL, we saw this USER_PRIORITY_NORANL but not sure if this is the equivalent and just a typographical error.
  3. What is the replacement for VideoCanvas.RENDER_MODE_FILL?
  4. What is the replacement for deprecated CreateRendererView or CreateTextureView and what is the diffrences between using SurfaceView and TextureView for RtcEngine?
  5. RtcEngine vs RtcEngineEx

Thanks you for the time and understanding!

@ArcherEmiya05 ArcherEmiya05 changed the title How to migrate the native encrypt library from 3.x.x to 4.0.0 beta? Migrate issue from 3.x.x to 4.0.0 beta Jun 25, 2022
@plutoless
Copy link
Contributor

@ArcherEmiya05 there are 2 options you can choose when migrating

  1. migrate to 3.7.0, this is the latest version of our stable release build, and the change should be minimal for you to upgrade from 3.4.x
  2. migrate to 4.0.0-beta. this is a beta version, you may refer to this branch https://github.com/AgoraIO/API-Examples/tree/4.0.0-beta to find the corresponding api example. the change could be bigger comparing to option 1.

If there're no blocker features that you want to have which is only available in 4.x, i would recommend you to use 3.7.x first. There will be a stable version of 4.x GA within next 2 months.

@ArcherEmiya05
Copy link
Author

ArcherEmiya05 commented Jun 27, 2022

@ArcherEmiya05 there are 2 options you can choose when migrating

1. migrate to 3.7.0, this is the latest version of our stable release build, and the change should be minimal for you to upgrade from 3.4.x

2. migrate to 4.0.0-beta. this is a beta version, you may refer to this branch https://github.com/AgoraIO/API-Examples/tree/4.0.0-beta to find the corresponding api example. the change could be bigger comparing to option 1.

If there're no blocker features that you want to have which is only available in 4.x, i would recommend you to use 3.7.x first. There will be a stable version of 4.x GA within next 2 months.

Thanks, but can we already use 4.x.x beta at this time? Already tried it with video but it seems not working correctly despite implementing their respective constant (guess). Also is it okay if you answer the listed question above?

@plutoless
Copy link
Contributor

and to answer your questions,

  1. 4.0.0 is a big release that we have improved a lot of things, while at same time we try to keep the api as same as possible comparing to 3.x. So the change should not be too significant when you are upgrading.
  2. it's equivalent to first time the remote video state change to playing while reason is local unmuted.
  3. i think it's typo. i will report to team.
  4. the VideoCanvas has its renderMode, the equivalent is RENDER_MODE_HIDDEN
  5. From 4.0 we no longer recommend to create surface/texture view via our sdk apis. instead you can create your own view and set it to our canvas. for differences between surface view and texture view take a look at this thread https://stackoverflow.com/questions/16916877/whats-differences-between-surfaceview-and-textureview textureView is usually useful when you want to transform/animate the view.
  6. RtcEngineEx is mainly used when you want to join multiple channels. These are mainly new apis which does not exist in 3.x versions, so we create a new Ex file to accommodate them.

@plutoless
Copy link
Contributor

you may find most of the answers in our doc site. take a look if you are interested.
https://docs.agora.io/en/video-call-4.x-beta/landing-page?platform=Android

@plutoless
Copy link
Contributor

@ArcherEmiya05 there are 2 options you can choose when migrating

1. migrate to 3.7.0, this is the latest version of our stable release build, and the change should be minimal for you to upgrade from 3.4.x

2. migrate to 4.0.0-beta. this is a beta version, you may refer to this branch https://github.com/AgoraIO/API-Examples/tree/4.0.0-beta to find the corresponding api example. the change could be bigger comparing to option 1.

If there're no blocker features that you want to have which is only available in 4.x, i would recommend you to use 3.7.x first. There will be a stable version of 4.x GA within next 2 months.

Thanks, but can we already use 4.x.x beta at this time? Already tried it with video but it seems not working correctly despite implementing their respective constant (guess). Also is it okay if you answer the listed question above?

yes. it's ok to use it for sure.

@ArcherEmiya05
Copy link
Author

ArcherEmiya05 commented Jun 27, 2022

@ArcherEmiya05 there are 2 options you can choose when migrating

1. migrate to 3.7.0, this is the latest version of our stable release build, and the change should be minimal for you to upgrade from 3.4.x

2. migrate to 4.0.0-beta. this is a beta version, you may refer to this branch https://github.com/AgoraIO/API-Examples/tree/4.0.0-beta to find the corresponding api example. the change could be bigger comparing to option 1.

If there're no blocker features that you want to have which is only available in 4.x, i would recommend you to use 3.7.x first. There will be a stable version of 4.x GA within next 2 months.

Thanks, but can we already use 4.x.x beta at this time? Already tried it with video but it seems not working correctly despite implementing their respective constant (guess). Also is it okay if you answer the listed question above?

yes. it's ok to use it for sure.

Is there a huge changes from 3.x.x to beta 4 when it comes to Video call? We can no longer see the remote video and closing the channel make the app hang and crash. Using io.agora.rtc:agora-full-beta:4.0.0-beta.1

@plutoless
Copy link
Contributor

there're changes for sure. is the userJoined callback successfully called? is setRemoteVideo properly called? if you can provide a channel name and timestamp when the issue happened i can also help take a look.

@ArcherEmiya05
Copy link
Author

ArcherEmiya05 commented Jun 29, 2022

there're changes for sure. is the userJoined callback successfully called? is setRemoteVideo properly called? if you can provide a channel name and timestamp when the issue happened i can also help take a look.

I created a channel named Sample yesterday. I also file a bug where the sample project for Video call is also not working. The two device can join the channel, it will work for less than 5 seconds then crash. Now on our project we rollback to io.agora.rtc:full-sdk:3.7.0 from beta 4 and the video call is now work just like before even with the changes for deprecated constant and CreateRendererView. This leads us to believe that beta 4 SDK is not in a working stage as of the moment since even the sample project is not working properly.

@benedictcontawe
Copy link

benedictcontawe commented Jul 31, 2024

any updates?
RtcEngine.CreateRendererView is deprecated what to use now?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants