

Implement Desktop Sharing Functionality HWND hWnd Īgora::rtc::Rectangle rcCapWnd = m_VideoDeviceTestMgr->get()->stopDeviceTest() Ret = m_VideoDeviceTestMgr->get()->startDeviceTest(m_wndLocal.GetSafeHwnd()) Implement Video Device Check Functionality m_VideoDeviceTestMgr = new AVideoDeviceManager(m_lpAgoraRtcEngine->GetEngine()) Leave channel m_lpAgoraRtcEngine->LeaveChannel() m_lpAgoraRtcEngine->MuteLocalVideo(FALSE) m_lpAgoraRtcEngine->MuteLocalAudio(FALSE)Įnable/Disable Local Video m_lpAgoraRtcEngine->MuteLocalVideo(TRUE) Mute/Unmute local audio m_lpAgoraRtcEngine->MuteLocalAudio(TRUE) M_lpAgoraRtcEngine->JoinChannel(m_strChannelName, 0, _T("")) M_lpAgoraRtcEngine->JoinChannel(m_strChannelName, 0, m_MEDIA_TOKEN) Implement button event handler OnBnClicked.() Join channel if (m_useMediaToken != FALSE) M_lpAgoraRtcEngine->GetEngine()->setupLocalVideo(vc) M_lpAgoraRtcEngine->GetEngine()->setupRemoteVideo(vc) After receiving message sent from the event handler, call RTC engine to set up wnd to show remote Video. LPAGE_FIRST_REMOTE_VIDEO_DECODED lpData = (LPAGE_FIRST_REMOTE_VIDEO_DECODED)wParam LRESULT CAgoraVideoCallTestDlg::OnFirstRemoteVideoDecoded(WPARAM wParam, LPARAM lParam) ::PostMessage(m_hMainWnd, WM_MSGID(EID_FIRST_REMOTE_VIDEO_DECODED), (WPARAM)lpData, 0) LPAGE_FIRST_REMOTE_VIDEO_DECODED lpData = new AGE_FIRST_REMOTE_VIDEO_DECODED Void CAgoraRtcEngineEventHandler::onFirstRemoteVideoDecoded(uid_t uid, int width, int height, int elapsed) Virtual void onUserJoined(uid_t uid, int elapsed) Virtual void onFirstRemoteVideoFrame(uid_t uid, int width, int height, int elapsed) Virtual void onFirstRemoteVideoDecoded(uid_t uid, int width, int height, int elapsed) Virtual void onFirstLocalVideoFrame(int width, int height, int elapsed) Virtual void onMediaEngineEvent(int evt)

Virtual void onLeaveChannel(const RtcStats& stat)

Virtual void onError(int err, const char* msg) Virtual void onWarning(int warn, const char* msg) Virtual void onRejoinChannelSuccess(const char* channel, uid_t uid, int elapsed) Implement RtcEngineEventHandler virtual void onJoinChannelSuccess(const char* channel, uid_t uid, int elapsed) What is m_EngineEventHandler? That is event handler to handle events emitted by RTC Engine. LpAppId is Agora App ID, can read it from ini file, or set in the project resource file. Initialize Agora Rtc Engine m_lpAgoraEngine = (IRtcEngine *)createAgoraRtcEngine() Ĭtx.eventHandler = &m_EngineEventHandler Search and Ping are for custom REST API call for test purpose, to be explained later.Start/Stop Desktop Sharing (toggle button).Enable/disable local video (toggle button).Mute/Unmute local Audio (toggle button).Start/Stop a Video device test (toggle button).Input Channel name, start/Join a video call.Integrate the SDK, go to the project properties setting, change "Additional include dirtectories" and "Additional Library Dirtecories" as shown below.Īnd Implement Video&Desktop Sharing Call Functionality Draw UI.Unzip the SDK onto C:/Agora_video_call_test/video_call/sdk/libs, create the directory if it doesn't exist. use MFC wizard to create a new MFC UI project.Īssuming your project is created under C:/Agora_video_call_test/video_call.To start, let’s open Visual Studio 2019 and create a new blank project. Implement Video&Desktop Sharing Call Functionality.Also, you can find Agora Video SDK API documents here.

You can find My Demo App as a reference for this article.
AGORA VIDEO CALL DOWNLOAD WINDOWS
Note: While no Windows Win32 and Windows UI programming knowledge is needed to follow along, certain basic concepts won’t be explained along the way.
AGORA VIDEO CALL DOWNLOAD WINDOWS 10
Microsoft VIsual studio 2019 on Windows 10 and 2 Windows 10 laptops with Camera.A basic understanding of Windows C/C++ and UI programming.In this guide, we’ll walk through all the steps you need to build a zoom like application on Windows 10 that supports video and Desktop Sharing communication from scratch. Thankfully, the Agora.io SDK is a great and easy solution for this! There’s usually a steep learning curve in implementing real-time video communication, which can discourage many developers. Have you ever considered creating a real-time communications application similar to Zoom?
