Skip to content

Commit 4578385

Browse files
committed
windows 3.6.200
1 parent 18785be commit 4578385

19 files changed

Lines changed: 89 additions & 51 deletions

windows/APIExample/APIExample/Advanced/CustomAudioCapture/CAgoraCaptureAudioDlg.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,11 @@ bool CExtendAudioFrameObserver::onPlaybackAudioFrameBeforeMixing(media::base::us
6363
return true;
6464
}
6565

66+
bool CExtendAudioFrameObserver::onPlaybackAudioFrameBeforeMixing(rtc::uid_t uid, AudioFrame& audioFrame)
67+
{
68+
return true;
69+
}
70+
6671
//EID_JOINCHANNEL_SUCCESS message window handler
6772
LRESULT CAgoraCaptureAduioDlg::OnEIDJoinChannelSuccess(WPARAM wParam, LPARAM lParam)
6873
{

windows/APIExample/APIExample/Advanced/CustomAudioCapture/CAgoraCaptureAudioDlg.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,9 @@ class CExtendAudioFrameObserver :
4444
True: Buffer data in AudioFrame is valid, the data will be sent;
4545
False: The buffer data in the AudioFrame is invalid and will be discarded.
4646
*/
47-
virtual bool onPlaybackAudioFrameBeforeMixing(media::base::user_id_t uid, AudioFrame& audioFrame);
47+
virtual bool onPlaybackAudioFrameBeforeMixing(media::base::user_id_t uid, AudioFrame& audioFrame)override;
48+
49+
virtual bool onPlaybackAudioFrameBeforeMixing(rtc::uid_t uid, AudioFrame& audioFrame) override;
4850
};
4951

5052

windows/APIExample/APIExample/Advanced/CustomVideoCapture/CAgoraCaptureVideoDlg.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ bool CExtendVideoFrameObserver::onCaptureVideoFrame(VideoFrame & videoFrame)
5858
return true;
5959
}
6060

61-
bool CExtendVideoFrameObserver::onRenderVideoFrame(rtc::uid_t uid, rtc::conn_id_t connectionId, VideoFrame & videoFrame)
61+
bool CExtendVideoFrameObserver::onRenderVideoFrame(const char* channelId, rtc::uid_t remoteUid, VideoFrame& videoFrame)
6262
{
6363
return false;
6464
}

windows/APIExample/APIExample/Advanced/CustomVideoCapture/CAgoraCaptureVideoDlg.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class CExtendVideoFrameObserver :
3131
True: No ignore.
3232
False: Ignored, the frame data is not sent back to the SDK.
3333
*/
34-
virtual bool onCaptureVideoFrame(VideoFrame& videoFrame);
34+
virtual bool onCaptureVideoFrame(VideoFrame& videoFrame) override;
3535
/**
3636
* Occurs each time the SDK receives a video frame sent by the remote user.
3737
*
@@ -49,8 +49,7 @@ class CExtendVideoFrameObserver :
4949
* - true: Do not ignore.
5050
* - false: Ignore, in which case this method does not sent the current video frame to the SDK.
5151
*/
52-
virtual bool onRenderVideoFrame(rtc::uid_t uid, rtc::conn_id_t connectionId,
53-
VideoFrame& videoFrame) override;
52+
virtual bool onRenderVideoFrame(const char* channelId, rtc::uid_t remoteUid, VideoFrame& videoFrame)override;
5453

5554
virtual bool onScreenCaptureVideoFrame(VideoFrame& videoFrame)override { return true; }
5655
virtual bool onSecondaryCameraCaptureVideoFrame(VideoFrame& videoFrame)override { return true; }

windows/APIExample/APIExample/Advanced/LocalVideoTranscoding/CLocalVideoTranscodingDlg.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ void CLocalVideoTranscodingDlg::OnBnClickedButtonJoinchannel()
126126
//screen
127127
++i;
128128
stream_infos[i].sourceType = agora::rtc::VIDEO_SOURCE_SCREEN_PRIMARY;
129-
stream_infos[i].connectionId = agora::rtc::DEFAULT_CONNECTION_ID;
129+
130130
stream_infos[i].x = 0;
131131
stream_infos[i].y = 0;
132132
stream_infos[i].width = 1280;
@@ -135,7 +135,7 @@ void CLocalVideoTranscodingDlg::OnBnClickedButtonJoinchannel()
135135
//camera
136136
++i;
137137
stream_infos[i].sourceType = agora::rtc::VIDEO_SOURCE_CAMERA_PRIMARY;
138-
stream_infos[i].connectionId = agora::rtc::DEFAULT_CONNECTION_ID;
138+
139139
stream_infos[i].x = 0;
140140
stream_infos[i].y = 360;
141141
stream_infos[i].width = 640;
@@ -145,7 +145,7 @@ void CLocalVideoTranscodingDlg::OnBnClickedButtonJoinchannel()
145145
//png imge
146146
++i;
147147
stream_infos[i].sourceType = agora::rtc::VIDEO_SOURCE_RTC_IMAGE_PNG;
148-
stream_infos[i].connectionId = agora::rtc::DEFAULT_CONNECTION_ID;
148+
149149
stream_infos[i].x = 0;
150150
stream_infos[i].y = 0;
151151
stream_infos[i].width = 200;
@@ -155,7 +155,7 @@ void CLocalVideoTranscodingDlg::OnBnClickedButtonJoinchannel()
155155
//jpg image
156156
++i;
157157
stream_infos[i].sourceType = agora::rtc::VIDEO_SOURCE_RTC_IMAGE_JPEG;
158-
stream_infos[i].connectionId = agora::rtc::DEFAULT_CONNECTION_ID;
158+
159159
stream_infos[i].x = 640 - 64;
160160
stream_infos[i].y = 180 - 64;
161161
stream_infos[i].width = 64;

windows/APIExample/APIExample/Advanced/MultiCamera/CMultiCameraDlg.cpp

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -124,10 +124,12 @@ void CMultiCameraDlg::OnBnClickedButtonJoinchannel()
124124
void CMultiCameraDlg::OnBnClickedButtonPublish2()
125125
{
126126
if (!m_bScecondJoin) {
127+
127128
CString strChannelName;
128129
m_edtChannelName.GetWindowText(strChannelName);
129130
std::string szChannelId = cs2utf8(strChannelName);
130131
if (m_vecCameraInfos.size() > 0) {
132+
connection.localUid = generateUid();
131133
conn_id_t conn_id = 0;
132134
m_camera2EventHandler.SetId(1);
133135
m_camera2EventHandler.SetMsgReceiver(m_hWnd);
@@ -140,18 +142,17 @@ void CMultiCameraDlg::OnBnClickedButtonPublish2()
140142
options2.publishSecondaryCameraTrack = true;
141143
options2.clientRoleType = CLIENT_ROLE_BROADCASTER;
142144
// joinChannelEx secondary camera capture(broadcaster)
143-
int ret = m_rtcEngine->joinChannelEx(APP_TOKEN, szChannelId.c_str(), 0, options2, &m_camera2EventHandler, &conn_id);
145+
connection.channelId = szChannelId.data();
146+
int ret = m_rtcEngine->joinChannelEx(APP_TOKEN, connection, options2, &m_camera2EventHandler);
144147
m_lstInfo.InsertString(m_lstInfo.GetCount(), _T("joinChannelEx secondary camera,use ChannelMediaOption"));
145-
if (0 == ret) {
146-
m_conn_camera2 = conn_id;
147-
}
148+
148149
}
149150
m_btnPublish2.SetWindowText(MultiCamearaStopPublishCamera2);
150151
}
151152
else {
152153

153154
//leaveChannel secondary camera
154-
m_rtcEngine->leaveChannelEx(m_camera2EventHandler.GetChannelName().c_str(), m_conn_camera2);
155+
m_rtcEngine->leaveChannelEx(connection);
155156
m_lstInfo.InsertString(m_lstInfo.GetCount(), _T("leaveChannel secondary camera"));
156157

157158
m_btnPublish2.SetWindowText(MultiCamearaPublishCamera2);
@@ -235,7 +236,9 @@ void CMultiCameraDlg::ResumeStatus()
235236
bool CMultiCameraDlg::InitAgora()
236237
{
237238
//create Agora RTC engine
238-
m_rtcEngine = createAgoraRtcEngine();
239+
240+
agora::rtc::IRtcEngine* engine = createAgoraRtcEngine();
241+
m_rtcEngine = (IRtcEngineEx*)engine;
239242
if (!m_rtcEngine) {
240243
m_lstInfo.InsertString(m_lstInfo.GetCount(), _T("createAgoraRtcEngine failed"));
241244
return false;
@@ -321,18 +324,23 @@ void CMultiCameraDlg::UnInitAgora()
321324
m_btnJoinChannel.SetWindowText(commonCtrlJoinChannel);
322325
}
323326

327+
if (m_bStartCapture2)
328+
m_rtcEngine->stopSecondaryCameraCapture();
329+
if (m_bStartCapture1)
330+
m_rtcEngine->stopPreview();
331+
324332
if (m_bScecondJoin) {
325333
//stop secondary camera capture
326334
m_rtcEngine->stopSecondaryCameraCapture();
327335
m_lstInfo.InsertString(m_lstInfo.GetCount(), _T("stop secondary camera capture"));
328336
//leaveChannel secondary camera
329-
m_rtcEngine->leaveChannelEx(m_camera2EventHandler.GetChannelName().c_str(), m_conn_camera2);
337+
m_rtcEngine->leaveChannelEx(connection);
330338
m_lstInfo.InsertString(m_lstInfo.GetCount(), _T("leaveChannel secondary camera"));
331339
m_bScecondJoin = false;
332340
}
333341

334342
//m_vecCameraInfos.clear();
335-
m_conn_camera2 = 0;
343+
336344
//stop preview in the engine.
337345
m_rtcEngine->stopPreview();
338346
m_lstInfo.InsertString(m_lstInfo.GetCount(), _T("stopPreview"));
@@ -354,8 +362,8 @@ LRESULT CMultiCameraDlg::OnEIDJoinChannelSuccess(WPARAM wParam, LPARAM lParam)
354362
strInfo.Format(_T("join %s success, uid=%u, cId=%d"), strChannelName, wParam, cId);
355363
m_lstInfo.InsertString(m_lstInfo.GetCount(), strInfo);
356364
//primary camera mute with each other
357-
m_rtcEngine->muteRemoteAudioStream((uid_t)wParam, true, cId);
358-
m_rtcEngine->muteRemoteVideoStream((uid_t)wParam, true, cId);
365+
m_rtcEngine->muteRemoteAudioStream((uid_t)wParam, true);
366+
m_rtcEngine->muteRemoteVideoStream((uid_t)wParam, true);
359367
return 0;
360368
}
361369

windows/APIExample/APIExample/Advanced/MultiCamera/CMultiCameraDlg.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ class CMultiCameraDlg : public CDialogEx
139139
bool m_bStartCapture2 = false;
140140
std::string m_strChannel;
141141

142-
agora::rtc::IRtcEngine* m_rtcEngine = nullptr;
142+
agora::rtc::IRtcEngineEx* m_rtcEngine = nullptr;
143143

144144
conn_id_t m_conn_camera2;
145145
conn_id_t m_conn_camera;
@@ -148,6 +148,9 @@ class CMultiCameraDlg : public CDialogEx
148148
AVideoDeviceManager* videoDeviceManager = nullptr;
149149
CMultiCameraEventHandler m_camera2EventHandler;
150150
CMultiCameraEventHandler m_cameraEventHandler;
151+
152+
153+
agora::rtc::RtcConnection connection;
151154
public:
152155
//Initialize the Agora SDK
153156
bool InitAgora();

windows/APIExample/APIExample/Advanced/MultiVideoSource/CAgoraMutilVideoSourceDlg.cpp

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
#include "CAgoraMutilVideoSourceDlg.h"
44

55

6-
76
IMPLEMENT_DYNAMIC(CAgoraMutilVideoSourceDlg, CDialogEx)
87

98
CAgoraMutilVideoSourceDlg::CAgoraMutilVideoSourceDlg(CWnd* pParent /*=nullptr*/)
@@ -55,7 +54,8 @@ void CAgoraMutilVideoSourceDlg::InitCtrlText()
5554
bool CAgoraMutilVideoSourceDlg::InitAgora()
5655
{
5756
//create Agora RTC engine
58-
m_rtcEngine = createAgoraRtcEngine();
57+
agora::rtc::IRtcEngine* engine = createAgoraRtcEngine();
58+
m_rtcEngine = (IRtcEngineEx*)engine;
5959
if (!m_rtcEngine) {
6060
m_lstInfo.InsertString(m_lstInfo.GetCount() - 1, _T("createAgoraRtcEngine failed"));
6161
return false;
@@ -103,7 +103,7 @@ void CAgoraMutilVideoSourceDlg::UnInitAgora()
103103
if (m_joinChannel) {
104104
//leave channel
105105
m_joinChannel = !m_rtcEngine->leaveChannel();
106-
m_rtcEngine->leaveChannelEx(m_strChannel.data(), m_conn_screen);
106+
m_rtcEngine->leaveChannelEx(connection);
107107
}
108108
m_bPublishScreen = false;
109109
//stop preview in the engine.
@@ -222,12 +222,18 @@ void CAgoraMutilVideoSourceDlg::OnBnClickedButtonJoinchannel()
222222
CString strInfo;
223223
CString strChannelName;
224224
m_edtChannel.GetWindowText(strChannelName);
225+
225226
std::string szChannelId = cs2utf8(strChannelName);
227+
228+
connection.channelId = szChannelId.data();
229+
226230
if (!m_joinChannel) {
227231
if (strChannelName.IsEmpty()) {
228232
AfxMessageBox(_T("Fill channel name first"));
229233
return;
230234
}
235+
236+
connection.localUid = generateUid();
231237
//camera
232238
agora::rtc::ChannelMediaOptions optionsCamera;
233239
optionsCamera.autoSubscribeAudio = true;
@@ -255,16 +261,16 @@ void CAgoraMutilVideoSourceDlg::OnBnClickedButtonJoinchannel()
255261
p->SetChannelId(m_vecVidoeSourceEventHandler.size());
256262
p->SetMsgReceiver(GetSafeHwnd());
257263
m_vecVidoeSourceEventHandler.push_back(p);
258-
if (0 == m_rtcEngine->joinChannelEx(APP_TOKEN, m_strChannel.c_str(), 0, options, p, &conn_id))
264+
if (0 == m_rtcEngine->joinChannelEx(APP_TOKEN,connection, options, p))
259265
{
260-
m_conn_screen = conn_id;
261-
p->SetConnectionId(conn_id);
266+
//m_conn_screen = conn_id;
267+
//p->SetConnectionId(conn_id);
262268
m_btnJoinChannel.EnableWindow(FALSE);
263269
}
264270
}
265271
else {
266272
m_rtcEngine->leaveChannel();
267-
m_rtcEngine->leaveChannelEx(m_strChannel.data(), m_conn_screen);
273+
m_rtcEngine->leaveChannelEx(connection);
268274
m_strChannel = "";
269275
}
270276
}
@@ -284,7 +290,8 @@ void CAgoraMutilVideoSourceDlg::OnBnClickedButtonPublish()
284290
options.publishAudioTrack = false;
285291
options.publishCameraTrack = false;
286292
options.clientRoleType = CLIENT_ROLE_BROADCASTER;
287-
m_rtcEngine->updateChannelMediaOptions(options, m_conn_screen);
293+
294+
m_rtcEngine->updateChannelMediaOptions(options);
288295
m_rtcEngine->startPreview();
289296
VideoCanvas canvas;
290297
canvas.uid = 0;
@@ -301,7 +308,7 @@ void CAgoraMutilVideoSourceDlg::OnBnClickedButtonPublish()
301308
options.publishAudioTrack = false;
302309
options.publishCameraTrack = false;
303310
options.clientRoleType = CLIENT_ROLE_BROADCASTER;
304-
m_rtcEngine->updateChannelMediaOptions(options, m_conn_screen);
311+
m_rtcEngine->updateChannelMediaOptions(options);
305312
m_rtcEngine->stopPreview();
306313
m_btnPublish.SetWindowText(MultiVideoSourceCtrlPublish);
307314
m_videoWnds[1].Invalidate();
@@ -365,8 +372,8 @@ LRESULT CAgoraMutilVideoSourceDlg::OnEIDUserJoined(WPARAM wParam, LPARAM lParam)
365372

366373
auto connid = m_vecVidoeSourceEventHandler[cId]->GetConnectionId();
367374
if (connid == agora::rtc::DEFAULT_CONNECTION_ID && (uid_t)wParam == m_screenUid) {
368-
m_rtcEngine->muteRemoteAudioStream((uid_t)wParam, true, connid);
369-
m_rtcEngine->muteRemoteVideoStream((uid_t)wParam, true, connid);
375+
m_rtcEngine->muteRemoteAudioStream((uid_t)wParam, true);
376+
m_rtcEngine->muteRemoteVideoStream((uid_t)wParam, true);
370377
}
371378

372379
CString strChannelName = utf82cs(m_vecVidoeSourceEventHandler[cId]->GetChannelName());

windows/APIExample/APIExample/Advanced/MultiVideoSource/CAgoraMutilVideoSourceDlg.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ class CAgoraMutilVideoSourceDlg : public CDialogEx
117117

118118
std::string m_strChannel;
119119

120-
agora::rtc::IRtcEngine* m_rtcEngine = nullptr;
120+
agora::rtc::IRtcEngineEx* m_rtcEngine = nullptr;
121121
std::vector<CAgoraMultiVideoSourceEventHandler *> m_vecVidoeSourceEventHandler;
122122
conn_id_t m_conn_screen;
123123
conn_id_t m_conn_camera;
@@ -126,6 +126,7 @@ class CAgoraMutilVideoSourceDlg : public CDialogEx
126126
CAGVideoWnd m_videoWnds[VIDOE_COUNT];
127127

128128
agora::rtc::uid_t m_screenUid = 0;
129+
agora::rtc::RtcConnection connection;
129130
protected:
130131
virtual void DoDataExchange(CDataExchange* pDX);
131132
// agora sdk message window handler

windows/APIExample/APIExample/Advanced/OriginalAudio/CAgoraOriginalAudioDlg.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,10 @@ bool COriginalAudioProcFrameObserver::onPlaybackAudioFrameBeforeMixing(media::ba
117117
return true;
118118
}
119119

120-
120+
bool COriginalAudioProcFrameObserver::onPlaybackAudioFrameBeforeMixing(rtc::uid_t uid, AudioFrame& audioFrame)
121+
{
122+
return true;
123+
}
121124
//Initialize the Ctrl Text.
122125
void CAgoraOriginalAudioDlg::InitCtrlText()
123126
{

0 commit comments

Comments
 (0)