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: