diff --git a/Group-Video/OpenVideoCall-Android/app/build.gradle b/Group-Video/OpenVideoCall-Android/app/build.gradle
index 909fe9e2..36eb12ee 100644
--- a/Group-Video/OpenVideoCall-Android/app/build.gradle
+++ b/Group-Video/OpenVideoCall-Android/app/build.gradle
@@ -52,7 +52,7 @@ dependencies {
exclude group: 'com.google.android', module: 'android'
}
- implementation 'io.agora.rtc:full-sdk:2.9.2'
+ implementation 'io.agora.rtc:full-sdk:3.1.0'
androidTestImplementation 'com.android.support.test:rules:1.0.2'
androidTestImplementation 'com.jayway.android.robotium:robotium-solo:5.6.3'
}
diff --git a/Group-Video/OpenVideoCall-Android/app/src/main/java/io/agora/openvcall/ui/BaseActivity.java b/Group-Video/OpenVideoCall-Android/app/src/main/java/io/agora/openvcall/ui/BaseActivity.java
index d502a45c..6e0f833b 100644
--- a/Group-Video/OpenVideoCall-Android/app/src/main/java/io/agora/openvcall/ui/BaseActivity.java
+++ b/Group-Video/OpenVideoCall-Android/app/src/main/java/io/agora/openvcall/ui/BaseActivity.java
@@ -20,6 +20,7 @@
import io.agora.openvcall.model.*;
import io.agora.propeller.Constant;
import io.agora.rtc.RtcEngine;
+import io.agora.rtc.internal.EncryptionConfig;
import io.agora.rtc.video.VideoCanvas;
import io.agora.rtc.video.VideoEncoderConfiguration;
@@ -361,9 +362,18 @@ protected void disablePreProcessor() {
}
protected void configEngine(VideoEncoderConfiguration.VideoDimensions videoDimension, VideoEncoderConfiguration.FRAME_RATE fps, String encryptionKey, String encryptionMode) {
+ EncryptionConfig config = new EncryptionConfig();
if (!TextUtils.isEmpty(encryptionKey)) {
- rtcEngine().setEncryptionMode(encryptionMode);
- rtcEngine().setEncryptionSecret(encryptionKey);
+ config.encryptionKey = encryptionKey;
+
+ if(TextUtils.equals(encryptionMode, "AES-128-XTS")) {
+ config.encryptionMode = EncryptionConfig.EncryptionMode.AES_128_XTS;
+ } else if(TextUtils.equals(encryptionMode, "AES-256-XTS")) {
+ config.encryptionMode = EncryptionConfig.EncryptionMode.AES_256_XTS;
+ }
+ rtcEngine().enableEncryption(true, config);
+ } else {
+ rtcEngine().enableEncryption(false, config);
}
log.debug("configEngine " + videoDimension + " " + fps + " " + encryptionMode);
diff --git a/Group-Video/OpenVideoCall-Windows-MFC/Language/ChineseSimplified/ChineseSimplified.cpp b/Group-Video/OpenVideoCall-Windows-MFC/Language/ChineseSimplified/ChineseSimplified.cpp
index 78da8e07..91a97d95 100644
--- a/Group-Video/OpenVideoCall-Windows-MFC/Language/ChineseSimplified/ChineseSimplified.cpp
+++ b/Group-Video/OpenVideoCall-Windows-MFC/Language/ChineseSimplified/ChineseSimplified.cpp
@@ -35,14 +35,17 @@ CHINESESIMPLIFIED_API LPCTSTR IDS_PRE_BTNWEB = _T("Web-compatible");
CHINESESIMPLIFIED_API LPCTSTR IDS_CHN_KEYTIP = _T("¼ÓÃÜÃÜÔ¿");
CHINESESIMPLIFIED_API LPCTSTR IDS_CHN_ENCTYPE = _T("EncType:");
-CHINESESIMPLIFIED_API LPCTSTR IDS_CHN_AES128XTS = _T("aes-128");
+CHINESESIMPLIFIED_API LPCTSTR IDS_CHN_AES128XTS = _T("AES_128_XTS");
CHINESESIMPLIFIED_API LPCTSTR IDS_CHN_AES128GCM = _T("aes-128-gcm");
CHINESESIMPLIFIED_API LPCTSTR IDS_CHN_AES128CCM = _T("aes-128-ccm");
CHINESESIMPLIFIED_API LPCTSTR IDS_CHN_AES128CTR = _T("aes-128-ctr");
-CHINESESIMPLIFIED_API LPCTSTR IDS_CHN_AES256XTS = _T("aes-256");
+CHINESESIMPLIFIED_API LPCTSTR IDS_CHN_AES256XTS = _T("AES_256_XTS");
CHINESESIMPLIFIED_API LPCTSTR IDS_CHN_AES256GCM = _T("aes-256-gcm");
CHINESESIMPLIFIED_API LPCTSTR IDS_CHN_AES256CCM = _T("aes-256-ccm");
CHINESESIMPLIFIED_API LPCTSTR IDS_CHN_AES256CTR = _T("aes-256-ctr");
+CHINESESIMPLIFIED_API LPCTSTR IDS_CHN_SM4_128ECB = _T("SM4_128_ECB");
+CHINESESIMPLIFIED_API LPCTSTR IDS_CHN_AES_128_ECB = _T("AES_128_ECB");
+
CHINESESIMPLIFIED_API LPCTSTR IDS_SET_RESOLUTION = _T("·Ö±æÂÊ");
CHINESESIMPLIFIED_API LPCTSTR IDS_SET_MFR = _T("×î´óÖ¡ÂÊ");
diff --git a/Group-Video/OpenVideoCall-Windows-MFC/Language/ChineseSimplified/ChineseSimplified.h b/Group-Video/OpenVideoCall-Windows-MFC/Language/ChineseSimplified/ChineseSimplified.h
index 811549e9..b4e681dc 100644
--- a/Group-Video/OpenVideoCall-Windows-MFC/Language/ChineseSimplified/ChineseSimplified.h
+++ b/Group-Video/OpenVideoCall-Windows-MFC/Language/ChineseSimplified/ChineseSimplified.h
@@ -48,6 +48,8 @@ extern CHINESESIMPLIFIED_API LPCTSTR IDS_CHN_AES256XTS;
extern CHINESESIMPLIFIED_API LPCTSTR IDS_CHN_AES256GCM;
extern CHINESESIMPLIFIED_API LPCTSTR IDS_CHN_AES256CCM;
extern CHINESESIMPLIFIED_API LPCTSTR IDS_CHN_AES256CTR;
+extern CHINESESIMPLIFIED_API LPCTSTR IDS_CHN_AES_128_ECB;
+extern CHINESESIMPLIFIED_API LPCTSTR IDS_CHN_SM4_128ECB;
extern CHINESESIMPLIFIED_API LPCTSTR IDS_SET_RESOLUTION;
extern CHINESESIMPLIFIED_API LPCTSTR IDS_SET_MFR;
diff --git a/Group-Video/OpenVideoCall-Windows-MFC/Language/ChineseSimplified/Source.def b/Group-Video/OpenVideoCall-Windows-MFC/Language/ChineseSimplified/Source.def
index ebb6cb8a..b80ed295 100644
--- a/Group-Video/OpenVideoCall-Windows-MFC/Language/ChineseSimplified/Source.def
+++ b/Group-Video/OpenVideoCall-Windows-MFC/Language/ChineseSimplified/Source.def
@@ -37,6 +37,8 @@ IDS_CHN_AES256XTS DATA;
IDS_CHN_AES256GCM DATA;
IDS_CHN_AES256CCM DATA;
IDS_CHN_AES256CTR DATA;
+IDS_CHN_AES_128_ECB DATA;
+IDS_CHN_SM4_128ECB DATA;
IDS_SET_RESOLUTION DATA;
IDS_SET_MFR DATA;
diff --git a/Group-Video/OpenVideoCall-Windows-MFC/Language/English/English.cpp b/Group-Video/OpenVideoCall-Windows-MFC/Language/English/English.cpp
index ecc56032..c8fec3ce 100644
--- a/Group-Video/OpenVideoCall-Windows-MFC/Language/English/English.cpp
+++ b/Group-Video/OpenVideoCall-Windows-MFC/Language/English/English.cpp
@@ -35,14 +35,16 @@ ENGLISH_API LPCTSTR IDS_CHN_CHTIP = _T("ChannelName");
ENGLISH_API LPCTSTR IDS_CHN_KEYTIP = _T("EncryptionKey");
ENGLISH_API LPCTSTR IDS_CHN_ENCTYPE = _T("EncType:");
-ENGLISH_API LPCTSTR IDS_CHN_AES128XTS = _T("aes-128");
+ENGLISH_API LPCTSTR IDS_CHN_AES128XTS = _T("AES_128_XTS");
ENGLISH_API LPCTSTR IDS_CHN_AES128GCM = _T("aes-128-gcm");
ENGLISH_API LPCTSTR IDS_CHN_AES128CCM = _T("aes-128-ccm");
ENGLISH_API LPCTSTR IDS_CHN_AES128CTR = _T("aes-128-ctr");
-ENGLISH_API LPCTSTR IDS_CHN_AES256XTS = _T("aes-256");
+ENGLISH_API LPCTSTR IDS_CHN_AES256XTS = _T("AES_256_XTS");
ENGLISH_API LPCTSTR IDS_CHN_AES256GCM = _T("aes-256-gcm");
ENGLISH_API LPCTSTR IDS_CHN_AES256CCM = _T("aes-256-ccm");
ENGLISH_API LPCTSTR IDS_CHN_AES256CTR = _T("aes-256-ctr");
+ENGLISH_API LPCTSTR IDS_CHN_SM4_128ECB = _T("SM4_128_ECB");
+ENGLISH_API LPCTSTR IDS_CHN_AES_128_ECB = _T("AES_128_ECB");
ENGLISH_API LPCTSTR IDS_SET_RESOLUTION = _T("Resolution");
ENGLISH_API LPCTSTR IDS_SET_MFR = _T("Max Frame rate");
diff --git a/Group-Video/OpenVideoCall-Windows-MFC/Language/English/English.h b/Group-Video/OpenVideoCall-Windows-MFC/Language/English/English.h
index 720907e3..728bc32c 100644
--- a/Group-Video/OpenVideoCall-Windows-MFC/Language/English/English.h
+++ b/Group-Video/OpenVideoCall-Windows-MFC/Language/English/English.h
@@ -49,6 +49,8 @@ extern ENGLISH_API LPCTSTR IDS_CHN_AES256XTS;
extern ENGLISH_API LPCTSTR IDS_CHN_AES256GCM;
extern ENGLISH_API LPCTSTR IDS_CHN_AES256CCM;
extern ENGLISH_API LPCTSTR IDS_CHN_AES256CTR;
+extern ENGLISH_API LPCTSTR IDS_CHN_AES_128_ECB;
+extern ENGLISH_API LPCTSTR IDS_CHN_SM4_128ECB;
extern ENGLISH_API LPCTSTR IDS_SET_RESOLUTION;
extern ENGLISH_API LPCTSTR IDS_SET_MFR;
diff --git a/Group-Video/OpenVideoCall-Windows-MFC/Language/English/Source.def b/Group-Video/OpenVideoCall-Windows-MFC/Language/English/Source.def
index d1e513ec..82d26c22 100644
--- a/Group-Video/OpenVideoCall-Windows-MFC/Language/English/Source.def
+++ b/Group-Video/OpenVideoCall-Windows-MFC/Language/English/Source.def
@@ -37,6 +37,8 @@ IDS_CHN_AES256XTS DATA;
IDS_CHN_AES256GCM DATA;
IDS_CHN_AES256CCM DATA;
IDS_CHN_AES256CTR DATA;
+IDS_CHN_AES_128_ECB DATA;
+IDS_CHN_SM4_128ECB DATA;
IDS_SET_RESOLUTION DATA;
IDS_SET_MFR DATA;
diff --git a/Group-Video/OpenVideoCall-Windows-MFC/OpenVideoCall/AgoraObject.cpp b/Group-Video/OpenVideoCall-Windows-MFC/OpenVideoCall/AgoraObject.cpp
index 96c623ae..38f6830b 100644
--- a/Group-Video/OpenVideoCall-Windows-MFC/OpenVideoCall/AgoraObject.cpp
+++ b/Group-Video/OpenVideoCall-Windows-MFC/OpenVideoCall/AgoraObject.cpp
@@ -541,6 +541,12 @@ BOOL CAgoraObject::SetEncryptionSecret(LPCTSTR lpKey, int nEncryptType)
return nRet == 0 ? TRUE : FALSE;
}
+BOOL CAgoraObject::EnableEncryption(bool enabled, const EncryptionConfig & config)
+{
+ int nRet = m_lpAgoraEngine->enableEncryption(enabled, config);
+ return nRet == 0 ? TRUE : FALSE;
+}
+
BOOL CAgoraObject::EnableLocalRender(BOOL bEnable)
{
int nRet = 0;
diff --git a/Group-Video/OpenVideoCall-Windows-MFC/OpenVideoCall/AgoraObject.h b/Group-Video/OpenVideoCall-Windows-MFC/OpenVideoCall/AgoraObject.h
index 03cef665..1799ae59 100644
--- a/Group-Video/OpenVideoCall-Windows-MFC/OpenVideoCall/AgoraObject.h
+++ b/Group-Video/OpenVideoCall-Windows-MFC/OpenVideoCall/AgoraObject.h
@@ -93,6 +93,8 @@ class CAgoraObject
BOOL SetEncryptionSecret(LPCTSTR lpKey, int nEncryptType = 0);
+ BOOL EnableEncryption(bool enabled, const EncryptionConfig& config);
+
BOOL EnableLocalRender(BOOL bEnable);
int CreateMessageStream();
diff --git a/Group-Video/OpenVideoCall-Windows-MFC/OpenVideoCall/EnterChannelDlg.cpp b/Group-Video/OpenVideoCall-Windows-MFC/OpenVideoCall/EnterChannelDlg.cpp
index f76ef085..a51822a6 100644
--- a/Group-Video/OpenVideoCall-Windows-MFC/OpenVideoCall/EnterChannelDlg.cpp
+++ b/Group-Video/OpenVideoCall-Windows-MFC/OpenVideoCall/EnterChannelDlg.cpp
@@ -107,6 +107,8 @@ void CEnterChannelDlg::InitCtrls()
m_cmbEncType.SetFaceColor(RGB(0xFF, 0xFF, 0xFF), RGB(0xFF, 0xFF, 0xFF));
m_cmbEncType.InsertString(0, LANG_STR("IDS_CHN_AES128XTS"));
m_cmbEncType.InsertString(1, LANG_STR("IDS_CHN_AES256XTS"));
+ m_cmbEncType.InsertString(2, LANG_STR("IDS_CHN_AES_128_ECB"));
+ m_cmbEncType.InsertString(3, LANG_STR("IDS_CHN_SM4_128ECB"));
m_cmbEncType.SetCurSel(0);
m_btnJoin.MoveWindow(ClientRect.Width() / 2 - 180, 212, 360, 36, TRUE);
@@ -196,7 +198,18 @@ void CEnterChannelDlg::OnBnClickedBtnjoinChannel()
m_ctrEncKey.GetWindowText(strKey);
if (strKey.GetLength() > 0)
- CAgoraObject::GetAgoraObject()->SetEncryptionSecret(strKey, m_cmbEncType.GetCurSel());
+ {
+ // configuration of encrypt
+ EncryptionConfig config;
+ // set encrypt mode
+ config.encryptionMode = ENCRYPTION_MODE(m_cmbEncType.GetCurSel() + 1);
+ // set encrypt key
+ char szKey[520] = { 0 };
+ WideCharToMultiByte(CP_UTF8, 0, strKey.GetBuffer(0), strKey.GetLength(), szKey, 520, NULL, NULL);
+ config.encryptionKey = szKey;
+ // EnableEncryption of engine.
+ CAgoraObject::GetAgoraObject()->EnableEncryption(true, config);
+ }
GetParent()->SendMessage(WM_JOINCHANNEL, 0, 0);
}
diff --git a/Group-Video/OpenVideoCall-Windows-MFC/OpenVideoCall/OpenVideoCall.vcxproj b/Group-Video/OpenVideoCall-Windows-MFC/OpenVideoCall/OpenVideoCall.vcxproj
index 8e3e87b7..017fa254 100644
--- a/Group-Video/OpenVideoCall-Windows-MFC/OpenVideoCall/OpenVideoCall.vcxproj
+++ b/Group-Video/OpenVideoCall-Windows-MFC/OpenVideoCall/OpenVideoCall.vcxproj
@@ -22,7 +22,7 @@
{26AF88DC-1933-4A1B-9991-21DF11DCE388}
AgoraVideoCall
MFCProj
- 7.0
+ 8.1
diff --git a/Group-Video/OpenVideoCall-Windows/OpenVideoCall.pro b/Group-Video/OpenVideoCall-Windows/OpenVideoCall.pro
index 2977ed7c..6139c8f9 100644
--- a/Group-Video/OpenVideoCall-Windows/OpenVideoCall.pro
+++ b/Group-Video/OpenVideoCall-Windows/OpenVideoCall.pro
@@ -94,7 +94,7 @@ CONFIG(debug, debug|release) {
QMAKE_POST_LINK += copy $${AGORASDKDLLPATH}\*.dll .\Debug
} else {
QMAKE_POST_LINK += copy $${AGORASDKDLLPATH}\*.dll .\Release
- QMAKE_POST_LINK += && windeployqt Release\OpenLive.exe
+ QMAKE_POST_LINK += && windeployqt Release\OpenVideoCall.exe
}
}
diff --git a/Group-Video/OpenVideoCall-Windows/OpenVideoCall.vcxproj b/Group-Video/OpenVideoCall-Windows/OpenVideoCall.vcxproj
new file mode 100644
index 00000000..f8e56ec7
--- /dev/null
+++ b/Group-Video/OpenVideoCall-Windows/OpenVideoCall.vcxproj
@@ -0,0 +1,451 @@
+
+
+
+
+ Release
+ Win32
+
+
+ Debug
+ Win32
+
+
+
+ {0A6A7D3D-5B72-3853-9CAE-A5DF28CBA9B3}
+ OpenVideoCall
+ QtVS_v303
+ 10.0.19041.0
+ 10.0.19041.0
+ $(MSBuildProjectDirectory)\QtMsBuild
+
+
+ v141
+ release\
+ false
+ NotSet
+ Application
+ release\
+ OpenVideoCall
+
+
+ v141
+ debug\
+ false
+ NotSet
+ Application
+ debug\
+ OpenVideoCall
+
+
+
+
+
+
+
+
+
+ debug\debug\OpenVideoCalltruetruerelease\release\OpenVideoCalltruefalsetrueQT_5.12_x86core;network;gui;widgets;qml;quickwidgets;quickQT_5.12_x86core;network;gui;widgets;qml;quickwidgets;quick
+
+
+
+ .\GeneratedFiles\$(ConfigurationName);.\GeneratedFiles;.;./../../libs/include;release;/include;%(AdditionalIncludeDirectories)
+ -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 %(AdditionalOptions)
+ release\
+ false
+ None
+ 4577;4467;%(DisableSpecificWarnings)
+ Sync
+ release\
+ MaxSpeed
+ _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_NO_DEBUG;NDEBUG;%(PreprocessorDefinitions)
+ false
+
+ MultiThreadedDLL
+ true
+ true
+ Level3
+ true
+
+ agora_rtc_sdk.lib;User32.LIB;shell32.lib;%(AdditionalDependencies)
+ D:\AgoraIO\basic-video-call\libs\x86;C:\opensslx86\lib;C:\Utils\my_sql\mysql-5.6.11-win32\lib;C:\Utils\postgresqlx86\pgsql\lib;%(AdditionalLibraryDirectories)
+ "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions)
+ true
+ false
+ true
+ false
+ $(OutDir)\OpenVideoCall.exe
+ true
+ Windows
+ true
+
+
+ Unsigned
+ None
+ 0
+
+
+ _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_NO_DEBUG;QT_QUICKWIDGETS_LIB;QT_QUICK_LIB;QT_WIDGETS_LIB;QT_GUI_LIB;QT_QML_LIB;QT_NETWORK_LIB;QT_CORE_LIB;%(PreprocessorDefinitions)
+
+
+ copy ..\..\libs\x86\*.dll .\Release && windeployqt Release\OpenVideoCall.exe
+ copy ..\..\libs\x86\*.dll .\Release && windeployqt Release\OpenVideoCall.exe
+
+ msvc./$(Configuration)/moc_predefs.hMoc'ing %(Identity)...output$(Configuration)moc_%(Filename).cppopenvideocalldefaultRcc'ing %(Identity)...$(Configuration)qrc_%(Filename).cppUic'ing %(Identity)...$(ProjectDir)ui_%(Filename).h
+
+
+ .\GeneratedFiles\$(ConfigurationName);.\GeneratedFiles;.;./../../libs/include;debug;/include;%(AdditionalIncludeDirectories)
+ -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 %(AdditionalOptions)
+ debug\
+ false
+ ProgramDatabase
+ 4577;4467;%(DisableSpecificWarnings)
+ Sync
+ debug\
+ Disabled
+ _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;%(PreprocessorDefinitions)
+ false
+ MultiThreadedDebugDLL
+ true
+ true
+ Level3
+ true
+
+ agora_rtc_sdk.lib;User32.LIB;shell32.lib;%(AdditionalDependencies)
+ D:\AgoraIO\basic-video-call\libs\x86;C:\opensslx86\lib;C:\Utils\my_sql\mysql-5.6.11-win32\lib;C:\Utils\postgresqlx86\pgsql\lib;%(AdditionalLibraryDirectories)
+ "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions)
+ true
+ true
+ true
+ $(OutDir)\OpenVideoCall.exe
+ true
+ Windows
+ true
+
+
+ Unsigned
+ None
+ 0
+
+
+ _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_QUICKWIDGETS_LIB;QT_QUICK_LIB;QT_WIDGETS_LIB;QT_GUI_LIB;QT_QML_LIB;QT_NETWORK_LIB;QT_CORE_LIB;_DEBUG;%(PreprocessorDefinitions)
+
+
+ copy ..\..\libs\x86\*.dll .\Debug
+ copy ..\..\libs\x86\*.dll .\Debug
+
+ msvc./$(Configuration)/moc_predefs.hMoc'ing %(Identity)...output$(Configuration)moc_%(Filename).cppopenvideocalldefaultRcc'ing %(Identity)...$(Configuration)qrc_%(Filename).cppUic'ing %(Identity)...$(ProjectDir)ui_%(Filename).h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Document
+ true
+ $(QTDIR)\mkspecs\features\data\dummy.cpp;%(AdditionalInputs)
+ cl -Bx"$(QTDIR)\bin\qmake.exe" -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -Zi -MDd -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2>NUL >debug\moc_predefs.h
+ Generate moc_predefs.h
+ debug\moc_predefs.h;%(Outputs)
+
+
+ Document
+ $(QTDIR)\mkspecs\features\data\dummy.cpp;%(AdditionalInputs)
+ cl -Bx"$(QTDIR)\bin\qmake.exe" -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -O2 -MD -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2>NUL >release\moc_predefs.h
+ Generate moc_predefs.h
+ release\moc_predefs.h;%(Outputs)
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Group-Video/OpenVideoCall-Windows/OpenVideoCall.vcxproj.filters b/Group-Video/OpenVideoCall-Windows/OpenVideoCall.vcxproj.filters
new file mode 100644
index 00000000..64baa69d
--- /dev/null
+++ b/Group-Video/OpenVideoCall-Windows/OpenVideoCall.vcxproj.filters
@@ -0,0 +1,386 @@
+
+
+
+
+ {99349809-55BA-4b9d-BF79-8FDBB0286EB3}
+ ui
+ false
+
+
+ {99349809-55BA-4b9d-BF79-8FDBB0286EB3}
+ ui
+ false
+
+
+ {71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}
+ cpp;c;cxx;moc;h;def;odl;idl;res;
+
+
+ {71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}
+ cpp;c;cxx;moc;h;def;odl;idl;res;
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hpp;hxx;hm;inl;inc;xsd
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hpp;hxx;hm;inl;inc;xsd
+
+
+ {D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}
+ qrc;*
+ false
+
+
+ {D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}
+ qrc;*
+ false
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {B83CAF91-C7BF-462F-B76C-EA11631F866C}
+ *
+ false
+
+
+ {B83CAF91-C7BF-462F-B76C-EA11631F866C}
+ *
+ false
+
+
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Generated Files
+
+
+ Generated Files
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form Files
+
+
+ Form Files
+
+
+ Form Files
+
+
+ Form Files
+
+
+ Form Files
+
+
+ Form Files
+
+
+ Form Files
+
+
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+
+
+ Distribution Files
+
+
+ Distribution Files
+
+
+ Distribution Files
+
+
+ Distribution Files
+
+
+ Distribution Files
+
+
+ Distribution Files
+
+
+ Distribution Files
+
+
+ Distribution Files
+
+
+ Distribution Files
+
+
+ Distribution Files
+
+
+ Distribution Files
+
+
+ Distribution Files
+
+
+ Distribution Files
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Group-Video/OpenVideoCall-Windows/agoraobject.cpp b/Group-Video/OpenVideoCall-Windows/agoraobject.cpp
index 386543de..c0b3eaa6 100644
--- a/Group-Video/OpenVideoCall-Windows/agoraobject.cpp
+++ b/Group-Video/OpenVideoCall-Windows/agoraobject.cpp
@@ -480,6 +480,12 @@ BOOL CAgoraObject::SetEncryptionMode(const char* secret,const char* secretMode)
return nRet == 0 ? TRUE : FALSE;
}
+BOOL CAgoraObject::EnableEncryption(bool enabled, const EncryptionConfig & config)
+{
+ int nRet = m_lpAgoraEngine->enableEncryption(enabled, config);
+ return nRet == 0 ? TRUE : FALSE;
+}
+
// Sets the type of log that are allowed [Debug, Info, warning, error, critical]
BOOL CAgoraObject::SetLogFilter(LOG_FILTER_TYPE logFilterType, LPCTSTR lpLogPath)
{
diff --git a/Group-Video/OpenVideoCall-Windows/agoraobject.h b/Group-Video/OpenVideoCall-Windows/agoraobject.h
index d4148291..5fc7f463 100644
--- a/Group-Video/OpenVideoCall-Windows/agoraobject.h
+++ b/Group-Video/OpenVideoCall-Windows/agoraobject.h
@@ -39,6 +39,7 @@ class CAgoraObject:public QObject
BOOL MuteLocalVideo(BOOL bMute);
BOOL MuteLocalAudio(BOOL bMute);
BOOL SetEncryptionMode(const char* secret,const char* secretMode);
+ BOOL EnableEncryption(bool enabled, const EncryptionConfig& config);
BOOL setLogPath(const QString &strDir);
BOOL SetChannelProfile(CHANNEL_PROFILE_TYPE channelType);
diff --git a/Group-Video/OpenVideoCall-Windows/openvideocall.cpp b/Group-Video/OpenVideoCall-Windows/openvideocall.cpp
index 3dfe4f83..f4393569 100644
--- a/Group-Video/OpenVideoCall-Windows/openvideocall.cpp
+++ b/Group-Video/OpenVideoCall-Windows/openvideocall.cpp
@@ -33,9 +33,10 @@ void OpenVideoCall::initWindow()
CAgoraObject::getInstance()->EnableWebSdkInteroperability(true);
CAgoraObject::getInstance()->SetChannelProfile(CHANNEL_PROFILE_COMMUNICATION);
- ui->com_encryp->addItem("aes-128-xts");
- ui->com_encryp->addItem("aes-128-ecb");
- ui->com_encryp->addItem("aes-256-xts");
+ ui->com_encryp->addItem("AES-128-XTS");
+ ui->com_encryp->addItem("AES-256-XTS");
+ ui->com_encryp->addItem("AES-128-ECB");
+ ui->com_encryp->addItem("SM4-128-ECB");
ui->com_encryp->setCurrentIndex(0);
}
@@ -111,8 +112,15 @@ void OpenVideoCall::on_btn_join_clicked()
QString qsEncrypSecret = ui->led_key->text();
QString qsEncrypMode = ui->com_encryp->currentText();
- CAgoraObject::getInstance()->SetEncryptionMode(qsEncrypSecret.toUtf8().data(),qsEncrypMode.toUtf8().data());
+ // configuration of encrypt
+ EncryptionConfig config;
+ // set encrypt mode
+ config.encryptionMode = ui->com_encryp->currentIndex();
+ // set encrypt key
+ config.encryptionKey = qsEncrypSecret.toUtf8().data();
+ // EnableEncryption of engine.
+ CAgoraObject::getInstance()->EnableEncryption(true, config);
m_upInRoom.reset(new InRoom());
QString token = APP_TOKEN;
if(token.isEmpty())
@@ -123,7 +131,14 @@ void OpenVideoCall::on_btn_join_clicked()
void OpenVideoCall::on_com_encryp_currentIndexChanged(const QString &arg1)
{
QString qsEncrypSecret = ui->led_key->text();
- CAgoraObject::getInstance()->SetEncryptionMode(qsEncrypSecret.toUtf8().data(),arg1.toUtf8().data());
+ // configuration of encrypt
+ EncryptionConfig config;
+ // set encrypt mode
+ config.encryptionMode = ui->com_encryp->currentIndex();
+ // set encrypt key
+ config.encryptionKey = qsEncrypSecret.toUtf8().data();
+ // EnableEncryption of engine.
+ CAgoraObject::getInstance()->EnableEncryption(true, config);
}
diff --git a/Group-Video/OpenVideoCall-iOS-Objective-C/OpenVideoCall.xcodeproj/project.pbxproj b/Group-Video/OpenVideoCall-iOS-Objective-C/OpenVideoCall.xcodeproj/project.pbxproj
index dde75c4b..fba33740 100644
--- a/Group-Video/OpenVideoCall-iOS-Objective-C/OpenVideoCall.xcodeproj/project.pbxproj
+++ b/Group-Video/OpenVideoCall-iOS-Objective-C/OpenVideoCall.xcodeproj/project.pbxproj
@@ -292,7 +292,7 @@
TargetAttributes = {
076C59711DDDBC3500F813E2 = {
CreatedOnToolsVersion = 8.1;
- DevelopmentTeam = SW3CA7M752;
+ DevelopmentTeam = GM72UGLGZW;
ProvisioningStyle = Manual;
};
};
@@ -495,9 +495,9 @@
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CODE_SIGN_IDENTITY = "iPhone Developer: Yuhua Gong (YBKA3W5TF4)";
+ CODE_SIGN_IDENTITY = "Apple Development: Qianze Zhang (3C9KJFP729)";
CODE_SIGN_STYLE = Manual;
- DEVELOPMENT_TEAM = SW3CA7M752;
+ DEVELOPMENT_TEAM = GM72UGLGZW;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -513,7 +513,7 @@
PRODUCT_BUNDLE_IDENTIFIER = io.agora.OpenVideoCall;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "dc253ab3-71e4-40a3-a57c-a3a763407202";
- PROVISIONING_PROFILE_SPECIFIER = AgoraAppsDevProfile;
+ PROVISIONING_PROFILE_SPECIFIER = App;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
@@ -522,9 +522,9 @@
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CODE_SIGN_IDENTITY = "iPhone Developer: Yuhua Gong (YBKA3W5TF4)";
+ CODE_SIGN_IDENTITY = "Apple Development: Qianze Zhang (3C9KJFP729)";
CODE_SIGN_STYLE = Manual;
- DEVELOPMENT_TEAM = SW3CA7M752;
+ DEVELOPMENT_TEAM = GM72UGLGZW;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -540,7 +540,7 @@
PRODUCT_BUNDLE_IDENTIFIER = io.agora.OpenVideoCall;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "dc253ab3-71e4-40a3-a57c-a3a763407202";
- PROVISIONING_PROFILE_SPECIFIER = AgoraAppsDevProfile;
+ PROVISIONING_PROFILE_SPECIFIER = App;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
diff --git a/Group-Video/OpenVideoCall-iOS-Objective-C/OpenVideoCall/Encryption.h b/Group-Video/OpenVideoCall-iOS-Objective-C/OpenVideoCall/Encryption.h
index d791d738..05db14e9 100644
--- a/Group-Video/OpenVideoCall-iOS-Objective-C/OpenVideoCall/Encryption.h
+++ b/Group-Video/OpenVideoCall-iOS-Objective-C/OpenVideoCall/Encryption.h
@@ -7,6 +7,7 @@
//
#import
+#import
typedef NS_ENUM(int, EncryptionType) {
EncryptionTypeXTS128,
@@ -16,6 +17,7 @@ typedef NS_ENUM(int, EncryptionType) {
@interface Encryption : NSObject
@property (nonatomic, copy, readonly) NSString *modeString;
+@property (nonatomic, readonly) AgoraEncryptionMode modeValue;
@property (nonatomic, copy, readonly) NSString *description;
@property (nonatomic, assign) EncryptionType type;
@property (nonatomic, copy) NSString *secret;
diff --git a/Group-Video/OpenVideoCall-iOS-Objective-C/OpenVideoCall/Encryption.m b/Group-Video/OpenVideoCall-iOS-Objective-C/OpenVideoCall/Encryption.m
index 5ed5dced..2a051b4e 100644
--- a/Group-Video/OpenVideoCall-iOS-Objective-C/OpenVideoCall/Encryption.m
+++ b/Group-Video/OpenVideoCall-iOS-Objective-C/OpenVideoCall/Encryption.m
@@ -7,6 +7,7 @@
//
#import "Encryption.h"
+#import
@implementation Encryption
- (NSString *)modeString {
@@ -17,6 +18,18 @@ - (NSString *)modeString {
}
}
+- (AgoraEncryptionMode)modeValue {
+ switch (_type) {
+ case EncryptionTypeXTS128:
+ return AgoraEncryptionModeAES128XTS;
+ break;
+ case EncryptionTypeXTS256:
+ return AgoraEncryptionModeAES256XTS;
+ default:
+ return AgoraEncryptionModeAES128XTS;
+ }
+}
+
- (NSString *)description {
switch (_type) {
case EncryptionTypeXTS128: return @"AES 128"; break;
diff --git a/Group-Video/OpenVideoCall-iOS-Objective-C/OpenVideoCall/RoomViewController.m b/Group-Video/OpenVideoCall-iOS-Objective-C/OpenVideoCall/RoomViewController.m
index b089aeff..0ff8fdf7 100644
--- a/Group-Video/OpenVideoCall-iOS-Objective-C/OpenVideoCall/RoomViewController.m
+++ b/Group-Video/OpenVideoCall-iOS-Objective-C/OpenVideoCall/RoomViewController.m
@@ -270,8 +270,10 @@ - (void)loadAgoraKit {
// Step 4, enable encryption mode
if (self.settings.encryption.type != EncryptionTypeNone && self.settings.encryption.secret.length) {
- [self.agoraKit setEncryptionMode:self.settings.encryption.modeString];
- [self.agoraKit setEncryptionSecret:self.settings.encryption.secret];
+ AgoraEncryptionConfig* config = [AgoraEncryptionConfig new];
+ config.encryptionMode = self.settings.encryption.modeValue;
+ config.encryptionKey = self.settings.encryption.secret;
+ [self.agoraKit enableEncryption:true encryptionConfig:config];
}
// Step 5, join channel and start group chat
diff --git a/Group-Video/OpenVideoCall-iOS-Objective-C/exportPlist.plist b/Group-Video/OpenVideoCall-iOS-Objective-C/exportPlist.plist
index 0b85fe99..f5b3f00e 100644
--- a/Group-Video/OpenVideoCall-iOS-Objective-C/exportPlist.plist
+++ b/Group-Video/OpenVideoCall-iOS-Objective-C/exportPlist.plist
@@ -9,7 +9,7 @@
provisioningProfiles
io.agora.OpenVideoCall
- AgoraAppsDevProfile
+ App
diff --git a/Group-Video/OpenVideoCall-iOS/OpenVideoCall.xcodeproj/project.pbxproj b/Group-Video/OpenVideoCall-iOS/OpenVideoCall.xcodeproj/project.pbxproj
index 84c32693..fa9c1a09 100644
--- a/Group-Video/OpenVideoCall-iOS/OpenVideoCall.xcodeproj/project.pbxproj
+++ b/Group-Video/OpenVideoCall-iOS/OpenVideoCall.xcodeproj/project.pbxproj
@@ -276,7 +276,7 @@
TargetAttributes = {
07F52EB01D62F39D006DDCD4 = {
CreatedOnToolsVersion = 7.3.1;
- DevelopmentTeam = SW3CA7M752;
+ DevelopmentTeam = GM72UGLGZW;
LastSwiftMigration = 1000;
ProvisioningStyle = Manual;
SystemCapabilities = {
@@ -490,9 +490,9 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
- CODE_SIGN_IDENTITY = "iPhone Developer: Yuhua Gong (YBKA3W5TF4)";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Yuhua Gong (YBKA3W5TF4)";
- DEVELOPMENT_TEAM = SW3CA7M752;
+ CODE_SIGN_IDENTITY = "Apple Development: Qianze Zhang (3C9KJFP729)";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development: Qianze Zhang (3C9KJFP729)";
+ DEVELOPMENT_TEAM = GM72UGLGZW;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -508,7 +508,7 @@
PRODUCT_BUNDLE_IDENTIFIER = io.agora.OpenVideoCall;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "";
- PROVISIONING_PROFILE_SPECIFIER = AgoraAppsDevProfile;
+ PROVISIONING_PROFILE_SPECIFIER = App;
SWIFT_OBJC_BRIDGING_HEADER = "";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
@@ -522,9 +522,9 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
- CODE_SIGN_IDENTITY = "iPhone Developer: Yuhua Gong (YBKA3W5TF4)";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Yuhua Gong (YBKA3W5TF4)";
- DEVELOPMENT_TEAM = SW3CA7M752;
+ CODE_SIGN_IDENTITY = "Apple Development: Qianze Zhang (3C9KJFP729)";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development: Qianze Zhang (3C9KJFP729)";
+ DEVELOPMENT_TEAM = GM72UGLGZW;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -540,7 +540,7 @@
PRODUCT_BUNDLE_IDENTIFIER = io.agora.OpenVideoCall;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "";
- PROVISIONING_PROFILE_SPECIFIER = AgoraAppsDevProfile;
+ PROVISIONING_PROFILE_SPECIFIER = App;
SWIFT_OBJC_BRIDGING_HEADER = "";
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
SWIFT_VERSION = 4.2;
diff --git a/Group-Video/OpenVideoCall-iOS/OpenVideoCall/EncryptionType.swift b/Group-Video/OpenVideoCall-iOS/OpenVideoCall/EncryptionType.swift
index 6325d97a..6ccab4bf 100644
--- a/Group-Video/OpenVideoCall-iOS/OpenVideoCall/EncryptionType.swift
+++ b/Group-Video/OpenVideoCall-iOS/OpenVideoCall/EncryptionType.swift
@@ -6,6 +6,7 @@
// Copyright © 2016年 Agora. All rights reserved.
//
+import AgoraRtcKit
enum EncryptionType {
case xts128(String?), xts256(String?)
@@ -35,6 +36,15 @@ enum EncryptionType {
}
}
+ func modeValue() -> AgoraEncryptionMode {
+ switch self {
+ case .xts128:
+ return .AES128XTS
+ case .xts256:
+ return .AES256XTS
+ }
+ }
+
func description() -> String {
switch self {
case .xts128: return "AES 128"
diff --git a/Group-Video/OpenVideoCall-iOS/OpenVideoCall/RoomViewController.swift b/Group-Video/OpenVideoCall-iOS/OpenVideoCall/RoomViewController.swift
index 633b66f0..ae9c9041 100644
--- a/Group-Video/OpenVideoCall-iOS/OpenVideoCall/RoomViewController.swift
+++ b/Group-Video/OpenVideoCall-iOS/OpenVideoCall/RoomViewController.swift
@@ -222,8 +222,10 @@ private extension RoomViewController {
// Step 4, enable encryption mode
if let type = settings.encryptionType, let text = type.text, !text.isEmpty {
- agoraKit.setEncryptionMode(type.modeString())
- agoraKit.setEncryptionSecret(text)
+ let config = AgoraEncryptionConfig()
+ config.encryptionKey = text
+ config.encryptionMode = type.modeValue()
+ agoraKit.enableEncryption(true, encryptionConfig: config)
}
// Step 5, join channel and start group chat
diff --git a/Group-Video/OpenVideoCall-iOS/exportPlist.plist b/Group-Video/OpenVideoCall-iOS/exportPlist.plist
index 0b85fe99..f5b3f00e 100644
--- a/Group-Video/OpenVideoCall-iOS/exportPlist.plist
+++ b/Group-Video/OpenVideoCall-iOS/exportPlist.plist
@@ -9,7 +9,7 @@
provisioningProfiles
io.agora.OpenVideoCall
- AgoraAppsDevProfile
+ App
diff --git a/One-to-One-Video/Agora-iOS-Tutorial-Objective-C-1to1/Agora-iOS-Tutorial-Objective-C.xcodeproj/project.pbxproj b/One-to-One-Video/Agora-iOS-Tutorial-Objective-C-1to1/Agora-iOS-Tutorial-Objective-C.xcodeproj/project.pbxproj
index ff50fde6..7d4f99c4 100755
--- a/One-to-One-Video/Agora-iOS-Tutorial-Objective-C-1to1/Agora-iOS-Tutorial-Objective-C.xcodeproj/project.pbxproj
+++ b/One-to-One-Video/Agora-iOS-Tutorial-Objective-C-1to1/Agora-iOS-Tutorial-Objective-C.xcodeproj/project.pbxproj
@@ -168,7 +168,7 @@
TargetAttributes = {
1A8E8D371D396CAA002FA67C = {
CreatedOnToolsVersion = 7.3.1;
- DevelopmentTeam = SW3CA7M752;
+ DevelopmentTeam = GM72UGLGZW;
ProvisioningStyle = Manual;
SystemCapabilities = {
com.apple.BackgroundModes = {
@@ -354,9 +354,9 @@
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CODE_SIGN_IDENTITY = "iPhone Developer: Yuhua Gong (YBKA3W5TF4)";
+ CODE_SIGN_IDENTITY = "Apple Development: Qianze Zhang (3C9KJFP729)";
CODE_SIGN_STYLE = Manual;
- DEVELOPMENT_TEAM = SW3CA7M752;
+ DEVELOPMENT_TEAM = GM72UGLGZW;
ENABLE_BITCODE = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -371,7 +371,7 @@
);
PRODUCT_BUNDLE_IDENTIFIER = "io.agora.Agora-iOS-Tutorial-Objective-C";
PRODUCT_NAME = "$(TARGET_NAME)";
- PROVISIONING_PROFILE_SPECIFIER = AgoraAppsDevProfile;
+ PROVISIONING_PROFILE_SPECIFIER = App;
};
name = Debug;
};
@@ -379,9 +379,9 @@
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CODE_SIGN_IDENTITY = "iPhone Developer: Yuhua Gong (YBKA3W5TF4)";
+ CODE_SIGN_IDENTITY = "Apple Development: Qianze Zhang (3C9KJFP729)";
CODE_SIGN_STYLE = Manual;
- DEVELOPMENT_TEAM = SW3CA7M752;
+ DEVELOPMENT_TEAM = GM72UGLGZW;
ENABLE_BITCODE = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -396,7 +396,7 @@
);
PRODUCT_BUNDLE_IDENTIFIER = "io.agora.Agora-iOS-Tutorial-Objective-C";
PRODUCT_NAME = "$(TARGET_NAME)";
- PROVISIONING_PROFILE_SPECIFIER = AgoraAppsDevProfile;
+ PROVISIONING_PROFILE_SPECIFIER = App;
};
name = Release;
};
diff --git a/One-to-One-Video/Agora-iOS-Tutorial-Objective-C-1to1/Agora-iOS-Tutorial-Objective-C/VideoChatViewController.m b/One-to-One-Video/Agora-iOS-Tutorial-Objective-C-1to1/Agora-iOS-Tutorial-Objective-C/VideoChatViewController.m
index af5d19ec..9fbd2d14 100755
--- a/One-to-One-Video/Agora-iOS-Tutorial-Objective-C-1to1/Agora-iOS-Tutorial-Objective-C/VideoChatViewController.m
+++ b/One-to-One-Video/Agora-iOS-Tutorial-Objective-C-1to1/Agora-iOS-Tutorial-Objective-C/VideoChatViewController.m
@@ -97,6 +97,11 @@ - (void)rtcEngine:(AgoraRtcEngineKit *)engine firstRemoteVideoDecodedOfUid:(NSUI
// Bind remote video stream to view
}
+- (void)rtcEngine:(AgoraRtcEngineKit *)engine remoteVideoStateChangedOfUid:(NSUInteger)uid state:(AgoraVideoRemoteState)state reason:(AgoraVideoRemoteStateReason)reason elapsed:(NSInteger)elapsed
+{
+ NSLog(@"remoteVideoStateChangedOfUid %@ %@ %@", @(uid), @(state), @(reason));
+}
+
- (IBAction)hangUpButton:(UIButton *)sender {
[self leaveChannel];
}
diff --git a/One-to-One-Video/Agora-iOS-Tutorial-Objective-C-1to1/exportPlist.plist b/One-to-One-Video/Agora-iOS-Tutorial-Objective-C-1to1/exportPlist.plist
index 68797c7b..2d4ed12d 100644
--- a/One-to-One-Video/Agora-iOS-Tutorial-Objective-C-1to1/exportPlist.plist
+++ b/One-to-One-Video/Agora-iOS-Tutorial-Objective-C-1to1/exportPlist.plist
@@ -9,7 +9,7 @@
provisioningProfiles
io.agora.Agora-iOS-Tutorial-Objective-C
- AgoraAppsDevProfile
+ App
diff --git a/One-to-One-Video/Agora-iOS-Tutorial-Swift-1to1/Agora-iOS-Tutorial.xcodeproj/project.pbxproj b/One-to-One-Video/Agora-iOS-Tutorial-Swift-1to1/Agora-iOS-Tutorial.xcodeproj/project.pbxproj
index 7a971591..6ddcf872 100644
--- a/One-to-One-Video/Agora-iOS-Tutorial-Swift-1to1/Agora-iOS-Tutorial.xcodeproj/project.pbxproj
+++ b/One-to-One-Video/Agora-iOS-Tutorial-Swift-1to1/Agora-iOS-Tutorial.xcodeproj/project.pbxproj
@@ -195,7 +195,7 @@
TargetAttributes = {
1ABDEE3D1D383BE4007DE451 = {
CreatedOnToolsVersion = 7.3.1;
- DevelopmentTeam = SW3CA7M752;
+ DevelopmentTeam = GM72UGLGZW;
LastSwiftMigration = 1130;
ProvisioningStyle = Manual;
SystemCapabilities = {
@@ -416,9 +416,9 @@
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CODE_SIGN_IDENTITY = "iPhone Developer: Yuhua Gong (YBKA3W5TF4)";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Yuhua Gong (YBKA3W5TF4)";
- DEVELOPMENT_TEAM = "";
+ CODE_SIGN_IDENTITY = "Apple Development: Qianze Zhang (3C9KJFP729)";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development: Qianze Zhang (3C9KJFP729)";
+ DEVELOPMENT_TEAM = GM72UGLGZW;
ENABLE_BITCODE = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -435,7 +435,7 @@
PRODUCT_BUNDLE_IDENTIFIER = "io.agora.Agora-iOS-Tutorial";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "";
- PROVISIONING_PROFILE_SPECIFIER = AgoraAppsDevProfile;
+ PROVISIONING_PROFILE_SPECIFIER = App;
SWIFT_OBJC_BRIDGING_HEADER = "";
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
SWIFT_VERSION = 5.0;
@@ -446,9 +446,9 @@
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CODE_SIGN_IDENTITY = "iPhone Developer: Yuhua Gong (YBKA3W5TF4)";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Yuhua Gong (YBKA3W5TF4)";
- DEVELOPMENT_TEAM = "";
+ CODE_SIGN_IDENTITY = "Apple Development: Qianze Zhang (3C9KJFP729)";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development: Qianze Zhang (3C9KJFP729)";
+ DEVELOPMENT_TEAM = GM72UGLGZW;
ENABLE_BITCODE = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -465,7 +465,7 @@
PRODUCT_BUNDLE_IDENTIFIER = "io.agora.Agora-iOS-Tutorial";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "";
- PROVISIONING_PROFILE_SPECIFIER = AgoraAppsDevProfile;
+ PROVISIONING_PROFILE_SPECIFIER = App;
SWIFT_OBJC_BRIDGING_HEADER = "";
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
SWIFT_VERSION = 5.0;
diff --git a/One-to-One-Video/Agora-iOS-Tutorial-Swift-1to1/exportPlist.plist b/One-to-One-Video/Agora-iOS-Tutorial-Swift-1to1/exportPlist.plist
index 770fae52..d2f1d1cb 100644
--- a/One-to-One-Video/Agora-iOS-Tutorial-Swift-1to1/exportPlist.plist
+++ b/One-to-One-Video/Agora-iOS-Tutorial-Swift-1to1/exportPlist.plist
@@ -9,7 +9,7 @@
provisioningProfiles
io.agora.Agora-iOS-Tutorial
- AgoraAppsDevProfile
+ App
diff --git a/One-to-One-Video/Agora-iOS-Tutorial-SwiftUI-1to1/Agora-iOS-Tutorial-SwiftUI-1to1.xcodeproj/project.pbxproj b/One-to-One-Video/Agora-iOS-Tutorial-SwiftUI-1to1/Agora-iOS-Tutorial-SwiftUI-1to1.xcodeproj/project.pbxproj
index 92630969..1c52b470 100644
--- a/One-to-One-Video/Agora-iOS-Tutorial-SwiftUI-1to1/Agora-iOS-Tutorial-SwiftUI-1to1.xcodeproj/project.pbxproj
+++ b/One-to-One-Video/Agora-iOS-Tutorial-SwiftUI-1to1/Agora-iOS-Tutorial-SwiftUI-1to1.xcodeproj/project.pbxproj
@@ -362,10 +362,10 @@
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CODE_SIGN_IDENTITY = "iPhone Developer: Yuhua Gong (YBKA3W5TF4)";
+ CODE_SIGN_IDENTITY = "Apple Development: Qianze Zhang (3C9KJFP729)";
CODE_SIGN_STYLE = Manual;
DEVELOPMENT_ASSET_PATHS = "\"Agora-iOS-Tutorial-SwiftUI-1to1/Preview Content\"";
- DEVELOPMENT_TEAM = SW3CA7M752;
+ DEVELOPMENT_TEAM = GM72UGLGZW;
ENABLE_PREVIEWS = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -379,7 +379,7 @@
);
PRODUCT_BUNDLE_IDENTIFIER = "io.agora.Agora-iOS-Tutorial-SwiftUI-1to1";
PRODUCT_NAME = "$(TARGET_NAME)";
- PROVISIONING_PROFILE_SPECIFIER = AgoraAppsDevProfile;
+ PROVISIONING_PROFILE_SPECIFIER = App;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
@@ -389,10 +389,10 @@
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CODE_SIGN_IDENTITY = "iPhone Developer: Yuhua Gong (YBKA3W5TF4)";
+ CODE_SIGN_IDENTITY = "Apple Development: Qianze Zhang (3C9KJFP729)";
CODE_SIGN_STYLE = Manual;
DEVELOPMENT_ASSET_PATHS = "\"Agora-iOS-Tutorial-SwiftUI-1to1/Preview Content\"";
- DEVELOPMENT_TEAM = SW3CA7M752;
+ DEVELOPMENT_TEAM = GM72UGLGZW;
ENABLE_PREVIEWS = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -406,7 +406,7 @@
);
PRODUCT_BUNDLE_IDENTIFIER = "io.agora.Agora-iOS-Tutorial-SwiftUI-1to1";
PRODUCT_NAME = "$(TARGET_NAME)";
- PROVISIONING_PROFILE_SPECIFIER = AgoraAppsDevProfile;
+ PROVISIONING_PROFILE_SPECIFIER = App;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
diff --git a/One-to-One-Video/Agora-iOS-Tutorial-SwiftUI-1to1/exportPlist.plist b/One-to-One-Video/Agora-iOS-Tutorial-SwiftUI-1to1/exportPlist.plist
index e09d1821..75d7e222 100644
--- a/One-to-One-Video/Agora-iOS-Tutorial-SwiftUI-1to1/exportPlist.plist
+++ b/One-to-One-Video/Agora-iOS-Tutorial-SwiftUI-1to1/exportPlist.plist
@@ -9,7 +9,7 @@
provisioningProfiles
io.agora.Agora-iOS-Tutorial-SwiftUI-1to1
- AgoraAppsDevProfile
+ App
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 8595a2af..fcb04de0 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -1,8 +1,8 @@
variables:
- iOSRTCSDK: 'https://download.agora.io/sdk/release/Agora_Native_SDK_for_iOS_v3_0_1_FULL.zip?_ga=2.217080854.1429354637.1591107319-5559409.1503304822'
- MacRTCSDK: 'https://download.agora.io/sdk/release/Agora_Native_SDK_for_Mac_v3_0_1_FULL.zip?_ga=2.45223076.1429354637.1591107319-5559409.1503304822'
- WindowsRTCSDK: 'https://download.agora.io/sdk/release/Agora_Native_SDK_for_Windows_v3_0_1_FULL.zip'
- AndroidRTCSDKVer: '3.0.1'
+ iOSRTCSDK: 'https://download.agora.io/sdk/release/Agora_Native_SDK_for_iOS_v3_1_0_FULL.zip?_ga=2.221003672.1493357375.1597372715-269570672.1596526126'
+ MacRTCSDK: 'https://download.agora.io/sdk/release/Agora_Native_SDK_for_Mac_v3_1_0_FULL.zip?_ga=2.221003672.1493357375.1597372715-269570672.1596526126'
+ WindowsRTCSDK: 'https://download.agora.io/sdk/release/Agora_Native_SDK_for_Windows_v3_1_0_FULL.zip?_ga=2.221003672.1493357375.1597372715-269570672.1596526126'
+ AndroidRTCSDKVer: '3.1.0'
jobs: