├── .github
└── ISSUE_TEMPLATE
│ ├── bug_report.md
│ └── feature_request.md
├── .gitignore
├── Android
├── .gitignore
├── .idea
│ ├── codeStyles
│ │ └── Project.xml
│ ├── gradle.xml
│ ├── misc.xml
│ ├── runConfigurations.xml
│ └── vcs.xml
├── README.md
├── README.zh.md
├── build-template
│ └── build-android.yml
├── build.gradle
├── ci.env.py
├── gradle.properties
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── lib-component
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── io
│ │ │ └── agora
│ │ │ └── advancedaudio
│ │ │ └── ExampleInstrumentedTest.java
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── io
│ │ │ │ └── agora
│ │ │ │ └── advancedaudio
│ │ │ │ ├── AgoraApplication.java
│ │ │ │ ├── Constants.java
│ │ │ │ └── component
│ │ │ │ ├── activities
│ │ │ │ ├── BaseActivity.java
│ │ │ │ └── MainActivity.java
│ │ │ │ ├── annotations
│ │ │ │ └── DisplayActivity.java
│ │ │ │ ├── rtc
│ │ │ │ ├── AgoraEventHandler.java
│ │ │ │ └── EventHandler.java
│ │ │ │ └── utils
│ │ │ │ ├── FileUtil.java
│ │ │ │ └── WindowUtil.java
│ │ └── res
│ │ │ ├── color
│ │ │ └── start_broadcast_text_color.xml
│ │ │ ├── drawable-xxhdpi
│ │ │ ├── live_room_bg_logo.png
│ │ │ └── main_logo.png
│ │ │ ├── drawable
│ │ │ ├── ic_launcher_background.xml
│ │ │ ├── main_background.xml
│ │ │ ├── start_broadcast_bg.xml
│ │ │ ├── start_broadcast_bg_clicked.xml
│ │ │ └── start_broadcast_bg_normal.xml
│ │ │ ├── layout
│ │ │ └── activity_main.xml
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── values-zh
│ │ │ └── strings.xml
│ │ │ └── values
│ │ │ ├── colors.xml
│ │ │ ├── dimens.xml
│ │ │ ├── strings.xml
│ │ │ ├── strings_config.xml
│ │ │ └── styles.xml
│ │ └── test
│ │ └── java
│ │ └── io
│ │ └── agora
│ │ └── advancedaudio
│ │ └── ExampleUnitTest.java
├── sample-custom-recorder
│ ├── .gitignore
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── io
│ │ │ └── agora
│ │ │ └── advancedaudio
│ │ │ └── ExampleInstrumentedTest.java
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── io
│ │ │ │ └── agora
│ │ │ │ └── advancedaudio
│ │ │ │ └── customrecorder
│ │ │ │ ├── CustomRecorder.java
│ │ │ │ ├── CustomRecorderActivity.java
│ │ │ │ ├── CustomRecorderConfig.java
│ │ │ │ └── CustomRecorderService.java
│ │ └── res
│ │ │ ├── drawable-xxhdpi
│ │ │ ├── btn_audio_disabled.png
│ │ │ ├── btn_audio_enabled.png
│ │ │ ├── btn_leave.png
│ │ │ └── live_room_bg_logo.png
│ │ │ ├── drawable
│ │ │ ├── btn_mute_audio.xml
│ │ │ ├── ic_launcher_background.xml
│ │ │ ├── live_room_bg.xml
│ │ │ ├── rounded_bg_full_transparent.xml
│ │ │ └── rounded_bg_half_transparent.xml
│ │ │ ├── layout
│ │ │ └── activity_audio_room.xml
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── values-zh
│ │ │ └── strings.xml
│ │ │ └── values
│ │ │ ├── colors.xml
│ │ │ ├── dimens.xml
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ └── test
│ │ └── java
│ │ └── io
│ │ └── agora
│ │ └── advancedaudio
│ │ └── ExampleUnitTest.java
└── settings.gradle
├── README.md
├── README.zh.md
├── Web
└── AgoraAudioIO-Web-Webpack
│ ├── .eslintignore
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── README.zh.md
│ ├── index.html
│ ├── package.json
│ ├── public
│ ├── .keeps
│ └── assets
│ │ ├── biggie.mp3
│ │ ├── effectA.wav
│ │ ├── effectB.wav
│ │ ├── garden.mp3
│ │ └── music_1.m4a
│ ├── scripts
│ ├── .keeps
│ ├── index.js
│ ├── loaders.js
│ └── plugins.js
│ └── src
│ ├── .keeps
│ ├── assets
│ ├── .keeps
│ └── style.css
│ ├── common.js
│ ├── index.js
│ └── rtc-client.js
├── Windows
├── .gitignore
├── AgoraAudioIO-Windows-dx-2010
│ ├── AgoraExternalCapture.sln
│ ├── AgoraExternalCapture
│ │ ├── AGAudioCapture.cpp
│ │ ├── AGAudioCapture.h
│ │ ├── AGButton.cpp
│ │ ├── AGButton.h
│ │ ├── AGComboBox.cpp
│ │ ├── AGComboBox.h
│ │ ├── AGConfig.cpp
│ │ ├── AGConfig.h
│ │ ├── AGDShowAudioCapture.cpp
│ │ ├── AGDShowAudioCapture.h
│ │ ├── AGDShowVideoCapture.cpp
│ │ ├── AGDShowVideoCapture.h
│ │ ├── AGDesktopCaptureDlg.cpp
│ │ ├── AGDesktopCaptureDlg.h
│ │ ├── AGEdit.cpp
│ │ ├── AGEdit.h
│ │ ├── AGEngineEventHandler.cpp
│ │ ├── AGEngineEventHandler.h
│ │ ├── AGEventDef.h
│ │ ├── AGHyperLink.cpp
│ │ ├── AGHyperLink.h
│ │ ├── AGLinkCtrl.cpp
│ │ ├── AGLinkCtrl.h
│ │ ├── AGMessage.h
│ │ ├── AGResourceVisitor.cpp
│ │ ├── AGResourceVisitor.h
│ │ ├── AGScreenCaptureDlg.cpp
│ │ ├── AGScreenCaptureDlg.h
│ │ ├── AGSliderCtrl.cpp
│ │ ├── AGSliderCtrl.h
│ │ ├── AGVideoCapture.cpp
│ │ ├── AGVideoCapture.h
│ │ ├── AGVideoTestWnd.cpp
│ │ ├── AGVideoTestWnd.h
│ │ ├── AGVideoWnd.cpp
│ │ ├── AGVideoWnd.h
│ │ ├── AgoraAudInputManager.cpp
│ │ ├── AgoraAudInputManager.h
│ │ ├── AgoraCameraManager.cpp
│ │ ├── AgoraCameraManager.h
│ │ ├── AgoraExternalCapture.cpp
│ │ ├── AgoraExternalCapture.h
│ │ ├── AgoraExternalCapture.rc
│ │ ├── AgoraExternalCapture.sln
│ │ ├── AgoraExternalCapture.vcxproj
│ │ ├── AgoraExternalCapture.vcxproj.filters
│ │ ├── AgoraExternalCaptureDlg.cpp
│ │ ├── AgoraExternalCaptureDlg.h
│ │ ├── AgoraObject.cpp
│ │ ├── AgoraObject.h
│ │ ├── AgoraPlayoutManager.cpp
│ │ ├── AgoraPlayoutManager.h
│ │ ├── AudioCapturePackageQueue.cpp
│ │ ├── AudioCapturePackageQueue.h
│ │ ├── AudioPlayPackageQueue.cpp
│ │ ├── AudioPlayPackageQueue.h
│ │ ├── BufferQueue.cpp
│ │ ├── BufferQueue.h
│ │ ├── ChatDlg.cpp
│ │ ├── ChatDlg.h
│ │ ├── DShow
│ │ │ ├── d3drm.h
│ │ │ ├── d3drmdef.h
│ │ │ ├── d3drmobj.h
│ │ │ ├── dxtrans.h
│ │ │ └── qedit.h
│ │ ├── DShowPinHelper.cpp
│ │ ├── DShowPinHelper.h
│ │ ├── DeviceDlg.cpp
│ │ ├── DeviceDlg.h
│ │ ├── DskcapsetDlg.cpp
│ │ ├── DskcapsetDlg.h
│ │ ├── EnterChannelDlg.cpp
│ │ ├── EnterChannelDlg.h
│ │ ├── ExtCaptureDlg.cpp
│ │ ├── ExtCaptureDlg.h
│ │ ├── ExtendAudioFrameObserver.cpp
│ │ ├── ExtendAudioFrameObserver.h
│ │ ├── ExtendVideoFrameObserver.cpp
│ │ ├── ExtendVideoFrameObserver.h
│ │ ├── IAGDShowDevice.h
│ │ ├── LanguageSet.cpp
│ │ ├── LanguageSet.h
│ │ ├── LogoDlg.cpp
│ │ ├── LogoDlg.h
│ │ ├── SetupDlg.cpp
│ │ ├── SetupDlg.h
│ │ ├── StreamingVoiceContext.h
│ │ ├── VideoDlg.cpp
│ │ ├── VideoDlg.h
│ │ ├── VideoPackageQueue.cpp
│ │ ├── VideoPackageQueue.h
│ │ ├── XAudioPlayout.cpp
│ │ ├── XAudioPlayout.h
│ │ ├── YUVTrans.cpp
│ │ ├── YUVTrans.h
│ │ ├── libYUV
│ │ │ ├── libyuv.h
│ │ │ └── libyuv
│ │ │ │ ├── basic_types.h
│ │ │ │ ├── compare.h
│ │ │ │ ├── convert.h
│ │ │ │ ├── convert_argb.h
│ │ │ │ ├── convert_from.h
│ │ │ │ ├── convert_from_argb.h
│ │ │ │ ├── cpu_id.h
│ │ │ │ ├── mjpeg_decoder.h
│ │ │ │ ├── planar_functions.h
│ │ │ │ ├── rotate.h
│ │ │ │ ├── rotate_argb.h
│ │ │ │ ├── row.h
│ │ │ │ ├── scale.h
│ │ │ │ ├── scale_argb.h
│ │ │ │ ├── scale_row.h
│ │ │ │ ├── version.h
│ │ │ │ └── video_common.h
│ │ ├── res
│ │ │ ├── AgoraExternalCapture.ico
│ │ │ ├── AgoraExternalCapture.rc2
│ │ │ ├── IDB_BACKGROUND_VIDEO.bmp
│ │ │ ├── IDB_BTNAUDIO_VIDEO.bmp
│ │ │ ├── IDB_BTNCLOSE.bmp
│ │ │ ├── IDB_BTNENDCALL_VIDEO.bmp
│ │ │ ├── IDB_BTNFULLSCR_VIDEO.bmp
│ │ │ ├── IDB_BTNMAUDIO_VIDEO.bmp
│ │ │ ├── IDB_BTNMAX.bmp
│ │ │ ├── IDB_BTNMIN.bmp
│ │ │ ├── IDB_BTNMORE_VIDEO.bmp
│ │ │ ├── IDB_BTNMSG_VIDEO.bmp
│ │ │ ├── IDB_BTNNORSCR_VIDEO.bmp
│ │ │ ├── IDB_BTNRESTORE.bmp
│ │ │ ├── IDB_BTNSCRCAP_VIDEO.bmp
│ │ │ ├── IDB_BTNSETUP_VIDEO.bmp
│ │ │ ├── IDB_BTNTIP_VIDEO.bmp
│ │ │ ├── IDB_BTNVIDEO_VIDEO.bmp
│ │ │ ├── IDB_CMBBTN.bmp
│ │ │ ├── IDB_CMBSEL.bmp
│ │ │ ├── IDB_DESKTOPSHARE_VIDEO.bmp
│ │ │ ├── IDB_DLG_LOGO.bmp
│ │ │ ├── IDB_DLG_MAIN.bmp
│ │ │ ├── IDB_LOGO.bmp
│ │ │ ├── IDB_MENU_DEVICE.bmp
│ │ │ ├── IDB_MENU_FILTER.bmp
│ │ │ ├── IDB_MENU_INFO.bmp
│ │ │ ├── IDB_MENU_MORE.bmp
│ │ │ ├── IDB_NETWORK_QUALITY.bmp
│ │ │ ├── IDB_SLD_HOVER.bmp
│ │ │ ├── IDB_SLD_NORMAL.bmp
│ │ │ └── ID_TEST_AUDIO.wav
│ │ ├── resource.h
│ │ ├── stdafx.cpp
│ │ ├── stdafx.h
│ │ ├── targetver.h
│ │ ├── video_preprocessing_plugin.cpp
│ │ └── video_preprocessing_plugin.h
│ ├── Language
│ │ ├── ChineseSimplified
│ │ │ ├── ChineseSimplified.cpp
│ │ │ ├── ChineseSimplified.h
│ │ │ ├── ChineseSimplified.vcxproj
│ │ │ ├── ChineseSimplified.vcxproj.filters
│ │ │ ├── Source.def
│ │ │ ├── dllmain.cpp
│ │ │ ├── stdafx.cpp
│ │ │ ├── stdafx.h
│ │ │ └── targetver.h
│ │ └── English
│ │ │ ├── English.cpp
│ │ │ ├── English.h
│ │ │ ├── English.vcxproj
│ │ │ ├── English.vcxproj.filters
│ │ │ ├── ReadMe.txt
│ │ │ ├── Source.def
│ │ │ ├── dllmain.cpp
│ │ │ ├── stdafx.cpp
│ │ │ ├── stdafx.h
│ │ │ └── targetver.h
│ ├── README.zh.md
│ ├── Readme.md
│ └── SDK
│ │ └── PLACEHOLDER
├── AgoraAudioIO-Windows
│ ├── .gitignore
│ ├── AgoraExternalCapture.sln
│ ├── AgoraExternalCapture
│ │ ├── AGButton.cpp
│ │ ├── AGButton.h
│ │ ├── AGComboBox.cpp
│ │ ├── AGComboBox.h
│ │ ├── AGConfig.cpp
│ │ ├── AGConfig.h
│ │ ├── AGDShowAudioCapture.cpp
│ │ ├── AGDShowAudioCapture.h
│ │ ├── AGDesktopCaptureDlg.cpp
│ │ ├── AGDesktopCaptureDlg.h
│ │ ├── AGEdit.cpp
│ │ ├── AGEdit.h
│ │ ├── AGEngineEventHandler.cpp
│ │ ├── AGEngineEventHandler.h
│ │ ├── AGEventDef.h
│ │ ├── AGHyperLink.cpp
│ │ ├── AGHyperLink.h
│ │ ├── AGLinkCtrl.cpp
│ │ ├── AGLinkCtrl.h
│ │ ├── AGMessage.h
│ │ ├── AGResourceVisitor.cpp
│ │ ├── AGResourceVisitor.h
│ │ ├── AGScreenCaptureDlg.cpp
│ │ ├── AGScreenCaptureDlg.h
│ │ ├── AGSliderCtrl.cpp
│ │ ├── AGSliderCtrl.h
│ │ ├── AGVideoTestWnd.cpp
│ │ ├── AGVideoTestWnd.h
│ │ ├── AGVideoWnd.cpp
│ │ ├── AGVideoWnd.h
│ │ ├── AgoraAudInputManager.cpp
│ │ ├── AgoraAudInputManager.h
│ │ ├── AgoraCameraManager.cpp
│ │ ├── AgoraCameraManager.h
│ │ ├── AgoraExternalCapture.aps
│ │ ├── AgoraExternalCapture.cpp
│ │ ├── AgoraExternalCapture.h
│ │ ├── AgoraExternalCapture.rc
│ │ ├── AgoraExternalCapture.sln
│ │ ├── AgoraExternalCapture.vcxproj
│ │ ├── AgoraExternalCapture.vcxproj.filters
│ │ ├── AgoraExternalCaptureDlg.cpp
│ │ ├── AgoraExternalCaptureDlg.h
│ │ ├── AgoraObject.cpp
│ │ ├── AgoraObject.h
│ │ ├── AgoraPlayoutManager.cpp
│ │ ├── AgoraPlayoutManager.h
│ │ ├── ChatDlg.cpp
│ │ ├── ChatDlg.h
│ │ ├── CircleBuffer.cpp
│ │ ├── CircleBuffer.hpp
│ │ ├── DShowHelper.cpp
│ │ ├── DShowHelper.h
│ │ ├── DeviceDlg.cpp
│ │ ├── DeviceDlg.h
│ │ ├── DskcapsetDlg.cpp
│ │ ├── DskcapsetDlg.h
│ │ ├── EnterChannelDlg.cpp
│ │ ├── EnterChannelDlg.h
│ │ ├── ExtCaptureDlg.cpp
│ │ ├── ExtCaptureDlg.h
│ │ ├── ExtendAudioFrameObserver.cpp
│ │ ├── ExtendAudioFrameObserver.h
│ │ ├── IAGDShowDevice.h
│ │ ├── LanguageSet.cpp
│ │ ├── LanguageSet.h
│ │ ├── LogoDlg.cpp
│ │ ├── LogoDlg.h
│ │ ├── SetupDlg.cpp
│ │ ├── SetupDlg.h
│ │ ├── StreamingVoiceContext.h
│ │ ├── VideoDlg.cpp
│ │ ├── VideoDlg.h
│ │ ├── XAudioPlayout.cpp
│ │ ├── XAudioPlayout.h
│ │ ├── capture-filter.cpp
│ │ ├── capture-filter.hpp
│ │ ├── res
│ │ │ ├── AgoraExternalCapture.ico
│ │ │ ├── AgoraExternalCapture.rc2
│ │ │ ├── IDB_BACKGROUND_VIDEO.bmp
│ │ │ ├── IDB_BTNAUDIO_VIDEO.bmp
│ │ │ ├── IDB_BTNCLOSE.bmp
│ │ │ ├── IDB_BTNENDCALL_VIDEO.bmp
│ │ │ ├── IDB_BTNFULLSCR_VIDEO.bmp
│ │ │ ├── IDB_BTNMAUDIO_VIDEO.bmp
│ │ │ ├── IDB_BTNMAX.bmp
│ │ │ ├── IDB_BTNMIN.bmp
│ │ │ ├── IDB_BTNMORE_VIDEO.bmp
│ │ │ ├── IDB_BTNMSG_VIDEO.bmp
│ │ │ ├── IDB_BTNNORSCR_VIDEO.bmp
│ │ │ ├── IDB_BTNRESTORE.bmp
│ │ │ ├── IDB_BTNSCRCAP_VIDEO.bmp
│ │ │ ├── IDB_BTNSETUP_VIDEO.bmp
│ │ │ ├── IDB_BTNTIP_VIDEO.bmp
│ │ │ ├── IDB_BTNVIDEO_VIDEO.bmp
│ │ │ ├── IDB_CMBBTN.bmp
│ │ │ ├── IDB_CMBSEL.bmp
│ │ │ ├── IDB_DESKTOPSHARE_VIDEO.bmp
│ │ │ ├── IDB_DLG_LOGO.bmp
│ │ │ ├── IDB_DLG_MAIN.bmp
│ │ │ ├── IDB_LOGO.bmp
│ │ │ ├── IDB_MENU_DEVICE.bmp
│ │ │ ├── IDB_MENU_FILTER.bmp
│ │ │ ├── IDB_MENU_INFO.bmp
│ │ │ ├── IDB_MENU_MORE.bmp
│ │ │ ├── IDB_NETWORK_QUALITY.bmp
│ │ │ ├── IDB_SLD_HOVER.bmp
│ │ │ ├── IDB_SLD_NORMAL.bmp
│ │ │ └── ID_TEST_AUDIO.wav
│ │ ├── resource.h
│ │ ├── stdafx.cpp
│ │ ├── stdafx.h
│ │ ├── targetver.h
│ │ ├── video_preprocessing_plugin.cpp
│ │ └── video_preprocessing_plugin.h
│ ├── Language
│ │ ├── ChineseSimplified
│ │ │ ├── ChineseSimplified.cpp
│ │ │ ├── ChineseSimplified.h
│ │ │ ├── ChineseSimplified.vcxproj
│ │ │ ├── ChineseSimplified.vcxproj.filters
│ │ │ ├── Source.def
│ │ │ ├── dllmain.cpp
│ │ │ ├── stdafx.cpp
│ │ │ ├── stdafx.h
│ │ │ └── targetver.h
│ │ └── English
│ │ │ ├── English.cpp
│ │ │ ├── English.h
│ │ │ ├── English.vcxproj
│ │ │ ├── English.vcxproj.filters
│ │ │ ├── ReadMe.txt
│ │ │ ├── Source.def
│ │ │ ├── dllmain.cpp
│ │ │ ├── stdafx.cpp
│ │ │ ├── stdafx.h
│ │ │ └── targetver.h
│ ├── README.zh.md
│ ├── Readme.md
│ └── prebuild.bat
└── cicd
│ ├── script
│ └── downloadsdk1.ps1
│ └── templates
│ └── build-Windows-dshow.yml
├── azure-pipelines.yml
└── iOS&macOS
├── .gitignore
├── Agora-RTC-With-ASMR
├── Agora-RTC-With-ASMR.xcodeproj
│ ├── .xcodesamplecode.plist
│ └── project.pbxproj
├── Agora-RTC-With-ASMR
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Assets.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ ├── call.imageset
│ │ │ ├── Contents.json
│ │ │ ├── calling@2x.png
│ │ │ └── calling@3x.png
│ │ ├── earphone.imageset
│ │ │ ├── Contents.json
│ │ │ ├── earphone@2x.png
│ │ │ └── earphone@3x.png
│ │ ├── hungup.imageset
│ │ │ ├── Contents.json
│ │ │ ├── hungup@2x.png
│ │ │ └── hungup@3x.png
│ │ ├── mute.imageset
│ │ │ ├── Contents.json
│ │ │ ├── mute@2x.png
│ │ │ └── mute@3x.png
│ │ ├── speaker.imageset
│ │ │ ├── Contents.json
│ │ │ ├── speaker@2x.png
│ │ │ └── speaker@3x.png
│ │ └── un-mute.imageset
│ │ │ ├── Contents.json
│ │ │ ├── un-mute@2x.png
│ │ │ └── un-mute@3x.png
│ ├── AudioController.h
│ ├── AudioController.m
│ ├── AudioSource.pch
│ ├── AudioWriteToFile.h
│ ├── AudioWriteToFile.m
│ ├── Base.lproj
│ │ └── LaunchScreen.storyboard
│ ├── ChannelNameCheck.h
│ ├── ChannelNameCheck.m
│ ├── ChatButton.h
│ ├── ChatButton.m
│ ├── ChooseButton.h
│ ├── ChooseButton.m
│ ├── Define.h
│ ├── Info.plist
│ ├── InfoCell.h
│ ├── InfoCell.m
│ ├── InfoModel.h
│ ├── InfoModel.m
│ ├── InfoTableView.h
│ ├── InfoTableView.m
│ ├── LogAudioSessionStatus.h
│ ├── LogAudioSessionStatus.m
│ ├── Main.storyboard
│ ├── MainViewController.h
│ ├── MainViewController.m
│ ├── RoomPage
│ │ └── AppID.m
│ ├── RoomViewController.h
│ ├── RoomViewController.mm
│ └── main.m
├── LICENSE.md
├── README.md
├── README.zh.md
├── build.sh
├── clear.sh
└── exportPlist.plist
├── Agora-RTC-With-Voice-Changer-iOS
├── Agora-RTC-With-Voice-Changer-iOS.xcodeproj
│ ├── .xcodesamplecode.plist
│ └── project.pbxproj
├── Agora-RTC-With-Voice-Changer-iOS
│ ├── AppDelegate.swift
│ ├── Assets.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ ├── Contents.json
│ │ ├── btn_audio_effect.imageset
│ │ │ ├── Contents.json
│ │ │ └── btn_audio_effect.pdf
│ │ ├── btn_endcall.imageset
│ │ │ ├── Contents.json
│ │ │ └── btn_endcall.pdf
│ │ ├── btn_join.imageset
│ │ │ ├── Contents.json
│ │ │ └── btn_join.pdf
│ │ ├── btn_join_blue.imageset
│ │ │ ├── Contents.json
│ │ │ └── btn_join_blue.pdf
│ │ ├── btn_mute.imageset
│ │ │ ├── Contents.json
│ │ │ └── btn_mute.pdf
│ │ ├── btn_mute_blue.imageset
│ │ │ ├── Contents.json
│ │ │ └── btn_mute_blue.pdf
│ │ ├── btn_speaker.imageset
│ │ │ ├── Contents.json
│ │ │ └── btn_speaker.pdf
│ │ └── btn_speaker_blue.imageset
│ │ │ ├── Contents.json
│ │ │ └── btn_speaker_blue.pdf
│ ├── Base.lproj
│ │ ├── LaunchScreen.storyboard
│ │ └── Main.storyboard
│ ├── EffectCell.swift
│ ├── EffectType.swift
│ ├── EffectViewController.swift
│ ├── Info.plist
│ ├── LogCell.swift
│ ├── MainViewController.swift
│ └── RoomViewController.swift
├── LICENSE
├── README.md
├── README.zh.md
├── build.sh
├── clear.sh
└── exportPlist.plist
├── AgoraAudioIO-Objective-C
├── AgoraAudioIO-iOS
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Assets.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ ├── audience.imageset
│ │ │ ├── Contents.json
│ │ │ ├── audience@2x.png
│ │ │ └── audience@3x.png
│ │ ├── call.imageset
│ │ │ ├── Contents.json
│ │ │ ├── calling@2x.png
│ │ │ └── calling@3x.png
│ │ ├── earphone.imageset
│ │ │ ├── Contents.json
│ │ │ ├── earphone@2x.png
│ │ │ └── earphone@3x.png
│ │ ├── host.imageset
│ │ │ ├── Contents.json
│ │ │ ├── host@2x.png
│ │ │ └── host@3x.png
│ │ ├── hungup.imageset
│ │ │ ├── Contents.json
│ │ │ ├── hungup@2x.png
│ │ │ └── hungup@3x.png
│ │ ├── mute.imageset
│ │ │ ├── Contents.json
│ │ │ ├── mute@2x.png
│ │ │ └── mute@3x.png
│ │ ├── speaker.imageset
│ │ │ ├── Contents.json
│ │ │ ├── speaker@2x.png
│ │ │ └── speaker@3x.png
│ │ ├── un-mute.imageset
│ │ │ ├── Contents.json
│ │ │ ├── un-mute@2x.png
│ │ │ └── un-mute@3x.png
│ │ └── unmutemac.imageset
│ │ │ ├── Contents.json
│ │ │ └── unmute.png
│ ├── Base.lproj
│ │ └── LaunchScreen.storyboard
│ ├── ChannelNameCheck.h
│ ├── ChannelNameCheck.m
│ ├── ChatButton.h
│ ├── ChatButton.m
│ ├── ChooseButton.h
│ ├── ChooseButton.m
│ ├── Info.plist
│ ├── InfoCell.h
│ ├── InfoCell.m
│ ├── InfoModel.h
│ ├── InfoModel.m
│ ├── InfoTableView.h
│ ├── InfoTableView.m
│ ├── LogAudioSessionStatus.h
│ ├── LogAudioSessionStatus.m
│ ├── Main.storyboard
│ ├── MainViewController.h
│ ├── MainViewController.m
│ ├── RoomViewController.h
│ ├── RoomViewController.m
│ ├── UIColor+CSRGB.h
│ ├── UIColor+CSRGB.m
│ ├── UIView+CSshortFrame.h
│ ├── UIView+CSshortFrame.m
│ └── main.m
├── AgoraAudioIO-macOS
│ ├── AgoraAudioIOmac.entitlements
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Info.plist
│ ├── Main.storyboard
│ ├── MainViewControllerMac.h
│ ├── MainViewControllerMac.m
│ ├── ReplacementSegue.h
│ ├── ReplacementSegue.m
│ ├── RoomViewControllerMac.h
│ ├── RoomViewControllerMac.m
│ └── main.m
├── AgoraAudioIO.xcodeproj
│ ├── .xcodesamplecode.plist
│ └── project.pbxproj
├── LICENSE.md
├── README.md
├── README.zh.md
├── SharedObjects
│ ├── AudioOptions.h
│ ├── DefaultChannelName.h
│ ├── DefaultChannelName.m
│ └── ExternalAudio
│ │ ├── AudioController.h
│ │ ├── AudioController.m
│ │ ├── AudioWriteToFile.h
│ │ ├── AudioWriteToFile.m
│ │ ├── ExternalAudio.h
│ │ └── ExternalAudio.mm
├── build.sh
├── build_macOS.sh
├── clear.sh
├── exportPlist.plist
└── exportPlist_macOS.plist
├── Pronunciation-Assess-iOS
├── Pronunciation-Assess.xcodeproj
│ ├── .xcodesamplecode.plist
│ └── project.pbxproj
├── Pronunciation-Assess
│ ├── AppDelegate.swift
│ ├── Assets.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ └── Contents.json
│ ├── Base.lproj
│ │ ├── LaunchScreen.storyboard
│ │ └── Main.storyboard
│ ├── CHIVOX
│ │ └── CHIVOXLIB
│ ├── CXEngine.h
│ ├── CXEngine.m
│ ├── CXKeys.swift
│ ├── Info.plist
│ ├── Pronunciation-Assess-Bridging-Header.h
│ ├── ViewController.swift
│ └── raw-data-api-oc
│ │ ├── AgoraMediaDataPlugin.h
│ │ ├── AgoraMediaDataPlugin.mm
│ │ ├── AgoraMediaRawData.h
│ │ └── AgoraMediaRawData.m
├── README.md
├── README.zh.md
├── build.sh
├── clear.sh
└── exportPlist.plist
├── README.md
├── README.zh.md
├── SpeechRecognizer-iOS
├── README.md
├── README.zh.md
├── SpeechRecognizer-iOS.xcodeproj
│ ├── .xcodesamplecode.plist
│ └── project.pbxproj
├── SpeechRecognizer-iOS
│ ├── AppDelegate.swift
│ ├── Assets.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ └── Contents.json
│ ├── Base.lproj
│ │ ├── LaunchScreen.storyboard
│ │ └── Main.storyboard
│ ├── ChannelViewController.swift
│ ├── Info.plist
│ ├── MediaWorker.h
│ ├── MediaWorker.mm
│ ├── SpeechRecognizer-iOS-Bridging-Header.h
│ └── ViewController.swift
├── build.sh
├── clear.sh
└── exportPlist.plist
├── build-template
├── build-ios.yml
├── build-mac.yml
└── github-release.yml
├── libs
├── iOS
│ └── .gitkeep
└── macOS
│ └── .gitkeep
├── scripts
├── ci_ios_env.py
├── ci_macos_env.py
└── sdkdownload.sh
└── shared
├── Objective-C
├── KeyCenter.h
└── KeyCenter.m
└── Swift
└── KeyCenter.swift
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: ''
5 | labels: bug
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Describe the bug**
11 | A clear and concise description of what the bug is.
12 |
13 | **To Reproduce**
14 | Steps to reproduce the behavior:
15 | 1. Go to '...'
16 | 2. Click on '....'
17 | 3. Scroll down to '....'
18 | 4. See error
19 |
20 | **Expected behavior**
21 | A clear and concise description of what you expected to happen.
22 |
23 | **Screenshots**
24 | If applicable, add screenshots to help explain your problem.
25 |
26 | **Desktop (please complete the following information):**
27 | - OS: [e.g. iOS]
28 | - Browser [e.g. chrome, safari]
29 | - Version [e.g. 22]
30 |
31 | **Smartphone (please complete the following information):**
32 | - Device: [e.g. iPhone6]
33 | - OS: [e.g. iOS8.1]
34 | - Browser [e.g. stock browser, safari]
35 | - Version [e.g. 22]
36 |
37 | **Additional context**
38 | Add any other context about the problem here.
39 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 | title: ''
5 | labels: enhancement
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Is your feature request related to a problem? Please describe.**
11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12 |
13 | **Describe the solution you'd like**
14 | A clear and concise description of what you want to happen.
15 |
16 | **Describe alternatives you've considered**
17 | A clear and concise description of any alternative solutions or features you've considered.
18 |
19 | **Additional context**
20 | Add any other context or screenshots about the feature request here.
21 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | xcuserdata
3 | *.framework
4 | *.a
5 | aiengine.h
6 | aiengine.provision
7 | .idea
8 |
--------------------------------------------------------------------------------
/Android/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/caches
5 | /.idea/libraries
6 | /.idea/modules.xml
7 | /.idea/workspace.xml
8 | /.idea/navEditor.xml
9 | /.idea/assetWizardSettings.xml
10 | .DS_Store
11 | /build
12 | /captures
13 | .externalNativeBuild
14 | .cxx
15 |
--------------------------------------------------------------------------------
/Android/.idea/gradle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
15 |
16 |
--------------------------------------------------------------------------------
/Android/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/Android/.idea/runConfigurations.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Android/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Android/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | repositories {
5 | google()
6 | jcenter()
7 |
8 | }
9 | dependencies {
10 | classpath 'com.android.tools.build:gradle:3.5.3'
11 |
12 | // NOTE: Do not place your application dependencies here; they belong
13 | // in the individual module build.gradle files
14 | }
15 | }
16 |
17 | allprojects {
18 | repositories {
19 | google()
20 | jcenter()
21 |
22 | }
23 | }
24 |
25 | task clean(type: Delete) {
26 | delete rootProject.buildDir
27 | }
28 |
--------------------------------------------------------------------------------
/Android/ci.env.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/python
2 | # -*- coding: UTF-8 -*-
3 | import re
4 | import os
5 |
6 | def main():
7 | appId = ""
8 | if "AGORA_APP_ID" in os.environ:
9 | appId = os.environ["AGORA_APP_ID"]
10 | token = ""
11 |
12 | f = open("./lib-component/src/main/res/values/strings_config.xml", 'r+')
13 | content = f.read()
14 | contentNew = re.sub(r'<#YOUR APP ID#>', appId, content)
15 | contentNew = re.sub(r'<#YOUR ACCESS TOKEN#>', token, contentNew)
16 | f.seek(0)
17 | f.write(contentNew)
18 | f.truncate()
19 |
20 |
21 | if __name__ == "__main__":
22 | main()
--------------------------------------------------------------------------------
/Android/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 | # IDE (e.g. Android Studio) users:
3 | # Gradle settings configured through the IDE *will override*
4 | # any settings specified in this file.
5 | # For more details on how to configure your build environment visit
6 | # http://www.gradle.org/docs/current/userguide/build_environment.html
7 | # Specifies the JVM arguments used for the daemon process.
8 | # The setting is particularly useful for tweaking memory settings.
9 | org.gradle.jvmargs=-Xmx1536m
10 | # When configured, Gradle will run in incubating parallel mode.
11 | # This option should only be used with decoupled projects. More details, visit
12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
13 | # org.gradle.parallel=true
14 | # AndroidX package structure to make it clearer which packages are bundled with the
15 | # Android operating system, and which are packaged with your app's APK
16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn
17 | android.useAndroidX=true
18 | # Automatically convert third-party libraries to use AndroidX
19 | android.enableJetifier=true
20 |
21 |
--------------------------------------------------------------------------------
/Android/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Android/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Fri Dec 13 15:32:56 CST 2019
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
7 |
--------------------------------------------------------------------------------
/Android/lib-component/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdkVersion 29
5 | buildToolsVersion "29.0.2"
6 | defaultConfig {
7 | minSdkVersion 16
8 | targetSdkVersion 29
9 | versionCode 1
10 | versionName "1.0"
11 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
12 | }
13 | buildTypes {
14 | release {
15 | minifyEnabled false
16 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
17 | }
18 | }
19 | }
20 |
21 | dependencies {
22 | implementation fileTree(dir: 'libs', include: ['*.jar'])
23 | implementation 'androidx.appcompat:appcompat:1.1.0'
24 | api 'io.agora.rtc:voice-sdk:3.1.0'
25 | testImplementation 'junit:junit:4.12'
26 | androidTestImplementation 'androidx.test.ext:junit:1.1.0'
27 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
28 | }
29 |
--------------------------------------------------------------------------------
/Android/lib-component/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/Android/lib-component/src/androidTest/java/io/agora/advancedaudio/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package io.agora.advancedaudio;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.test.platform.app.InstrumentationRegistry;
6 | import androidx.test.ext.junit.runners.AndroidJUnit4;
7 |
8 | import org.junit.Test;
9 | import org.junit.runner.RunWith;
10 |
11 | import static org.junit.Assert.*;
12 |
13 | /**
14 | * Instrumented test, which will execute on an Android device.
15 | *
16 | * @see Testing documentation
17 | */
18 | @RunWith(AndroidJUnit4.class)
19 | public class ExampleInstrumentedTest {
20 | @Test
21 | public void useAppContext() {
22 | // Context of the app under test.
23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24 |
25 | assertEquals("io.agora.advancedaudio", appContext.getPackageName());
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Android/lib-component/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Android/lib-component/src/main/java/io/agora/advancedaudio/Constants.java:
--------------------------------------------------------------------------------
1 | package io.agora.advancedaudio;
2 |
3 | public class Constants {
4 | public static final String KEY_CHANNEL_NAME = "channel-name";
5 | }
6 |
--------------------------------------------------------------------------------
/Android/lib-component/src/main/java/io/agora/advancedaudio/component/annotations/DisplayActivity.java:
--------------------------------------------------------------------------------
1 | package io.agora.advancedaudio.component.annotations;
2 |
3 | import java.lang.annotation.Retention;
4 | import java.lang.annotation.RetentionPolicy;
5 |
6 | @Retention(RetentionPolicy.RUNTIME)
7 | public @interface DisplayActivity {
8 | String[] SubClasses();
9 | }
10 |
--------------------------------------------------------------------------------
/Android/lib-component/src/main/java/io/agora/advancedaudio/component/rtc/EventHandler.java:
--------------------------------------------------------------------------------
1 | package io.agora.advancedaudio.component.rtc;
2 |
3 | import io.agora.rtc.IRtcEngineEventHandler;
4 |
5 | public interface EventHandler {
6 | void onLeaveChannel(IRtcEngineEventHandler.RtcStats stats);
7 |
8 | void onJoinChannelSuccess(String channel, int uid, int elapsed);
9 |
10 | void onUserOffline(int uid, int reason);
11 |
12 | void onUserJoined(int uid, int elapsed);
13 |
14 | void onLastmileQuality(int quality);
15 |
16 | void onLastmileProbeResult(IRtcEngineEventHandler.LastmileProbeResult result);
17 |
18 | void onRtcStats(IRtcEngineEventHandler.RtcStats stats);
19 |
20 | void onNetworkQuality(int uid, int txQuality, int rxQuality);
21 |
22 | void onRemoteAudioStats(IRtcEngineEventHandler.RemoteAudioStats stats);
23 | }
24 |
--------------------------------------------------------------------------------
/Android/lib-component/src/main/res/color/start_broadcast_text_color.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Android/lib-component/src/main/res/drawable-xxhdpi/live_room_bg_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Android/lib-component/src/main/res/drawable-xxhdpi/live_room_bg_logo.png
--------------------------------------------------------------------------------
/Android/lib-component/src/main/res/drawable-xxhdpi/main_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Android/lib-component/src/main/res/drawable-xxhdpi/main_logo.png
--------------------------------------------------------------------------------
/Android/lib-component/src/main/res/drawable/main_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
--------------------------------------------------------------------------------
/Android/lib-component/src/main/res/drawable/start_broadcast_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Android/lib-component/src/main/res/drawable/start_broadcast_bg_clicked.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Android/lib-component/src/main/res/drawable/start_broadcast_bg_normal.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Android/lib-component/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Android/lib-component/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Android/lib-component/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Android/lib-component/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/Android/lib-component/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Android/lib-component/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Android/lib-component/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Android/lib-component/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/Android/lib-component/src/main/res/values-zh/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Advanced-Audio-Android
3 |
4 |
5 | 开始直播
6 | 输入一个话题
7 | Powered by agora.io
8 | 缺少必要权限
9 |
10 |
--------------------------------------------------------------------------------
/Android/lib-component/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 | #DEDEDE
8 | #CCCCCC
9 | #989898
10 | #666666
11 | #333333
12 |
13 | #007AFF
14 | #44A2FC
15 | #0ECFFF
16 | #9CD9FF
17 |
18 | #CC262626
19 | #66000000
20 | #22000000
21 |
22 |
--------------------------------------------------------------------------------
/Android/lib-component/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Advanced-Audio-Android
3 |
4 |
5 | Start Live Broadcast
6 | Pick a topic to chat
7 | Powered by agora.io
8 | Necessary permissions acquired
9 |
10 |
11 | abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!#$%&()+,-:;<=.>?@[]^_`{|}~
12 |
13 |
--------------------------------------------------------------------------------
/Android/lib-component/src/main/res/values/strings_config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | <#YOUR APP ID#>
6 |
7 |
8 |
9 | <#YOUR ACCESS TOKEN#>
10 |
11 |
--------------------------------------------------------------------------------
/Android/lib-component/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Android/lib-component/src/test/java/io/agora/advancedaudio/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package io.agora.advancedaudio;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/Android/sample-custom-recorder/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/Android/sample-custom-recorder/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 29
5 | buildToolsVersion "29.0.2"
6 |
7 |
8 | defaultConfig {
9 | applicationId "io.agora.advancedaudio.customrecorder"
10 | minSdkVersion 16
11 | targetSdkVersion 29
12 | versionCode 1
13 | versionName "1.0"
14 |
15 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
16 | }
17 |
18 | buildTypes {
19 | release {
20 | minifyEnabled false
21 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
22 | }
23 | }
24 |
25 | }
26 |
27 | dependencies {
28 | implementation fileTree(dir: 'libs', include: ['*.jar'])
29 |
30 | implementation 'androidx.appcompat:appcompat:1.1.0'
31 | testImplementation 'junit:junit:4.12'
32 | androidTestImplementation 'androidx.test.ext:junit:1.1.1'
33 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
34 | implementation project(path: ':lib-component')
35 | }
36 |
--------------------------------------------------------------------------------
/Android/sample-custom-recorder/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/Android/sample-custom-recorder/src/androidTest/java/io/agora/advancedaudio/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package io.agora.advancedaudio;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.test.platform.app.InstrumentationRegistry;
6 | import androidx.test.ext.junit.runners.AndroidJUnit4;
7 |
8 | import org.junit.Test;
9 | import org.junit.runner.RunWith;
10 |
11 | import static org.junit.Assert.*;
12 |
13 | /**
14 | * Instrumented test, which will execute on an Android device.
15 | *
16 | * @see Testing documentation
17 | */
18 | @RunWith(AndroidJUnit4.class)
19 | public class ExampleInstrumentedTest {
20 | @Test
21 | public void useAppContext() {
22 | // Context of the app under test.
23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24 |
25 | assertEquals("io.agora.advancedaudio", appContext.getPackageName());
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Android/sample-custom-recorder/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
14 |
16 |
17 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Android/sample-custom-recorder/src/main/res/drawable-xxhdpi/btn_audio_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Android/sample-custom-recorder/src/main/res/drawable-xxhdpi/btn_audio_disabled.png
--------------------------------------------------------------------------------
/Android/sample-custom-recorder/src/main/res/drawable-xxhdpi/btn_audio_enabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Android/sample-custom-recorder/src/main/res/drawable-xxhdpi/btn_audio_enabled.png
--------------------------------------------------------------------------------
/Android/sample-custom-recorder/src/main/res/drawable-xxhdpi/btn_leave.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Android/sample-custom-recorder/src/main/res/drawable-xxhdpi/btn_leave.png
--------------------------------------------------------------------------------
/Android/sample-custom-recorder/src/main/res/drawable-xxhdpi/live_room_bg_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Android/sample-custom-recorder/src/main/res/drawable-xxhdpi/live_room_bg_logo.png
--------------------------------------------------------------------------------
/Android/sample-custom-recorder/src/main/res/drawable/btn_mute_audio.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Android/sample-custom-recorder/src/main/res/drawable/live_room_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 |
7 |
8 | -
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Android/sample-custom-recorder/src/main/res/drawable/rounded_bg_full_transparent.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Android/sample-custom-recorder/src/main/res/drawable/rounded_bg_half_transparent.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Android/sample-custom-recorder/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Android/sample-custom-recorder/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Android/sample-custom-recorder/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Android/sample-custom-recorder/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/Android/sample-custom-recorder/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Android/sample-custom-recorder/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Android/sample-custom-recorder/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Android/sample-custom-recorder/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/Android/sample-custom-recorder/src/main/res/values-zh/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Custom-Device
3 |
4 |
--------------------------------------------------------------------------------
/Android/sample-custom-recorder/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/Android/sample-custom-recorder/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 自定义音频源
3 |
4 |
--------------------------------------------------------------------------------
/Android/sample-custom-recorder/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Android/sample-custom-recorder/src/test/java/io/agora/advancedaudio/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package io.agora.advancedaudio;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/Android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':lib-component', ':sample-custom-recorder'
2 | rootProject.name='Advanced-Audio-Android'
3 |
--------------------------------------------------------------------------------
/Web/AgoraAudioIO-Web-Webpack/.eslintignore:
--------------------------------------------------------------------------------
1 | /scripts
--------------------------------------------------------------------------------
/Web/AgoraAudioIO-Web-Webpack/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | 'env': {
3 | 'browser': true,
4 | 'es6': true,
5 | 'node': true,
6 | 'jquery': true,
7 | },
8 | 'extends': 'eslint:recommended',
9 | 'globals': {
10 | 'Atomics': 'readonly',
11 | 'SharedArrayBuffer': 'readonly'
12 | },
13 | 'parserOptions': {
14 | 'ecmaVersion': 2018,
15 | 'sourceType': 'module'
16 | },
17 | 'rules': {
18 | 'indent': [
19 | 'warn',
20 | 2
21 | ],
22 | 'linebreak-style': [
23 | 'warn',
24 | 'unix'
25 | ],
26 | 'quotes': [
27 | 'warn',
28 | 'single'
29 | ],
30 | 'semi': [
31 | 'warn',
32 | 'never'
33 | ],
34 | 'no-unused-vars': 0,
35 | }
36 | }
--------------------------------------------------------------------------------
/Web/AgoraAudioIO-Web-Webpack/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | **/*.~
3 | **/*.*~
4 | .DS_Store
5 | .*~package-lock.json
6 | package-lock.json
7 |
--------------------------------------------------------------------------------
/Web/AgoraAudioIO-Web-Webpack/public/.keeps:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Web/AgoraAudioIO-Web-Webpack/public/.keeps
--------------------------------------------------------------------------------
/Web/AgoraAudioIO-Web-Webpack/public/assets/biggie.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Web/AgoraAudioIO-Web-Webpack/public/assets/biggie.mp3
--------------------------------------------------------------------------------
/Web/AgoraAudioIO-Web-Webpack/public/assets/effectA.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Web/AgoraAudioIO-Web-Webpack/public/assets/effectA.wav
--------------------------------------------------------------------------------
/Web/AgoraAudioIO-Web-Webpack/public/assets/effectB.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Web/AgoraAudioIO-Web-Webpack/public/assets/effectB.wav
--------------------------------------------------------------------------------
/Web/AgoraAudioIO-Web-Webpack/public/assets/garden.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Web/AgoraAudioIO-Web-Webpack/public/assets/garden.mp3
--------------------------------------------------------------------------------
/Web/AgoraAudioIO-Web-Webpack/public/assets/music_1.m4a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Web/AgoraAudioIO-Web-Webpack/public/assets/music_1.m4a
--------------------------------------------------------------------------------
/Web/AgoraAudioIO-Web-Webpack/scripts/.keeps:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Web/AgoraAudioIO-Web-Webpack/scripts/.keeps
--------------------------------------------------------------------------------
/Web/AgoraAudioIO-Web-Webpack/scripts/index.js:
--------------------------------------------------------------------------------
1 | const path = require("path");
2 | const loaders = require("./loaders");
3 | const plugins = require("./plugins");
4 |
5 | const NODE_ENV = process.env.NODE_ENV
6 |
7 | const distPath = NODE_ENV == 'development' ? '../dist' : '../build'
8 |
9 | module.exports = {
10 | entry: {
11 | index: "./src/index.js",
12 | },
13 | devtool: "inline-source-map",
14 | module: loaders,
15 | plugins,
16 | resolve: {
17 | extensions: [ ".js" ],
18 | },
19 | output: {
20 | filename: "[name].[hash].js",
21 | path: path.resolve(__dirname, distPath),
22 | },
23 | optimization: {
24 | minimize: false,
25 | },
26 | devServer: {
27 | overlay: {
28 | warnings: true,
29 | errors: true,
30 | },
31 | hot: true,
32 | contentBase: path.join(__dirname, "./"),
33 | compress: true,
34 | progress: true,
35 | open: true
36 | },
37 | };
38 |
--------------------------------------------------------------------------------
/Web/AgoraAudioIO-Web-Webpack/scripts/loaders.js:
--------------------------------------------------------------------------------
1 | const path = require("path");
2 |
3 | const env = process.env;
4 | const MiniCssExtractPlugin = require("mini-css-extract-plugin");
5 |
6 | const styleLoader = env.NODE_ENV !== 'production' ? "style-loader" : MiniCssExtractPlugin.loader;
7 |
8 | const babelLoader = {
9 | test: /\.m?js$/,
10 | exclude: /(node_modules)/,
11 | use: {
12 | loader: 'babel-loader',
13 | options: {
14 | presets: ['@babel/preset-env']
15 | }
16 | }
17 | };
18 |
19 | const cssLoader = {
20 | test: /\.css$/,
21 | use: [
22 | styleLoader,
23 | "css-loader",
24 | ],
25 | };
26 |
27 | const fileLoader = {
28 | test: /\.(png|svg|jpg|gif|m4a|mp3)$/,
29 | use: "file-loader",
30 | };
31 |
32 | const fontLoader = {
33 | test: /\.(woff|woff2|eot|ttf|otf)$/,
34 | use: "file-loader",
35 | };
36 |
37 | const eslintLoader = {
38 | test: /\.js$/,
39 | include: /src/,
40 | use: {
41 | loader: "eslint-loader"
42 | }
43 | };
44 |
45 | module.exports = {
46 | rules: [
47 | cssLoader,
48 | fileLoader,
49 | fontLoader,
50 | babelLoader,
51 | eslintLoader,
52 | ],
53 | };
54 |
--------------------------------------------------------------------------------
/Web/AgoraAudioIO-Web-Webpack/src/.keeps:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Web/AgoraAudioIO-Web-Webpack/src/.keeps
--------------------------------------------------------------------------------
/Web/AgoraAudioIO-Web-Webpack/src/assets/.keeps:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Web/AgoraAudioIO-Web-Webpack/src/assets/.keeps
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGAudioCapture.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "DShow/qedit.h"
3 |
4 | class CAGAudioCapture :
5 | public ISampleGrabberCB
6 | {
7 | public:
8 | CAGAudioCapture();
9 | ~CAGAudioCapture();
10 |
11 | STDMETHODIMP_(ULONG) AddRef();
12 | STDMETHODIMP_(ULONG) Release();
13 | STDMETHODIMP QueryInterface(REFIID riid, void** ppv);
14 | STDMETHODIMP SampleCB(double SampleTime, IMediaSample* pSample);
15 | STDMETHODIMP BufferCB(double dblSampleTime, BYTE* pBuffer, long lBufferSize);
16 |
17 | private:
18 | UINT m_nTimeStamp;
19 |
20 | ULONG m_nRef;
21 | };
22 |
23 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGButton.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGButton.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGComboBox.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGComboBox.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGConfig.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | class CAGConfig
3 | {
4 | public:
5 | CAGConfig();
6 | ~CAGConfig();
7 |
8 | int GetCodec();
9 | BOOL SetCodec(int nCodec);
10 |
11 | /* int GetResolution();
12 | BOOL SetResolution(int nResolution);
13 |
14 | int GetFPS();
15 | BOOL SetFPS(int nPFS);
16 |
17 | int GetMaxRate();
18 | BOOL SetMaxRate(int nMaxRate);
19 | */
20 | BOOL EnableAutoSave(BOOL bEnable);
21 | BOOL IsAutoSaveEnabled();
22 |
23 | BOOL SetSolution(int nIndex);
24 | int GetSolution();
25 |
26 | private:
27 | TCHAR m_szConfigFile[MAX_PATH];
28 | };
29 |
30 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGDesktopCaptureDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGDesktopCaptureDlg.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGDesktopCaptureDlg.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGDesktopCaptureDlg.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGEdit.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGEdit.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGHyperLink.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGHyperLink.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGLinkCtrl.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGLinkCtrl.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGLinkCtrl.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 |
4 | // CAGLinkCtrl
5 |
6 | class CAGLinkCtrl : public CStatic
7 | {
8 | DECLARE_DYNAMIC(CAGLinkCtrl)
9 |
10 | public:
11 | CAGLinkCtrl();
12 | virtual ~CAGLinkCtrl();
13 |
14 | void SetTextColor(COLORREF crText, COLORREF crHover);
15 | void SetBackColor(COLORREF crBack);
16 | COLORREF GetTextColor() const;
17 | COLORREF GetHoverColor() const;
18 |
19 | protected:
20 | virtual void PreSubclassWindow();
21 |
22 | afx_msg void OnPaint();
23 | afx_msg void OnMouseMove(UINT nFlags, CPoint point);
24 | afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
25 | afx_msg void OnMouseLeave();
26 |
27 | DECLARE_MESSAGE_MAP()
28 |
29 | private:
30 | COLORREF m_crText;
31 | COLORREF m_crHover; // Hover colour
32 | COLORREF m_crBack;
33 | BOOL m_bOverControl;
34 | BOOL m_bTrackMouseEvent;
35 | };
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGMessage.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define WM_GOBACK WM_USER+100
4 | #define WM_GONEXT WM_USER+101
5 | #define WM_JOINCHANNEL WM_USER+200
6 | #define WM_LEAVECHANNEL WM_USER+201
7 |
8 |
9 | #define WM_AGSLD_TMBPOSCHANGED WM_USER+200
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGResourceVisitor.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGResourceVisitor.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGScreenCaptureDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGScreenCaptureDlg.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGScreenCaptureDlg.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "afxcoll.h"
3 |
4 | #define WM_WINDOWSHARE WM_USER+303
5 | // CAGScreenCaptureWnd
6 |
7 | class CAGScreenCaptureDlg : public CDialogEx
8 | {
9 | DECLARE_DYNAMIC(CAGScreenCaptureDlg)
10 |
11 | public:
12 | CAGScreenCaptureDlg(CWnd* pParent = NULL);
13 | virtual ~CAGScreenCaptureDlg();
14 |
15 | enum { IDD = IDD_SCRCAP_DIALOG };
16 |
17 | int RefreashWndInfo();
18 | BOOL SaveScreen(LPCRECT lpRect);
19 |
20 | protected:
21 | afx_msg void OnMouseMove(UINT nFlags, CPoint point);
22 | afx_msg void OnPaint();
23 |
24 | afx_msg BOOL OnEraseBkgnd(CDC* pDC);
25 | afx_msg void OnShowWindow(BOOL bShow, UINT nStatus);
26 |
27 | DECLARE_MESSAGE_MAP()
28 |
29 | static BOOL CALLBACK WndEnumProc(HWND hWnd, LPARAM lParam);
30 |
31 | private:
32 | CBitmap m_bmpDesktop;
33 |
34 | CList m_listWnd;
35 | HWND m_hMarkWnd;
36 |
37 | public:
38 |
39 | afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
40 | afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
41 | };
42 |
43 |
44 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGSliderCtrl.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGSliderCtrl.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGVideoCapture.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 |
4 | #include "DShow/qedit.h"
5 |
6 | class CAGVideoCapture :
7 | public ISampleGrabberCB
8 | {
9 | public:
10 | CAGVideoCapture();
11 | ~CAGVideoCapture();
12 |
13 | STDMETHODIMP_(ULONG) AddRef();
14 | STDMETHODIMP_(ULONG) Release();
15 | STDMETHODIMP QueryInterface(REFIID riid, void** ppv);
16 | STDMETHODIMP SampleCB(double SampleTime, IMediaSample* pSample);
17 | STDMETHODIMP BufferCB(double dblSampleTime, BYTE* pBuffer, long lBufferSize);
18 |
19 | // BOOL SetVideoInfo(const VIDEOINFOHEADER *lpVideoInfo);
20 |
21 | private:
22 | UINT m_nTimeStamp;
23 | UINT m_nFPS;
24 |
25 | ULONG m_nRef;
26 |
27 | LPBYTE m_lpYUVBuffer;
28 | LPBYTE m_lpY;
29 | LPBYTE m_lpU;
30 | LPBYTE m_lpV;
31 |
32 | };
33 |
34 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGVideoTestWnd.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGVideoTestWnd.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGVideoTestWnd.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGVideoTestWnd.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGVideoWnd.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AGVideoWnd.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AgoraAudInputManager.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | class CAgoraAudInputManager
3 | {
4 | public:
5 | CAgoraAudInputManager();
6 | ~CAgoraAudInputManager();
7 |
8 | BOOL Create(IRtcEngine *lpRtcEngine);
9 | void Close();
10 |
11 | UINT GetVolume();
12 | BOOL SetVolume(UINT nVol);
13 | UINT GetDeviceCount();
14 |
15 | CString GetCurDeviceID();
16 | BOOL SetCurDevice(LPCTSTR lpDeviceID);
17 |
18 | BOOL GetDevice(UINT nIndex, CString &rDeviceName, CString &rDeviceID);
19 |
20 | void TestAudInputDevice(HWND hMsgWnd, BOOL bTestOn);
21 |
22 | BOOL IsTesting() { return m_bTestingOn; };
23 | private:
24 | BOOL m_bTestingOn;
25 | HWND m_hOldMsgWnd;
26 | AAudioDeviceManager *m_ptrDeviceManager;
27 | IAudioDeviceCollection *m_lpCollection;
28 | };
29 |
30 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AgoraCameraManager.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | class CAgoraCameraManager
3 | {
4 | public:
5 | CAgoraCameraManager();
6 | ~CAgoraCameraManager();
7 |
8 | BOOL Create(IRtcEngine *lpRtcEngine);
9 | void Close();
10 |
11 | UINT GetDeviceCount();
12 |
13 | CString GetCurDeviceID();
14 | BOOL SetCurDevice(LPCTSTR lpDeviceID);
15 |
16 | BOOL GetDevice(UINT nIndex, CString &rDeviceName, CString &rDeviceID);
17 | void TestCameraDevice(HWND hVideoWnd, BOOL bTestOn = TRUE);
18 |
19 | BOOL IsTesting() { return m_bTestingOn; };
20 |
21 | private:
22 | AVideoDeviceManager *m_ptrDeviceManager;
23 | IVideoDeviceCollection *m_lpCollection;
24 | BOOL m_bTestingOn;
25 | };
26 |
27 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AgoraExternalCapture.h:
--------------------------------------------------------------------------------
1 |
2 | // OpenVideoCall.h : main header file for the PROJECT_NAME application
3 | //
4 |
5 | #pragma once
6 |
7 | #ifndef __AFXWIN_H__
8 | #error "include 'stdafx.h' before including this file for PCH"
9 | #endif
10 |
11 | #include "resource.h" // main symbols
12 |
13 |
14 | // CAgoraVideoCallApp:
15 | // See AgoraVideoCall.cpp for the implementation of this class
16 | //
17 |
18 | class CAgoraExternalCaptureApp : public CWinApp
19 | {
20 | public:
21 | CAgoraExternalCaptureApp();
22 |
23 | // Overrides
24 | public:
25 | virtual BOOL InitInstance();
26 |
27 | // Implementation
28 |
29 | DECLARE_MESSAGE_MAP()
30 | };
31 |
32 | extern CAgoraExternalCaptureApp theApp;
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AgoraExternalCapture.rc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AgoraExternalCapture.rc
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AgoraExternalCaptureDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AgoraExternalCaptureDlg.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AgoraObject.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AgoraObject.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AgoraObject.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AgoraObject.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AgoraPlayoutManager.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | class CAgoraPlayoutManager
3 | {
4 | public:
5 | CAgoraPlayoutManager();
6 | ~CAgoraPlayoutManager();
7 |
8 | BOOL Create(IRtcEngine *lpRtcEngine);
9 | void Close();
10 |
11 | UINT GetVolume();
12 | BOOL SetVolume(UINT nVol);
13 | UINT GetDeviceCount();
14 |
15 | CString GetCurDeviceID();
16 | BOOL SetCurDevice(LPCTSTR lpDeviceID);
17 |
18 | BOOL GetDevice(UINT nIndex, CString &rDeviceName, CString &rDeviceID);
19 | void TestPlaybackDevice(UINT nWavID, BOOL bTestOn = TRUE);
20 |
21 | BOOL IsTesting() { return m_bTestingOn; };
22 | private:
23 | AAudioDeviceManager *m_ptrDeviceManager;
24 | IAudioDeviceCollection *m_lpCollection;
25 |
26 | private:
27 | BOOL m_bTestingOn;
28 | };
29 |
30 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AudioCapturePackageQueue.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 |
4 | #include "BufferQueue.h"
5 |
6 |
7 | class CAudioCapturePackageQueue
8 | {
9 | protected:
10 | CAudioCapturePackageQueue();
11 | ~CAudioCapturePackageQueue();
12 |
13 | public:
14 | static CAudioCapturePackageQueue *GetInstance();
15 | static void CloseInstance();
16 |
17 | void SetAudioPackageSize(SIZE_T nPackageSize);
18 | SIZE_T GetAudioPackageSize() const { return m_nPackageSize; };
19 |
20 | void SetAudioFormat(const WAVEFORMATEX *lpWaveInfo);
21 | void GetAudioFormat(WAVEFORMATEX *lpWaveInfo);
22 |
23 | BOOL PushAudioPackage(LPCVOID lpAudioPackage, SIZE_T nPackageSize);
24 | BOOL PopAudioPackage(LPVOID lpAudioPackage, SIZE_T *nPackageSize);
25 |
26 | private:
27 | CBufferQueue m_bufQueue;
28 | WAVEFORMATEX m_waveFormat;
29 | SIZE_T m_nPackageSize;
30 |
31 | static CAudioCapturePackageQueue *m_lpAudioPackageQueue;
32 | };
33 |
34 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/AudioPlayPackageQueue.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 |
4 | #include "BufferQueue.h"
5 |
6 |
7 | class CAudioPlayPackageQueue
8 | {
9 | protected:
10 | CAudioPlayPackageQueue();
11 | ~CAudioPlayPackageQueue();
12 |
13 | public:
14 | static CAudioPlayPackageQueue *GetInstance();
15 | static void CloseInstance();
16 |
17 | void SetAudioPackageSize(SIZE_T nPackageSize);
18 | SIZE_T GetAudioPackageSize() const { return m_nPackageSize; };
19 |
20 | void SetAudioFormat(const WAVEFORMATEX *lpWaveInfo);
21 | void GetAudioFormat(WAVEFORMATEX *lpWaveInfo);
22 |
23 | BOOL PushAudioPackage(LPCVOID lpAudioPackage, SIZE_T nPackageSize);
24 | BOOL PopAudioPackage(LPVOID lpAudioPackage, SIZE_T *nPackageSize);
25 |
26 | private:
27 | CBufferQueue m_bufQueue;
28 | WAVEFORMATEX m_waveFormat;
29 | SIZE_T m_nPackageSize;
30 |
31 | static CAudioPlayPackageQueue *m_lpAudioPackageQueue;
32 | };
33 |
34 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/BufferQueue.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/BufferQueue.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/BufferQueue.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/BufferQueue.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/ChatDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/ChatDlg.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/ChatDlg.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/ChatDlg.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/DShowPinHelper.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 | #include
4 |
5 | #include
6 |
7 | class CDShowPinHelper
8 | {
9 | public:
10 | CDShowPinHelper();
11 | ~CDShowPinHelper();
12 |
13 | BOOL Open(IBaseFilter* ptrFilter);
14 | void Close();
15 |
16 | int GetPinCount();
17 |
18 | BOOL GetPinDirection(int nIndex, PIN_DIRECTION *pDirection);
19 | BOOL GetPin(int nIndex, IPin **pptrPin);
20 | BOOL FindUnconnectedPin(PIN_DIRECTION PinDir, IPin **pptrPin);
21 |
22 | static BOOL IsPinConnected(IPin *pPin, BOOL *pIsConnected);
23 | static BOOL MatchPin(IPin *pPin, PIN_DIRECTION direction, BOOL bIsConnected, BOOL *pMatch);
24 | static BOOL IsPinDirection(IPin *pPin, PIN_DIRECTION dir, BOOL *pMatch);
25 | private:
26 | CComPtr m_ptrFilter;
27 | };
28 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/DeviceDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/DeviceDlg.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/DeviceDlg.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/DeviceDlg.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/DskcapsetDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/DskcapsetDlg.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/DskcapsetDlg.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/DskcapsetDlg.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/EnterChannelDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/EnterChannelDlg.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/EnterChannelDlg.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/EnterChannelDlg.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/ExtCaptureDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/ExtCaptureDlg.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/ExtCaptureDlg.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/ExtCaptureDlg.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/ExtendAudioFrameObserver.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include "ExtendAudioFrameObserver.h"
3 |
4 |
5 | CExtendAudioFrameObserver::CExtendAudioFrameObserver()
6 | {
7 | }
8 |
9 |
10 | CExtendAudioFrameObserver::~CExtendAudioFrameObserver()
11 | {
12 | }
13 |
14 | bool CExtendAudioFrameObserver::onRecordAudioFrame(AudioFrame& audioFrame)
15 | {
16 | SIZE_T nSize = audioFrame.channels*audioFrame.samples * 2;
17 | CAudioCapturePackageQueue::GetInstance()->PopAudioPackage(audioFrame.buffer, &nSize);
18 |
19 | return true;
20 | }
21 |
22 | bool CExtendAudioFrameObserver::onPlaybackAudioFrame(AudioFrame& audioFrame)
23 | {
24 | SIZE_T nSize = audioFrame.channels*audioFrame.samples * 2;
25 | CAudioPlayPackageQueue::GetInstance()->PushAudioPackage(audioFrame.buffer, nSize);
26 |
27 | return true;
28 | }
29 |
30 | bool CExtendAudioFrameObserver::onMixedAudioFrame(AudioFrame& audioFrame)
31 | {
32 | return true;
33 | }
34 |
35 | bool CExtendAudioFrameObserver::onPlaybackAudioFrameBeforeMixing(unsigned int uid, AudioFrame& audioFrame)
36 | {
37 | return true;
38 | }
39 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/ExtendAudioFrameObserver.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "../SDK/include/IAgoraMediaEngine.h"
3 |
4 | #include "AudioCapturePackageQueue.h"
5 | #include "AudioPlayPackageQueue.h"
6 | #include "XAudioPlayout.h"
7 |
8 | class CExtendAudioFrameObserver :
9 | public agora::media::IAudioFrameObserver
10 | {
11 | public:
12 | CExtendAudioFrameObserver();
13 | ~CExtendAudioFrameObserver();
14 |
15 | virtual bool onRecordAudioFrame(AudioFrame& audioFrame);
16 | virtual bool onPlaybackAudioFrame(AudioFrame& audioFrame);
17 | virtual bool onMixedAudioFrame(AudioFrame& audioFrame);
18 | virtual bool onPlaybackAudioFrameBeforeMixing(unsigned int uid, AudioFrame& audioFrame);
19 | };
20 |
21 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/ExtendVideoFrameObserver.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "../SDK/include/IAgoraMediaEngine.h"
3 | #include "VideoPackageQueue.h"
4 |
5 | class CExtendVideoFrameObserver :
6 | public agora::media::IVideoFrameObserver
7 | {
8 | public:
9 | CExtendVideoFrameObserver();
10 | ~CExtendVideoFrameObserver();
11 |
12 | virtual bool onCaptureVideoFrame(VideoFrame& videoFrame);
13 | virtual bool onRenderVideoFrame(unsigned int uid, VideoFrame& videoFrame);
14 |
15 | private:
16 | LPBYTE m_lpImageBuffer;
17 | LPBYTE m_lpY;
18 | LPBYTE m_lpU;
19 | LPBYTE m_lpV;
20 | };
21 |
22 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/LanguageSet.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | //#define LANGUAGE_SET_MSG _T("SNOWWALKER_LANGSET_MSG")
4 |
5 | #define LANG_STR(lpStringID) (CLanguageSet::GetInstance()->GetString(lpStringID))
6 |
7 | class CLanguageSet
8 | {
9 | protected:
10 | CLanguageSet();
11 | ~CLanguageSet();
12 |
13 | public:
14 | static CLanguageSet *GetInstance();
15 | static void CloseInstance();
16 |
17 | CString GetCurrentLanguage();
18 | BOOL SetCurrentLanguage(LPCTSTR lpLanguageName);
19 | LPCTSTR GetString(LPCSTR lpStringID);
20 |
21 | BOOL LoadLanguageModule(LPCTSTR lpLanguageName = NULL);
22 | void UnloadLanguageModule();
23 |
24 | private:
25 | HMODULE m_hLanguageModule;
26 | static CLanguageSet *m_lpLanguageSet;
27 | static TCHAR m_szSelfPath[MAX_PATH];
28 | };
29 |
30 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/LogoDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/LogoDlg.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/LogoDlg.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/LogoDlg.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/SetupDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/SetupDlg.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/SetupDlg.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/SetupDlg.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/StreamingVoiceContext.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "xaudio2.h"
4 |
5 | struct StreamingVoiceContext : public IXAudio2VoiceCallback
6 | {
7 | STDMETHOD_(void, OnVoiceProcessingPassStart)(UINT32)
8 | {
9 | }
10 | STDMETHOD_(void, OnVoiceProcessingPassEnd)()
11 | {
12 | }
13 | STDMETHOD_(void, OnStreamEnd)()
14 | {
15 | }
16 | STDMETHOD_(void, OnBufferStart)(void*)
17 | {
18 | }
19 | STDMETHOD_(void, OnBufferEnd)(void*)
20 | {
21 | SetEvent(hBufferEndEvent);
22 | }
23 | STDMETHOD_(void, OnLoopEnd)(void*)
24 | {
25 | }
26 | STDMETHOD_(void, OnVoiceError)(void*, HRESULT)
27 | {
28 | }
29 |
30 | HANDLE hBufferEndEvent;
31 |
32 | StreamingVoiceContext() : hBufferEndEvent(CreateEvent(NULL, FALSE, FALSE, NULL))
33 | {
34 | }
35 | virtual ~StreamingVoiceContext()
36 | {
37 | CloseHandle(hBufferEndEvent);
38 | }
39 | };
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/VideoDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/VideoDlg.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/VideoDlg.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/VideoDlg.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/VideoPackageQueue.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "BufferQueue.h"
4 |
5 | class CVideoPackageQueue
6 | {
7 | protected:
8 | CVideoPackageQueue();
9 | ~CVideoPackageQueue();
10 |
11 | public:
12 | static CVideoPackageQueue *GetInstance();
13 | static void CloseInstance();
14 |
15 | void SetVideoFormat(const BITMAPINFOHEADER *lpInfoHeader);
16 | void GetVideoFormat(BITMAPINFOHEADER *lpInfoHeader);
17 |
18 | BOOL PushVideoPackage(LPCVOID lpAudioPackage, SIZE_T nPackageLen);
19 | BOOL PopVideoPackage(LPVOID lpVideoPackage, SIZE_T *nPackageSize);
20 |
21 | SIZE_T GetVideoPackageSize() const { return m_nPackageSize; };
22 | SIZE_T GetBufferSize() const { return m_nBufferSize; };
23 |
24 | private:
25 | CBufferQueue m_bufQueue;
26 | BITMAPINFOHEADER m_bmiHeader;
27 | SIZE_T m_nPackageSize;
28 | SIZE_T m_nBufferSize;
29 |
30 | static CVideoPackageQueue *m_lpVideoPackageQueue;
31 | };
32 |
33 |
34 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/YUVTrans.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/YUVTrans.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/libYUV/libyuv/version.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012 The LibYuv Project Authors. All rights reserved.
3 | *
4 | * Use of this source code is governed by a BSD-style license
5 | * that can be found in the LICENSE file in the root of the source
6 | * tree. An additional intellectual property rights grant can be found
7 | * in the file PATENTS. All contributing project authors may
8 | * be found in the AUTHORS file in the root of the source tree.
9 | */
10 |
11 | #ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT
12 | #define INCLUDE_LIBYUV_VERSION_H_
13 |
14 | #define LIBYUV_VERSION 1419
15 |
16 | #endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT
17 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/AgoraExternalCapture.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/AgoraExternalCapture.ico
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/AgoraExternalCapture.rc2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/AgoraExternalCapture.rc2
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BACKGROUND_VIDEO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BACKGROUND_VIDEO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNAUDIO_VIDEO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNAUDIO_VIDEO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNCLOSE.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNCLOSE.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNENDCALL_VIDEO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNENDCALL_VIDEO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNFULLSCR_VIDEO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNFULLSCR_VIDEO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNMAUDIO_VIDEO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNMAUDIO_VIDEO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNMAX.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNMAX.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNMIN.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNMIN.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNMORE_VIDEO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNMORE_VIDEO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNMSG_VIDEO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNMSG_VIDEO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNNORSCR_VIDEO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNNORSCR_VIDEO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNRESTORE.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNRESTORE.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNSCRCAP_VIDEO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNSCRCAP_VIDEO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNSETUP_VIDEO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNSETUP_VIDEO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNTIP_VIDEO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNTIP_VIDEO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNVIDEO_VIDEO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_BTNVIDEO_VIDEO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_CMBBTN.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_CMBBTN.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_CMBSEL.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_CMBSEL.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_DESKTOPSHARE_VIDEO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_DESKTOPSHARE_VIDEO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_DLG_LOGO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_DLG_LOGO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_DLG_MAIN.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_DLG_MAIN.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_LOGO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_LOGO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_MENU_DEVICE.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_MENU_DEVICE.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_MENU_FILTER.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_MENU_FILTER.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_MENU_INFO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_MENU_INFO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_MENU_MORE.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_MENU_MORE.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_NETWORK_QUALITY.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_NETWORK_QUALITY.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_SLD_HOVER.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_SLD_HOVER.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_SLD_NORMAL.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/IDB_SLD_NORMAL.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/ID_TEST_AUDIO.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/res/ID_TEST_AUDIO.wav
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/resource.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/resource.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/stdafx.cpp:
--------------------------------------------------------------------------------
1 |
2 | // stdafx.cpp : source file that includes just the standard includes
3 | // AgoraVideoCall.pch will be the pre-compiled header
4 | // stdafx.obj will contain the pre-compiled type information
5 |
6 | #include "stdafx.h"
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/targetver.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | // Including SDKDDKVer.h defines the highest available Windows platform.
4 |
5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
7 |
8 | #include
9 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/AgoraExternalCapture/video_preprocessing_plugin.h:
--------------------------------------------------------------------------------
1 |
2 | #ifndef _VIDEO_PREPROCESSING_PLUGIN_H_
3 | #define _VIDEO_PREPROCESSING_PLUGIN_H_
4 |
5 | #include "../SDK/include/IAgoraRtcEngine.h"
6 |
7 | int load_preprocessing_plugin(agora::rtc::IRtcEngine* engine);
8 | int unload_preprocessing_plugin(agora::rtc::IRtcEngine* engine);
9 |
10 | #endif //_VIDEO_PREPROCESSING_PLUGIN_H_
11 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/Language/ChineseSimplified/ChineseSimplified.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/Language/ChineseSimplified/ChineseSimplified.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/Language/ChineseSimplified/ChineseSimplified.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/Language/ChineseSimplified/ChineseSimplified.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/Language/ChineseSimplified/dllmain.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/Language/ChineseSimplified/dllmain.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/Language/ChineseSimplified/stdafx.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/Language/ChineseSimplified/stdafx.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/Language/ChineseSimplified/stdafx.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/Language/ChineseSimplified/stdafx.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/Language/ChineseSimplified/targetver.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/Language/ChineseSimplified/targetver.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/Language/English/English.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/Language/English/English.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/Language/English/English.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/Language/English/English.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/Language/English/ReadMe.txt:
--------------------------------------------------------------------------------
1 | ========================================================================
2 | 动态链接库:English 项目概述
3 | ========================================================================
4 |
5 | 应用程序向导已为您创建了此 English DLL。
6 |
7 | 本文件概要介绍组成 English 应用程序的每个文件的内容。
8 |
9 |
10 | English.vcxproj
11 | 这是使用应用程序向导生成的 VC++ 项目的主项目文件,其中包含生成该文件的 Visual C++ 的版本信息,以及有关使用应用程序向导选择的平台、配置和项目功能的信息。
12 |
13 | English.vcxproj.filters
14 | 这是使用“应用程序向导”生成的 VC++ 项目筛选器文件。它包含有关项目文件与筛选器之间的关联信息。在 IDE 中,通过这种关联,在特定节点下以分组形式显示具有相似扩展名的文件。例如,“.cpp”文件与“源文件”筛选器关联。
15 |
16 | English.cpp
17 | 这是主 DLL 源文件。
18 |
19 | /////////////////////////////////////////////////////////////////////////////
20 | 其他标准文件:
21 |
22 | StdAfx.h, StdAfx.cpp
23 | 这些文件用于生成名为 English.pch 的预编译头 (PCH) 文件和名为 StdAfx.obj 的预编译类型文件。
24 |
25 | /////////////////////////////////////////////////////////////////////////////
26 | 其他注释:
27 |
28 | 应用程序向导使用“TODO:”注释来指示应添加或自定义的源代码部分。
29 |
30 | /////////////////////////////////////////////////////////////////////////////
31 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/Language/English/dllmain.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/Language/English/dllmain.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/Language/English/stdafx.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/Language/English/stdafx.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/Language/English/stdafx.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/Language/English/stdafx.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/Language/English/targetver.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/Language/English/targetver.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows-dx-2010/SDK/PLACEHOLDER:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows-dx-2010/SDK/PLACEHOLDER
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGButton.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGButton.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGComboBox.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGComboBox.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGConfig.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | class CAGConfig
3 | {
4 | public:
5 | CAGConfig();
6 | ~CAGConfig();
7 |
8 | int GetCodec();
9 | BOOL SetCodec(int nCodec);
10 |
11 | /* int GetResolution();
12 | BOOL SetResolution(int nResolution);
13 |
14 | int GetFPS();
15 | BOOL SetFPS(int nPFS);
16 |
17 | int GetMaxRate();
18 | BOOL SetMaxRate(int nMaxRate);
19 | */
20 | BOOL EnableAutoSave(BOOL bEnable);
21 | BOOL IsAutoSaveEnabled();
22 |
23 | BOOL SetSolution(int nIndex);
24 | int GetSolution();
25 | CString GetAppid();
26 | void SetAppid(CString appid);
27 |
28 | CString GetFilePath() { return m_szConfigFile; }
29 | private:
30 | TCHAR m_szConfigFile[MAX_PATH];
31 | };
32 |
33 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGDesktopCaptureDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGDesktopCaptureDlg.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGDesktopCaptureDlg.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGDesktopCaptureDlg.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGEdit.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGEdit.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGHyperLink.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGHyperLink.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGLinkCtrl.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGLinkCtrl.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGLinkCtrl.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 |
4 | // CAGLinkCtrl
5 |
6 | class CAGLinkCtrl : public CStatic
7 | {
8 | DECLARE_DYNAMIC(CAGLinkCtrl)
9 |
10 | public:
11 | CAGLinkCtrl();
12 | virtual ~CAGLinkCtrl();
13 |
14 | void SetTextColor(COLORREF crText, COLORREF crHover);
15 | void SetBackColor(COLORREF crBack);
16 | COLORREF GetTextColor() const;
17 | COLORREF GetHoverColor() const;
18 |
19 | protected:
20 | virtual void PreSubclassWindow();
21 |
22 | afx_msg void OnPaint();
23 | afx_msg void OnMouseMove(UINT nFlags, CPoint point);
24 | afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
25 | afx_msg void OnMouseLeave();
26 |
27 | DECLARE_MESSAGE_MAP()
28 |
29 | private:
30 | COLORREF m_crText;
31 | COLORREF m_crHover; // Hover colour
32 | COLORREF m_crBack;
33 | BOOL m_bOverControl;
34 | BOOL m_bTrackMouseEvent;
35 | };
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGMessage.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define WM_GOBACK WM_USER+100
4 | #define WM_GONEXT WM_USER+101
5 | #define WM_JOINCHANNEL WM_USER+200
6 | #define WM_LEAVECHANNEL WM_USER+201
7 |
8 |
9 | #define WM_AGSLD_TMBPOSCHANGED WM_USER+200
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGResourceVisitor.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGResourceVisitor.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGScreenCaptureDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGScreenCaptureDlg.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGScreenCaptureDlg.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "afxcoll.h"
3 |
4 | #define WM_WINDOWSHARE WM_USER+303
5 | // CAGScreenCaptureWnd
6 |
7 | class CAGScreenCaptureDlg : public CDialogEx
8 | {
9 | DECLARE_DYNAMIC(CAGScreenCaptureDlg)
10 |
11 | public:
12 | CAGScreenCaptureDlg(CWnd* pParent = NULL);
13 | virtual ~CAGScreenCaptureDlg();
14 |
15 | enum { IDD = IDD_SCRCAP_DIALOG };
16 |
17 | int RefreashWndInfo();
18 | BOOL SaveScreen(LPCRECT lpRect);
19 |
20 | protected:
21 | afx_msg void OnMouseMove(UINT nFlags, CPoint point);
22 | afx_msg void OnPaint();
23 |
24 | afx_msg BOOL OnEraseBkgnd(CDC* pDC);
25 | afx_msg void OnShowWindow(BOOL bShow, UINT nStatus);
26 |
27 | DECLARE_MESSAGE_MAP()
28 |
29 | static BOOL CALLBACK WndEnumProc(HWND hWnd, LPARAM lParam);
30 |
31 | private:
32 | CBitmap m_bmpDesktop;
33 |
34 | CList m_listWnd;
35 | HWND m_hMarkWnd;
36 |
37 | public:
38 |
39 | afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
40 | afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
41 | };
42 |
43 |
44 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGSliderCtrl.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGSliderCtrl.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGVideoTestWnd.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGVideoTestWnd.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGVideoTestWnd.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGVideoTestWnd.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGVideoWnd.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AGVideoWnd.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AgoraAudInputManager.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | class CAgoraAudInputManager
3 | {
4 | public:
5 | CAgoraAudInputManager();
6 | ~CAgoraAudInputManager();
7 |
8 | BOOL Create(IRtcEngine *lpRtcEngine);
9 | void Close();
10 |
11 | UINT GetVolume();
12 | BOOL SetVolume(UINT nVol);
13 | UINT GetDeviceCount();
14 |
15 | CString GetCurDeviceID();
16 | BOOL SetCurDevice(LPCTSTR lpDeviceID);
17 |
18 | BOOL GetDevice(UINT nIndex, CString &rDeviceName, CString &rDeviceID);
19 |
20 | void TestAudInputDevice(HWND hMsgWnd, BOOL bTestOn);
21 |
22 | BOOL IsTesting() { return m_bTestingOn; };
23 | private:
24 | BOOL m_bTestingOn;
25 | HWND m_hOldMsgWnd;
26 | AAudioDeviceManager *m_ptrDeviceManager;
27 | IAudioDeviceCollection *m_lpCollection;
28 | };
29 |
30 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AgoraCameraManager.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | class CAgoraCameraManager
3 | {
4 | public:
5 | CAgoraCameraManager();
6 | ~CAgoraCameraManager();
7 |
8 | BOOL Create(IRtcEngine *lpRtcEngine);
9 | void Close();
10 |
11 | UINT GetDeviceCount();
12 |
13 | CString GetCurDeviceID();
14 | BOOL SetCurDevice(LPCTSTR lpDeviceID);
15 |
16 | BOOL GetDevice(UINT nIndex, CString &rDeviceName, CString &rDeviceID);
17 | void TestCameraDevice(HWND hVideoWnd, BOOL bTestOn = TRUE);
18 |
19 | BOOL IsTesting() { return m_bTestingOn; };
20 |
21 | private:
22 | AVideoDeviceManager *m_ptrDeviceManager;
23 | IVideoDeviceCollection *m_lpCollection;
24 | BOOL m_bTestingOn;
25 | };
26 |
27 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AgoraExternalCapture.aps:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AgoraExternalCapture.aps
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AgoraExternalCapture.h:
--------------------------------------------------------------------------------
1 |
2 | // OpenVideoCall.h : main header file for the PROJECT_NAME application
3 | //
4 |
5 | #pragma once
6 |
7 | #ifndef __AFXWIN_H__
8 | #error "include 'stdafx.h' before including this file for PCH"
9 | #endif
10 |
11 | #include "resource.h" // main symbols
12 |
13 | // CAgoraVideoCallApp:
14 | // See AgoraVideoCall.cpp for the implementation of this class
15 | //
16 | class CAgoraExternalCaptureDlg;
17 | class CAgoraExternalCaptureApp : public CWinApp
18 | {
19 | public:
20 | CAgoraExternalCaptureApp();
21 | ~CAgoraExternalCaptureApp();
22 | // Overrides
23 | public:
24 | virtual BOOL InitInstance();
25 | virtual int ExitInstance();
26 | // Implementation
27 |
28 | DECLARE_MESSAGE_MAP()
29 | private:
30 | CAgoraExternalCaptureDlg* avcDlg;
31 | };
32 |
33 | extern CAgoraExternalCaptureApp theApp;
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AgoraExternalCapture.rc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AgoraExternalCapture.rc
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AgoraExternalCaptureDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AgoraExternalCaptureDlg.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AgoraObject.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AgoraObject.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AgoraObject.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AgoraObject.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/AgoraPlayoutManager.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | class CAgoraPlayoutManager
3 | {
4 | public:
5 | CAgoraPlayoutManager();
6 | ~CAgoraPlayoutManager();
7 |
8 | BOOL Create(IRtcEngine *lpRtcEngine);
9 | void Close();
10 |
11 | UINT GetVolume();
12 | BOOL SetVolume(UINT nVol);
13 | UINT GetDeviceCount();
14 |
15 | CString GetCurDeviceID();
16 | BOOL SetCurDevice(LPCTSTR lpDeviceID);
17 |
18 | BOOL GetDevice(UINT nIndex, CString &rDeviceName, CString &rDeviceID);
19 | void TestPlaybackDevice(UINT nWavID, BOOL bTestOn = TRUE);
20 |
21 | BOOL IsTesting() { return m_bTestingOn; };
22 | private:
23 | AAudioDeviceManager *m_ptrDeviceManager;
24 | IAudioDeviceCollection *m_lpCollection;
25 |
26 | private:
27 | BOOL m_bTestingOn;
28 | };
29 |
30 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/ChatDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/ChatDlg.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/ChatDlg.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/ChatDlg.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/DeviceDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/DeviceDlg.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/DeviceDlg.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/DeviceDlg.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/DskcapsetDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/DskcapsetDlg.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/DskcapsetDlg.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/DskcapsetDlg.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/EnterChannelDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/EnterChannelDlg.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/EnterChannelDlg.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/EnterChannelDlg.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/ExtCaptureDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/ExtCaptureDlg.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/ExtCaptureDlg.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/ExtCaptureDlg.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/ExtendAudioFrameObserver.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "IAgoraMediaEngine.h"
3 | #include "CirCleBuffer.hpp"
4 | //#include "XAudioPlayout.h"
5 |
6 | class CExtendAudioFrameObserver :
7 | public agora::media::IAudioFrameObserver
8 | {
9 | public:
10 | CExtendAudioFrameObserver();
11 | ~CExtendAudioFrameObserver();
12 |
13 | virtual bool onRecordAudioFrame(AudioFrame& audioFrame);
14 | virtual bool onPlaybackAudioFrame(AudioFrame& audioFrame);
15 | virtual bool onMixedAudioFrame(AudioFrame& audioFrame);
16 | virtual bool onPlaybackAudioFrameBeforeMixing(unsigned int uid, AudioFrame& audioFrame);
17 | };
18 |
19 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/LanguageSet.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | //#define LANGUAGE_SET_MSG _T("SNOWWALKER_LANGSET_MSG")
4 |
5 | #define LANG_STR(lpStringID) (CLanguageSet::GetInstance()->GetString(lpStringID))
6 |
7 | class CLanguageSet
8 | {
9 | protected:
10 | CLanguageSet();
11 | ~CLanguageSet();
12 |
13 | public:
14 | static CLanguageSet *GetInstance();
15 | static void CloseInstance();
16 |
17 | CString GetCurrentLanguage();
18 | BOOL SetCurrentLanguage(LPCTSTR lpLanguageName);
19 | LPCTSTR GetString(LPCSTR lpStringID);
20 |
21 | BOOL LoadLanguageModule(LPCTSTR lpLanguageName = NULL);
22 | void UnloadLanguageModule();
23 |
24 | private:
25 | HMODULE m_hLanguageModule;
26 | static CLanguageSet *m_lpLanguageSet;
27 | static TCHAR m_szSelfPath[MAX_PATH];
28 | };
29 |
30 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/LogoDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/LogoDlg.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/LogoDlg.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/LogoDlg.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/SetupDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/SetupDlg.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/SetupDlg.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/SetupDlg.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/StreamingVoiceContext.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "xaudio2.h"
4 |
5 | struct StreamingVoiceContext : public IXAudio2VoiceCallback
6 | {
7 | STDMETHOD_(void, OnVoiceProcessingPassStart)(UINT32)
8 | {
9 | }
10 | STDMETHOD_(void, OnVoiceProcessingPassEnd)()
11 | {
12 | }
13 | STDMETHOD_(void, OnStreamEnd)()
14 | {
15 | }
16 | STDMETHOD_(void, OnBufferStart)(void*)
17 | {
18 | }
19 | STDMETHOD_(void, OnBufferEnd)(void*)
20 | {
21 | SetEvent(hBufferEndEvent);
22 | }
23 | STDMETHOD_(void, OnLoopEnd)(void*)
24 | {
25 | }
26 | STDMETHOD_(void, OnVoiceError)(void*, HRESULT)
27 | {
28 | }
29 |
30 | HANDLE hBufferEndEvent;
31 |
32 | StreamingVoiceContext() : hBufferEndEvent(CreateEvent(NULL, FALSE, FALSE, NULL))
33 | {
34 | }
35 | virtual ~StreamingVoiceContext()
36 | {
37 | CloseHandle(hBufferEndEvent);
38 | }
39 | };
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/VideoDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/VideoDlg.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/VideoDlg.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/VideoDlg.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/AgoraExternalCapture.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/AgoraExternalCapture.ico
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/AgoraExternalCapture.rc2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/AgoraExternalCapture.rc2
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BACKGROUND_VIDEO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BACKGROUND_VIDEO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNAUDIO_VIDEO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNAUDIO_VIDEO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNCLOSE.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNCLOSE.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNENDCALL_VIDEO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNENDCALL_VIDEO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNFULLSCR_VIDEO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNFULLSCR_VIDEO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNMAUDIO_VIDEO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNMAUDIO_VIDEO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNMAX.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNMAX.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNMIN.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNMIN.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNMORE_VIDEO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNMORE_VIDEO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNMSG_VIDEO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNMSG_VIDEO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNNORSCR_VIDEO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNNORSCR_VIDEO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNRESTORE.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNRESTORE.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNSCRCAP_VIDEO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNSCRCAP_VIDEO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNSETUP_VIDEO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNSETUP_VIDEO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNTIP_VIDEO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNTIP_VIDEO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNVIDEO_VIDEO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_BTNVIDEO_VIDEO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_CMBBTN.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_CMBBTN.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_CMBSEL.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_CMBSEL.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_DESKTOPSHARE_VIDEO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_DESKTOPSHARE_VIDEO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_DLG_LOGO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_DLG_LOGO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_DLG_MAIN.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_DLG_MAIN.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_LOGO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_LOGO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_MENU_DEVICE.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_MENU_DEVICE.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_MENU_FILTER.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_MENU_FILTER.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_MENU_INFO.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_MENU_INFO.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_MENU_MORE.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_MENU_MORE.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_NETWORK_QUALITY.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_NETWORK_QUALITY.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_SLD_HOVER.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_SLD_HOVER.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_SLD_NORMAL.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/IDB_SLD_NORMAL.bmp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/ID_TEST_AUDIO.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/res/ID_TEST_AUDIO.wav
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/resource.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/resource.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/stdafx.cpp:
--------------------------------------------------------------------------------
1 |
2 | // stdafx.cpp : source file that includes just the standard includes
3 | // AgoraVideoCall.pch will be the pre-compiled header
4 | // stdafx.obj will contain the pre-compiled type information
5 |
6 | #include "stdafx.h"
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/targetver.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | // Including SDKDDKVer.h defines the highest available Windows platform.
4 |
5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
7 |
8 | #include
9 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/AgoraExternalCapture/video_preprocessing_plugin.h:
--------------------------------------------------------------------------------
1 |
2 | #ifndef _VIDEO_PREPROCESSING_PLUGIN_H_
3 | #define _VIDEO_PREPROCESSING_PLUGIN_H_
4 |
5 | #include "../SDK/include/IAgoraRtcEngine.h"
6 |
7 | int load_preprocessing_plugin(agora::rtc::IRtcEngine* engine);
8 | int unload_preprocessing_plugin(agora::rtc::IRtcEngine* engine);
9 |
10 | #endif //_VIDEO_PREPROCESSING_PLUGIN_H_
11 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/Language/ChineseSimplified/ChineseSimplified.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/Language/ChineseSimplified/ChineseSimplified.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/Language/ChineseSimplified/ChineseSimplified.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/Language/ChineseSimplified/ChineseSimplified.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/Language/ChineseSimplified/dllmain.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/Language/ChineseSimplified/dllmain.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/Language/ChineseSimplified/stdafx.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/Language/ChineseSimplified/stdafx.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/Language/ChineseSimplified/stdafx.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/Language/ChineseSimplified/stdafx.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/Language/ChineseSimplified/targetver.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/Language/ChineseSimplified/targetver.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/Language/English/English.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/Language/English/English.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/Language/English/English.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/Language/English/English.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/Language/English/ReadMe.txt:
--------------------------------------------------------------------------------
1 | ========================================================================
2 | 动态链接库:English 项目概述
3 | ========================================================================
4 |
5 | 应用程序向导已为您创建了此 English DLL。
6 |
7 | 本文件概要介绍组成 English 应用程序的每个文件的内容。
8 |
9 |
10 | English.vcxproj
11 | 这是使用应用程序向导生成的 VC++ 项目的主项目文件,其中包含生成该文件的 Visual C++ 的版本信息,以及有关使用应用程序向导选择的平台、配置和项目功能的信息。
12 |
13 | English.vcxproj.filters
14 | 这是使用“应用程序向导”生成的 VC++ 项目筛选器文件。它包含有关项目文件与筛选器之间的关联信息。在 IDE 中,通过这种关联,在特定节点下以分组形式显示具有相似扩展名的文件。例如,“.cpp”文件与“源文件”筛选器关联。
15 |
16 | English.cpp
17 | 这是主 DLL 源文件。
18 |
19 | /////////////////////////////////////////////////////////////////////////////
20 | 其他标准文件:
21 |
22 | StdAfx.h, StdAfx.cpp
23 | 这些文件用于生成名为 English.pch 的预编译头 (PCH) 文件和名为 StdAfx.obj 的预编译类型文件。
24 |
25 | /////////////////////////////////////////////////////////////////////////////
26 | 其他注释:
27 |
28 | 应用程序向导使用“TODO:”注释来指示应添加或自定义的源代码部分。
29 |
30 | /////////////////////////////////////////////////////////////////////////////
31 |
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/Language/English/dllmain.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/Language/English/dllmain.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/Language/English/stdafx.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/Language/English/stdafx.cpp
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/Language/English/stdafx.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/Language/English/stdafx.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/Language/English/targetver.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/Windows/AgoraAudioIO-Windows/Language/English/targetver.h
--------------------------------------------------------------------------------
/Windows/AgoraAudioIO-Windows/prebuild.bat:
--------------------------------------------------------------------------------
1 | set sdkversion=small
2 |
3 | set Machine=%~1
4 | set absolute_path=%~2
5 | cd %absolute_path%
6 |
7 | if %sdkversion% == origin ( exit )
8 |
9 |
10 | if %sdkversion% == small (
11 | set sdkinclude=libs\include
12 | set sdkdll=libs\x86
13 | set sdklib=libs\x86
14 | if %Machine% == x64 (
15 | set sdkdll=libs\x86_64
16 | set sdklib=libs\x86_64
17 | )
18 | )
19 |
20 | if not exist sdk (
21 | mkdir sdk
22 | )
23 |
24 | if exist sdk (
25 | pushd sdk
26 | if not exist dll (
27 | mkdir dll
28 | )
29 |
30 | if not exist lib (
31 | mkdir lib
32 | )
33 | if not exist include (
34 | mkdir include
35 | )
36 | popd
37 | )
38 |
39 | if %sdkversion% == small (
40 | if exist %sdkinclude% (
41 | copy %sdkinclude%\*.h sdk\include
42 | )
43 |
44 | if exist %sdklib% (
45 | copy %sdklib%\*.lib sdk\lib /y
46 | )
47 | if exist %sdkdll% (
48 | copy %sdkdll%\*.dll sdk\dll /y
49 | )
50 | )
51 | pause
--------------------------------------------------------------------------------
/Windows/cicd/script/downloadsdk1.ps1:
--------------------------------------------------------------------------------
1 | param($SDKURL, $LocalFileName)
2 | Invoke-WebRequest -Uri "$SDKURL" -OutFile "$LocalFileName" -TimeoutSec 10;
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR.xcodeproj/.xcodesamplecode.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // Agora-RTC-With-ASMR
4 | //
5 | // Created by CavanSu on 11/01/2018.
6 | // Copyright © 2018 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/call.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "calling@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "calling@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/call.imageset/calling@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/call.imageset/calling@2x.png
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/call.imageset/calling@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/call.imageset/calling@3x.png
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/earphone.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "earphone@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "earphone@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/earphone.imageset/earphone@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/earphone.imageset/earphone@2x.png
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/earphone.imageset/earphone@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/earphone.imageset/earphone@3x.png
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/hungup.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "hungup@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "hungup@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/hungup.imageset/hungup@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/hungup.imageset/hungup@2x.png
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/hungup.imageset/hungup@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/hungup.imageset/hungup@3x.png
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/mute.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "mute@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "mute@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/mute.imageset/mute@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/mute.imageset/mute@2x.png
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/mute.imageset/mute@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/mute.imageset/mute@3x.png
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/speaker.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "speaker@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "speaker@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/speaker.imageset/speaker@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/speaker.imageset/speaker@2x.png
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/speaker.imageset/speaker@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/speaker.imageset/speaker@3x.png
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/un-mute.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "un-mute@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "un-mute@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/un-mute.imageset/un-mute@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/un-mute.imageset/un-mute@2x.png
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/un-mute.imageset/un-mute@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Assets.xcassets/un-mute.imageset/un-mute@3x.png
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/AudioSource.pch:
--------------------------------------------------------------------------------
1 | //
2 | // AudioSource.pch
3 | // Audio Source
4 | //
5 | // Created by CavanSu on 2017/9/19.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #ifndef AudioSource_pch
10 | #define AudioSource_pch
11 |
12 | #import "Define.h"
13 |
14 | #endif /* AudioSource_pch */
15 |
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/AudioWriteToFile.h:
--------------------------------------------------------------------------------
1 | //
2 | // AudioWriteToFile.h
3 | // Agora-RTC-With-ASMR
4 | //
5 | // Created by CavanSu on 08/11/2017.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AudioWriteToFile : NSObject
12 | + (void)writeToFileWithData:(void *)data length:(int)bytes;
13 | @end
14 |
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/ChannelNameCheck.h:
--------------------------------------------------------------------------------
1 | //
2 | // ChannelNameCheck.h
3 | // Agora-RTC-With-ASMR
4 | //
5 | // Created by CavanSu on 2017/9/18.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ChannelNameCheck : NSObject
12 | + (NSString *)channelNameCheckLegal:(NSString *)channelName;
13 | @end
14 |
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/ChannelNameCheck.m:
--------------------------------------------------------------------------------
1 | //
2 | // ChannelNameCheck.m
3 | // Agora-RTC-With-ASMR
4 | //
5 | // Created by CavanSu on 2017/9/18.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import "ChannelNameCheck.h"
10 |
11 | @implementation ChannelNameCheck
12 | + (NSString *)channelNameCheckLegal:(NSString *)channelName {
13 | NSString *includerChars = @"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!#$%&()+,-:;<=.>?@[]^_`{|}~";
14 | NSCharacterSet *invertedSet = [[NSCharacterSet characterSetWithCharactersInString:includerChars] invertedSet];
15 | NSArray *separatedArray = [channelName componentsSeparatedByCharactersInSet:invertedSet];
16 | NSString *fixedChannelName = [separatedArray componentsJoinedByString:@""];
17 |
18 | return fixedChannelName;
19 | }
20 | @end
21 |
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/ChatButton.h:
--------------------------------------------------------------------------------
1 | //
2 | // ChatButton.h
3 | // Agora-RTC-With-ASMR
4 | //
5 | // Created by CavanSu on 2017/9/12.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ChatButton : UIButton
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/ChatButton.m:
--------------------------------------------------------------------------------
1 | //
2 | // ChatButton.m
3 | // Agora-RTC-With-ASMR
4 | //
5 | // Created by CavanSu on 2017/9/12.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import "ChatButton.h"
10 |
11 | @implementation ChatButton
12 | - (void)layoutSubviews {
13 | [super layoutSubviews];
14 |
15 | CGFloat imageViewWH = 44;
16 | CGFloat imageViewY = (self.frame.size.width - imageViewWH) * 0.5;
17 | CGFloat labelWH = 20;
18 |
19 | self.imageView.frame = CGRectMake(imageViewY, 0, imageViewWH, imageViewWH);
20 | self.titleLabel.frame = CGRectMake(0, imageViewWH, self.frame.size.width, labelWH);
21 | self.titleLabel.textAlignment = NSTextAlignmentCenter;
22 | self.titleLabel.font = [UIFont systemFontOfSize:14];
23 | }
24 |
25 | - (void)sendAction:(SEL)action to:(nullable id)target forEvent:(nullable UIEvent *)event {
26 | self.selected = !self.selected;
27 | [super sendAction:action to:target forEvent:event];
28 | }
29 | @end
30 |
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/ChooseButton.h:
--------------------------------------------------------------------------------
1 | //
2 | // ChooseButton.h
3 | // Agora-RTC-With-ASMR
4 | //
5 | // Created by CavanSu on 10/11/2017.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ChooseButton : UIButton
12 | - (void)cancelSelected;
13 | @end
14 |
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/Define.h:
--------------------------------------------------------------------------------
1 | //
2 | // Define.h
3 | // OpenVodieCall
4 | //
5 | // Created by CavanSu on 2017/9/5.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #ifndef Define_h
10 | #define Define_h
11 |
12 | #import
13 |
14 | typedef NS_ENUM(int, AudioIOMode) {
15 | AudioIOModeExterCaptureSDKPlay = 1,
16 | AudioIOModeSDKCaptureExterPlay = 2,
17 | AudioIOModeSDKCaptureSDKPlay = 3,
18 | AudioIOModeExterCaptureExterPlay = 4
19 | };
20 |
21 | #define ThemeColor [UIColor colorWithRed:122.0 / 255.0 green:203.0 / 255.0 blue:253.0 / 255.0 alpha:1]
22 |
23 | #endif /* Define_h */
24 |
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/InfoCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // InfoCell.h
3 | // Agora-RTC-With-ASMR
4 | //
5 | // Created by CavanSu on 2017/9/18.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "InfoModel.h"
11 |
12 | @interface InfoCell : UITableViewCell
13 | @property (weak, nonatomic) IBOutlet UILabel *infoLabel;
14 | @property (nonatomic, weak) InfoModel *model;
15 | @end
16 |
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/InfoCell.m:
--------------------------------------------------------------------------------
1 | //
2 | // InfoCell.m
3 | // Agora-RTC-With-ASMR
4 | //
5 | // Created by CavanSu on 2017/9/18.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import "InfoCell.h"
10 |
11 | @implementation InfoCell
12 | - (void)awakeFromNib {
13 | [super awakeFromNib];
14 |
15 | self.infoLabel.textColor = [UIColor whiteColor];
16 | self.contentView.backgroundColor = [UIColor clearColor];
17 | self.backgroundColor = [UIColor clearColor];
18 | self.infoLabel.preferredMaxLayoutWidth = [UIScreen mainScreen].bounds.size.width - 20;
19 | }
20 |
21 | - (void)setModel:(InfoModel *)model {
22 | self.infoLabel.text = model.infoStr;
23 | [self layoutIfNeeded];
24 |
25 | if (!model.height ) {
26 | model.height = CGRectGetMaxY(self.infoLabel.frame);
27 | }
28 | }
29 | @end
30 |
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/InfoModel.h:
--------------------------------------------------------------------------------
1 | //
2 | // InfoModel.h
3 | // Agora-RTC-With-ASMR
4 | //
5 | // Created by CavanSu on 2017/9/18.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface InfoModel : NSObject
12 | @property (nonatomic, copy) NSString *infoStr;
13 | @property (nonatomic, assign) float height;
14 | + (instancetype)modelWithInfoStr:(NSString *)infoStr;
15 | @end
16 |
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/InfoModel.m:
--------------------------------------------------------------------------------
1 | //
2 | // InfoModel.m
3 | // Agora-RTC-With-ASMR
4 | //
5 | // Created by CavanSu on 2017/9/18.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import "InfoModel.h"
10 |
11 | @implementation InfoModel
12 | + (instancetype)modelWithInfoStr:(NSString *)infoStr {
13 | InfoModel *model = [[InfoModel alloc] init];
14 | model.infoStr = [[NSString alloc] initWithString:infoStr];
15 |
16 | return model;
17 | }
18 | @end
19 |
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/InfoTableView.h:
--------------------------------------------------------------------------------
1 | //
2 | // InfoTableView.h
3 | // Agora-RTC-With-ASMR
4 | //
5 | // Created by CavanSu on 2017/10/12.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface InfoTableView : UITableView
12 | - (void)appendInfoToTableViewWithInfo:(NSString *)infoStr;
13 | @end
14 |
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/LogAudioSessionStatus.h:
--------------------------------------------------------------------------------
1 | //
2 | // LogAudioSessionStatus.h
3 | // Agora-RTC-With-ASMR
4 | //
5 | // Created by CavanSu on 14/12/2017.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface LogAudioSessionStatus : NSObject
12 | + (NSString *)logAudioSessionStatusWithCallPosition:(NSString *)position;
13 | @end
14 |
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/MainViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // MainViewController.h
3 | // Agora-RTC-With-ASMR
4 | //
5 | // Created by CavanSu on 2017/9/16.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MainViewController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/RoomPage/AppID.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppID.m
3 | // Agora-RTC-With-ASMR
4 | //
5 | // Created by CavanSu on 2017/9/12.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import "AppID.h"
10 |
11 | @implementation AppID
12 |
13 | + (NSString *)appID {
14 | return <#YOUR APPID#>;
15 | }
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/RoomViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // RoomViewController.h
3 | // Agora-RTC-With-ASMR
4 | //
5 | // Created by CavanSu on 2017/9/18.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface RoomViewController : UIViewController
12 | @property (nonatomic, copy) NSString *channelName;
13 | @property (nonatomic, assign) AudioIOMode audioMode;
14 | @property (nonatomic, assign) int sampleRate;
15 | @property (nonatomic, assign) int channels;
16 | @end
17 |
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/Agora-RTC-With-ASMR/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Agora-RTC-With-ASMR
4 | //
5 | // Created by CavanSu on 11/01/2018.
6 | // Copyright © 2018 CavanSu. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/build.sh:
--------------------------------------------------------------------------------
1 | rm -f *.ipa
2 | rm -rf *.app
3 | rm -f *.zip
4 | rm -rf dSYMs
5 | rm -rf *.dSYM
6 | rm -f *dSYMs.zip
7 | rm -rf *.xcarchive
8 |
9 | BUILD_DATE=`date +%Y-%m-%d-%H.%M.%S`
10 | APP_TARGET=Agora-RTC-With-ASMR
11 | ArchivePath=${APP_TARGET}-${BUILD_DATE}.xcarchive
12 |
13 | xcodebuild clean -project "${APP_TARGET}.xcodeproj" -scheme "${APP_TARGET}" -configuration Release
14 | xcodebuild -project "${APP_TARGET}.xcodeproj" -scheme "${APP_TARGET}" -archivePath ${ArchivePath} archive
15 | xcodebuild -exportArchive -exportOptionsPlist exportPlist.plist -archivePath ${ArchivePath} -exportPath .
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/clear.sh:
--------------------------------------------------------------------------------
1 | rm -rf *.xcarchive
2 | rm -f *.ipa
3 | rm -rf *.app
4 | rm -f DistributionSummary.plist
5 | rm -f ExportOptions.plist
6 | rm -f Packaging.log
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-ASMR/exportPlist.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | method
6 | development
7 | compileBitcode
8 |
9 | provisioningProfiles
10 |
11 | io.agora.Agora-RTC-With-ASMR
12 | App
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/Agora-RTC-With-Voice-Changer-iOS.xcodeproj/.xcodesamplecode.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/Agora-RTC-With-Voice-Changer-iOS/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/Agora-RTC-With-Voice-Changer-iOS/Assets.xcassets/btn_audio_effect.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "btn_audio_effect.pdf"
6 | }
7 | ],
8 | "info" : {
9 | "version" : 1,
10 | "author" : "xcode"
11 | }
12 | }
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/Agora-RTC-With-Voice-Changer-iOS/Assets.xcassets/btn_audio_effect.imageset/btn_audio_effect.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/Agora-RTC-With-Voice-Changer-iOS/Assets.xcassets/btn_audio_effect.imageset/btn_audio_effect.pdf
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/Agora-RTC-With-Voice-Changer-iOS/Assets.xcassets/btn_endcall.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "btn_endcall.pdf"
6 | }
7 | ],
8 | "info" : {
9 | "version" : 1,
10 | "author" : "xcode"
11 | }
12 | }
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/Agora-RTC-With-Voice-Changer-iOS/Assets.xcassets/btn_endcall.imageset/btn_endcall.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/Agora-RTC-With-Voice-Changer-iOS/Assets.xcassets/btn_endcall.imageset/btn_endcall.pdf
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/Agora-RTC-With-Voice-Changer-iOS/Assets.xcassets/btn_join.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "btn_join.pdf"
6 | }
7 | ],
8 | "info" : {
9 | "version" : 1,
10 | "author" : "xcode"
11 | }
12 | }
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/Agora-RTC-With-Voice-Changer-iOS/Assets.xcassets/btn_join.imageset/btn_join.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/Agora-RTC-With-Voice-Changer-iOS/Assets.xcassets/btn_join.imageset/btn_join.pdf
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/Agora-RTC-With-Voice-Changer-iOS/Assets.xcassets/btn_join_blue.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "btn_join_blue.pdf"
6 | }
7 | ],
8 | "info" : {
9 | "version" : 1,
10 | "author" : "xcode"
11 | }
12 | }
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/Agora-RTC-With-Voice-Changer-iOS/Assets.xcassets/btn_join_blue.imageset/btn_join_blue.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/Agora-RTC-With-Voice-Changer-iOS/Assets.xcassets/btn_join_blue.imageset/btn_join_blue.pdf
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/Agora-RTC-With-Voice-Changer-iOS/Assets.xcassets/btn_mute.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "btn_mute.pdf"
6 | }
7 | ],
8 | "info" : {
9 | "version" : 1,
10 | "author" : "xcode"
11 | }
12 | }
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/Agora-RTC-With-Voice-Changer-iOS/Assets.xcassets/btn_mute.imageset/btn_mute.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/Agora-RTC-With-Voice-Changer-iOS/Assets.xcassets/btn_mute.imageset/btn_mute.pdf
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/Agora-RTC-With-Voice-Changer-iOS/Assets.xcassets/btn_mute_blue.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "btn_mute_blue.pdf"
6 | }
7 | ],
8 | "info" : {
9 | "version" : 1,
10 | "author" : "xcode"
11 | }
12 | }
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/Agora-RTC-With-Voice-Changer-iOS/Assets.xcassets/btn_mute_blue.imageset/btn_mute_blue.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/Agora-RTC-With-Voice-Changer-iOS/Assets.xcassets/btn_mute_blue.imageset/btn_mute_blue.pdf
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/Agora-RTC-With-Voice-Changer-iOS/Assets.xcassets/btn_speaker.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "btn_speaker.pdf"
6 | }
7 | ],
8 | "info" : {
9 | "version" : 1,
10 | "author" : "xcode"
11 | }
12 | }
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/Agora-RTC-With-Voice-Changer-iOS/Assets.xcassets/btn_speaker.imageset/btn_speaker.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/Agora-RTC-With-Voice-Changer-iOS/Assets.xcassets/btn_speaker.imageset/btn_speaker.pdf
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/Agora-RTC-With-Voice-Changer-iOS/Assets.xcassets/btn_speaker_blue.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "btn_speaker_blue.pdf"
6 | }
7 | ],
8 | "info" : {
9 | "version" : 1,
10 | "author" : "xcode"
11 | }
12 | }
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/Agora-RTC-With-Voice-Changer-iOS/Assets.xcassets/btn_speaker_blue.imageset/btn_speaker_blue.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/Agora-RTC-With-Voice-Changer-iOS/Assets.xcassets/btn_speaker_blue.imageset/btn_speaker_blue.pdf
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/Agora-RTC-With-Voice-Changer-iOS/LogCell.swift:
--------------------------------------------------------------------------------
1 | //
2 | // LogCell.swift
3 | // Agora-RTC-With-Voice-Changer-iOS
4 | //
5 | // Created by GongYuhua on 2017/4/7.
6 | // Copyright © 2017年 Agora. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class LogCell: UITableViewCell {
12 |
13 | @IBOutlet weak var logLabel: UILabel!
14 |
15 | func set(log: String) {
16 | logLabel.text = log
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 | Copyright (c) 2017 Agora Lab, Inc (http://www.agora.io/)
3 |
4 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
5 |
6 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
7 |
8 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
9 |
10 |
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/build.sh:
--------------------------------------------------------------------------------
1 | rm -f *.ipa
2 | rm -rf *.app
3 | rm -f *.zip
4 | rm -rf dSYMs
5 | rm -rf *.dSYM
6 | rm -f *dSYMs.zip
7 | rm -rf *.xcarchive
8 |
9 | BUILD_DATE=`date +%Y-%m-%d-%H.%M.%S`
10 | APP_TARGET=Agora-RTC-With-Voice-Changer-iOS
11 | ArchivePath=${APP_TARGET}-${BUILD_DATE}.xcarchive
12 |
13 | xcodebuild clean -project "${APP_TARGET}.xcodeproj" -scheme "${APP_TARGET}" -configuration Release
14 | xcodebuild -project "${APP_TARGET}.xcodeproj" -scheme "${APP_TARGET}" -archivePath ${ArchivePath} archive
15 | xcodebuild -exportArchive -exportOptionsPlist exportPlist.plist -archivePath ${ArchivePath} -exportPath .
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/clear.sh:
--------------------------------------------------------------------------------
1 | rm -rf *.xcarchive
2 | rm -f *.ipa
3 | rm -rf *.app
4 | rm -f DistributionSummary.plist
5 | rm -f ExportOptions.plist
6 | rm -f Packaging.log
--------------------------------------------------------------------------------
/iOS&macOS/Agora-RTC-With-Voice-Changer-iOS/exportPlist.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | method
6 | development
7 | compileBitcode
8 |
9 | provisioningProfiles
10 |
11 | io.agora.Agora-RTC-With-Voice-Changer-iOS
12 | App
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // AgoraAudioIO
4 | //
5 | // Created by CavanSu on 14/11/2017.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/audience.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "audience@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "audience@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/audience.imageset/audience@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/audience.imageset/audience@2x.png
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/audience.imageset/audience@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/audience.imageset/audience@3x.png
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/call.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "calling@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "calling@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/call.imageset/calling@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/call.imageset/calling@2x.png
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/call.imageset/calling@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/call.imageset/calling@3x.png
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/earphone.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "earphone@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "earphone@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/earphone.imageset/earphone@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/earphone.imageset/earphone@2x.png
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/earphone.imageset/earphone@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/earphone.imageset/earphone@3x.png
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/host.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "host@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "host@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/host.imageset/host@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/host.imageset/host@2x.png
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/host.imageset/host@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/host.imageset/host@3x.png
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/hungup.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "hungup@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "hungup@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/hungup.imageset/hungup@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/hungup.imageset/hungup@2x.png
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/hungup.imageset/hungup@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/hungup.imageset/hungup@3x.png
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/mute.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "mute@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "mute@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/mute.imageset/mute@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/mute.imageset/mute@2x.png
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/mute.imageset/mute@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/mute.imageset/mute@3x.png
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/speaker.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "speaker@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "speaker@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/speaker.imageset/speaker@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/speaker.imageset/speaker@2x.png
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/speaker.imageset/speaker@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/speaker.imageset/speaker@3x.png
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/un-mute.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "un-mute@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "un-mute@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/un-mute.imageset/un-mute@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/un-mute.imageset/un-mute@2x.png
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/un-mute.imageset/un-mute@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/un-mute.imageset/un-mute@3x.png
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/unmutemac.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "unmute.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/unmutemac.imageset/unmute.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/Assets.xcassets/unmutemac.imageset/unmute.png
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/ChannelNameCheck.h:
--------------------------------------------------------------------------------
1 | //
2 | // ChannelNameCheck.h
3 | // AgoraAudioIO
4 | //
5 | // Created by CavanSu on 2017/9/18.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ChannelNameCheck : NSObject
12 | + (NSString *)channelNameCheckLegal:(NSString *)channelName;
13 | @end
14 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/ChannelNameCheck.m:
--------------------------------------------------------------------------------
1 | //
2 | // ChannelNameCheck.m
3 | // AgoraAudioIO
4 | //
5 | // Created by CavanSu on 2017/9/18.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import "ChannelNameCheck.h"
10 |
11 | @implementation ChannelNameCheck
12 | + (NSString *)channelNameCheckLegal:(NSString *)channelName {
13 | NSString *includerChars = @"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!#$%&()+,-:;<=.>?@[]^_`{|}~";
14 | NSCharacterSet *invertedSet = [[NSCharacterSet characterSetWithCharactersInString:includerChars] invertedSet];
15 | NSArray *separatedArray = [channelName componentsSeparatedByCharactersInSet:invertedSet];
16 | NSString *fixedChannelName = [separatedArray componentsJoinedByString:@""];
17 | return fixedChannelName;
18 | }
19 | @end
20 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/ChatButton.h:
--------------------------------------------------------------------------------
1 | //
2 | // ChatButton.h
3 | // Agora-iOS-Voice-Tutorial-OC-1to1
4 | //
5 | // Created by CavanSu on 2017/9/12.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ChatButton : UIButton
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/ChatButton.m:
--------------------------------------------------------------------------------
1 | //
2 | // ChatButton.m
3 | // Agora-iOS-Voice-Tutorial-OC-1to1
4 | //
5 | // Created by CavanSu on 2017/9/12.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import "ChatButton.h"
10 |
11 | @implementation ChatButton
12 | - (void)layoutSubviews {
13 | [super layoutSubviews];
14 |
15 | CGFloat imageViewWH = 44;
16 | CGFloat imageViewY = (self.frame.size.width - imageViewWH) * 0.5;
17 | CGFloat labelWH = 20;
18 |
19 | self.imageView.frame = CGRectMake(imageViewY, 0, imageViewWH, imageViewWH);
20 | self.titleLabel.frame = CGRectMake(0, imageViewWH, self.frame.size.width, labelWH);
21 | self.titleLabel.textAlignment = NSTextAlignmentCenter;
22 | self.titleLabel.font = [UIFont systemFontOfSize:14];
23 | }
24 |
25 | - (void)sendAction:(SEL)action to:(nullable id)target forEvent:(nullable UIEvent *)event {
26 | self.selected = !self.selected;
27 | [super sendAction:action to:target forEvent:event];
28 | }
29 | @end
30 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/ChooseButton.h:
--------------------------------------------------------------------------------
1 | //
2 | // ChooseButton.h
3 | // Audio-Source
4 | //
5 | // Created by CavanSu on 10/11/2017.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ChooseButton : UIButton
12 | - (void)cancelSelected;
13 | @end
14 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/InfoCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // InfoCell.h
3 | // AgoraAudioIO
4 | //
5 | // Created by CavanSu on 2017/9/18.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "InfoModel.h"
11 |
12 | @interface InfoCell : UITableViewCell
13 | @property (weak, nonatomic) IBOutlet UILabel *infoLabel;
14 | @property (nonatomic, weak) InfoModel *model;
15 | @end
16 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/InfoCell.m:
--------------------------------------------------------------------------------
1 | //
2 | // InfoCell.m
3 | // AgoraAudioIO
4 | //
5 | // Created by CavanSu on 2017/9/18.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import "InfoCell.h"
10 |
11 | @implementation InfoCell
12 | - (void)awakeFromNib {
13 | [super awakeFromNib];
14 | self.infoLabel.textColor = [UIColor whiteColor];
15 | self.contentView.backgroundColor = [UIColor clearColor];
16 | self.backgroundColor = [UIColor clearColor];
17 | self.infoLabel.preferredMaxLayoutWidth = [UIScreen mainScreen].bounds.size.width - 20;
18 | }
19 |
20 | - (void)setModel:(InfoModel *)model {
21 | self.infoLabel.text = model.infoStr;
22 |
23 | [self layoutIfNeeded];
24 |
25 | if (!model.height ) {
26 | model.height = CGRectGetMaxY(self.infoLabel.frame);
27 | }
28 | }
29 | @end
30 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/InfoModel.h:
--------------------------------------------------------------------------------
1 | //
2 | // InfoModel.h
3 | // AgoraAudioIO
4 | //
5 | // Created by CavanSu on 2017/9/18.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface InfoModel : NSObject
12 | @property (nonatomic, copy) NSString *infoStr;
13 | @property (nonatomic, assign) float height;
14 | + (instancetype)modelWithInfoStr:(NSString *)infoStr;
15 | @end
16 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/InfoModel.m:
--------------------------------------------------------------------------------
1 | //
2 | // InfoModel.m
3 | // AgoraAudioIO
4 | //
5 | // Created by CavanSu on 2017/9/18.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import "InfoModel.h"
10 |
11 | @implementation InfoModel
12 | + (instancetype)modelWithInfoStr:(NSString *)infoStr {
13 | InfoModel *model = [[InfoModel alloc] init];
14 | model.infoStr = [[NSString alloc] initWithString:infoStr];
15 |
16 | return model;
17 | }
18 | @end
19 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/InfoTableView.h:
--------------------------------------------------------------------------------
1 | //
2 | // InfoTableView.h
3 | // Agora-client-side-AV-capturing-for-streaming-iOS-OC
4 | //
5 | // Created by CavanSu on 2017/10/12.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface InfoTableView : UITableView
12 | - (void)appendInfoToTableViewWithInfo:(NSString *)infoStr;
13 | @end
14 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/LogAudioSessionStatus.h:
--------------------------------------------------------------------------------
1 | //
2 | // LogAudioSessionStatus.h
3 | // AgoraAudioIO
4 | //
5 | // Created by CavanSu on 14/12/2017.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface LogAudioSessionStatus : NSObject
12 | + (void)logAudioSessionStatusWithCallPosition:(NSString *)position;
13 | @end
14 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/MainViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // HomeViewController.h
3 | // AgoraAudioIO
4 | //
5 | // Created by CavanSu on 2017/9/16.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MainViewController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/RoomViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // RoomViewController.h
3 | // AgoraAudioIO
4 | //
5 | // Created by CavanSu on 2017/9/18.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AudioOptions.h"
11 | @interface RoomViewController : UIViewController
12 | @property (nonatomic, assign) AudioCRMode audioMode;
13 | @property (nonatomic, assign) ChannelMode channelMode;
14 | @property (nonatomic, assign) ClientRole clientRole;
15 | @property (nonatomic, assign) int sampleRate;
16 | @property (nonatomic, copy) NSString *channelName;
17 | @end
18 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/UIColor+CSRGB.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIColor+CSRGB.h
3 | //
4 | // Created by CavanSu on 17/3/3.
5 | // Copyright © 2017 CavanSu. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface UIColor (CSRGB)
11 | + (UIColor*)Red:(CGFloat)red Green:(CGFloat)green Blue:(CGFloat)blue;
12 | @end
13 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/UIColor+CSRGB.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIColor+CSRGB.m
3 | //
4 | // Created by CavanSu on 17/3/3.
5 | // Copyright © 2017 CavanSu. All rights reserved.
6 | //
7 |
8 | #import "UIColor+CSRGB.h"
9 |
10 | @implementation UIColor (CSRGB)
11 | + (UIColor*)Red:(CGFloat)red Green:(CGFloat)green Blue:(CGFloat)blue {
12 | UIColor *color = [UIColor colorWithRed:red / 255 green:green / 255 blue:blue / 255 alpha: 1];
13 | return color;
14 | }
15 | @end
16 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/UIView+CSshortFrame.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+CSshortFrame.h
3 | //
4 | // Created by CavanSu on 23/02/2017.
5 | // Copyright © 2017 CavanSu. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface UIView (CSshortFrame)
11 | @property (assign, nonatomic) CGFloat x_CS;
12 | @property (assign, nonatomic) CGFloat y_CS;
13 | @property (assign, nonatomic) CGFloat width_CS;
14 | @property (assign, nonatomic) CGFloat height_CS;
15 | @property (assign, nonatomic) CGSize size_CS;
16 | @property (assign, nonatomic) CGPoint origin_CS;
17 | @property (assign, nonatomic) CGFloat centerX_CS;
18 | @property (assign, nonatomic) CGFloat centerY_CS;
19 | @end
20 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-iOS/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // AgoraAudioIO
4 | //
5 | // Created by 苏若晞 on 14/11/2017.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-macOS/AgoraAudioIOmac.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.app-sandbox
6 |
7 | com.apple.security.device.microphone
8 |
9 | com.apple.security.network.client
10 |
11 | com.apple.security.network.server
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-macOS/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // AgoraAudioIO
4 | //
5 | // Created by suleyu on 2017/12/15.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : NSObject
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-macOS/AppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.m
3 | // AgoraAudioIO
4 | //
5 | // Created by suleyu on 2017/12/15.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import "AppDelegate.h"
10 |
11 | @interface AppDelegate ()
12 |
13 | @end
14 |
15 | @implementation AppDelegate
16 |
17 | - (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
18 | // Insert code here to initialize your application
19 | }
20 |
21 | - (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender {
22 | return YES;
23 | }
24 |
25 | - (void)applicationWillTerminate:(NSNotification *)aNotification {
26 | // Insert code here to tear down your application
27 | }
28 |
29 |
30 | @end
31 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-macOS/MainViewControllerMac.h:
--------------------------------------------------------------------------------
1 | //
2 | // MainViewController.h
3 | // AgoraAudioIO
4 | //
5 | // Created by suleyu on 2017/12/15.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MainViewControllerMac : NSViewController
12 |
13 | @end
14 |
15 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-macOS/ReplacementSegue.h:
--------------------------------------------------------------------------------
1 | //
2 | // ReplacementSegue.h
3 | // AgoraAudioIO
4 | //
5 | // Created by suleyu on 2017/12/15.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ReplacementSegue : NSStoryboardSegue
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-macOS/ReplacementSegue.m:
--------------------------------------------------------------------------------
1 | //
2 | // ReplacementSegue.m
3 | // AgoraAudioIO
4 | //
5 | // Created by suleyu on 2017/12/15.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import "ReplacementSegue.h"
10 |
11 | @implementation ReplacementSegue
12 |
13 | - (void)perform {
14 | NSViewController *sourceVC = self.sourceController;
15 | sourceVC.view.window.contentViewController = self.destinationController;
16 | }
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-macOS/RoomViewControllerMac.h:
--------------------------------------------------------------------------------
1 | //
2 | // RoomViewController.h
3 | // AgoraAudioIO
4 | //
5 | // Created by suleyu on 2017/12/15.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AudioOptions.h"
11 |
12 | @class RoomViewControllerMac;
13 | @protocol RoomVCMacDelegate
14 | - (void)roomVCNeedClose:(RoomViewControllerMac *)roomVC;
15 | @end
16 |
17 | @interface RoomViewControllerMac : NSViewController
18 | @property (nonatomic, assign) int sampleRate;
19 | @property (nonatomic, assign) AudioCRMode audioMode;
20 | @property (nonatomic, assign) ChannelMode channelMode;
21 | @property (nonatomic, assign) ClientRole role;
22 | @property (nonatomic, strong) id delegate;
23 | @property (nonatomic, copy) NSString *channelName;
24 | @end
25 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO-macOS/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // AgoraAudioIOmac
4 | //
5 | // Created by CavanSu on 08/03/2018.
6 | // Copyright © 2018 CavanSu. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | int main(int argc, const char * argv[]) {
12 | return NSApplicationMain(argc, argv);
13 | }
14 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/AgoraAudioIO.xcodeproj/.xcodesamplecode.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/SharedObjects/AudioOptions.h:
--------------------------------------------------------------------------------
1 | //
2 | // AudioOptions.h
3 | // AgoraAudioIO
4 | //
5 | // Created by CavanSu on 12/03/2018.
6 | // Copyright © 2018 CavanSu. All rights reserved.
7 | //
8 |
9 | #ifndef AudioOptions_h
10 | #define AudioOptions_h
11 |
12 | typedef NS_ENUM(int, AudioCRMode) {
13 | AudioCRModeExterCaptureSDKRender = 1,
14 | AudioCRModeSDKCaptureExterRender = 2,
15 | AudioCRModeSDKCaptureSDKRender = 3,
16 | AudioCRModeExterCaptureExterRender = 4
17 | };
18 |
19 | typedef NS_ENUM(int, IOUnitType) {
20 | IOUnitTypeVPIO,
21 | IOUnitTypeRemoteIO
22 | };
23 |
24 | typedef NS_ENUM(int, ChannelMode) {
25 | ChannelModeCommunication = 0,
26 | ChannelModeLiveBroadcast = 1
27 | };
28 |
29 | typedef NS_ENUM(int, ClientRole) {
30 | ClientRoleAudience = 0,
31 | ClientRoleBroadcast = 1
32 | };
33 |
34 | #if TARGET_OS_IPHONE
35 | #import "UIColor+CSRGB.h"
36 | #import "UIView+CSshortFrame.h"
37 | #define ThemeColor [UIColor Red: 122 Green: 203 Blue: 253]
38 | #endif
39 |
40 | #endif /* AudioOptions_h */
41 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/SharedObjects/DefaultChannelName.h:
--------------------------------------------------------------------------------
1 | //
2 | // DefaultChannelName.h
3 | // AgoraAudioIO
4 | //
5 | // Created by CavanSu on 15/03/2018.
6 | // Copyright © 2018 CavanSu. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface DefaultChannelName : NSObject
12 | + (void)setDefaultChannelName:(NSString *)channelName;
13 | + (NSString *)getDefaultChannelName;
14 | @end
15 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/SharedObjects/DefaultChannelName.m:
--------------------------------------------------------------------------------
1 | //
2 | // DefaultChannelName.m
3 | // AgoraAudioIO
4 | //
5 | // Created by CavanSu on 15/03/2018.
6 | // Copyright © 2018 CavanSu. All rights reserved.
7 | //
8 |
9 | #import "DefaultChannelName.h"
10 |
11 | @implementation DefaultChannelName
12 |
13 | + (void)setDefaultChannelName:(NSString *)channelName {
14 | [[NSUserDefaults standardUserDefaults] setObject:channelName forKey:@"ChannelName"];
15 | }
16 |
17 | + (NSString *)getDefaultChannelName {
18 | NSString *channelName = [[NSUserDefaults standardUserDefaults] objectForKey:@"ChannelName"];
19 | return channelName;
20 | }
21 | @end
22 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/SharedObjects/ExternalAudio/AudioWriteToFile.h:
--------------------------------------------------------------------------------
1 | //
2 | // AudioWriteToFile.h
3 | // AudioCapture
4 | //
5 | // Created by CavanSu on 08/11/2017.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AudioWriteToFile : NSObject
12 | + (void)writeToFileWithData:(void *)data length:(int)bytes;
13 | @end
14 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/SharedObjects/ExternalAudio/ExternalAudio.h:
--------------------------------------------------------------------------------
1 | //
2 | // ExternalAudio.h
3 | // AgoraAudioIO
4 | //
5 | // Created by CavanSu on 22/01/2018.
6 | // Copyright © 2018 CavanSu. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AudioOptions.h"
11 |
12 | @class AgoraRtcEngineKit;
13 | @class ExternalAudio;
14 | @protocol ExternalAudioDelegate
15 | @optional
16 | - (void)externalAudio:(ExternalAudio *)externalAudio errorInfo:(NSString *)errorInfo;
17 | @end
18 |
19 | @interface ExternalAudio : NSObject
20 | @property (nonatomic, weak) id delegate;
21 |
22 | + (instancetype)sharedExternalAudio;
23 | - (void)setupExternalAudioWithAgoraKit:(AgoraRtcEngineKit *)agoraKit sampleRate:(int)sampleRate channels:(int)channels audioCRMode:(AudioCRMode)audioCRMode IOType:(IOUnitType)ioType;
24 | - (void)startWork;
25 | - (void)stopWork;
26 | @end
27 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/build.sh:
--------------------------------------------------------------------------------
1 | rm -f *.ipa
2 | rm -f *.zip
3 | rm -rf dSYMs
4 | rm -rf *.dSYM
5 | rm -f *dSYMs.zip
6 | rm -rf *.xcarchive
7 |
8 | BUILD_DATE=`date +%Y-%m-%d-%H.%M.%S`
9 | APP_PROJECT=AgoraAudioIO
10 | APP_TARGET=AgoraAudioIO-iOS
11 | ArchivePath=${APP_TARGET}-${BUILD_DATE}.xcarchive
12 |
13 | xcodebuild clean -project "${APP_PROJECT}.xcodeproj" -scheme "${APP_TARGET}" -configuration Release
14 | xcodebuild -project "${APP_PROJECT}.xcodeproj" -scheme "${APP_TARGET}" -archivePath ${ArchivePath} archive
15 | xcodebuild -exportArchive -exportOptionsPlist exportPlist.plist -archivePath ${ArchivePath} -exportPath .
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/build_macOS.sh:
--------------------------------------------------------------------------------
1 | rm -rf *.app
2 | rm -f *.zip
3 | rm -rf dSYMs
4 | rm -rf *.dSYM
5 | rm -f *dSYMs.zip
6 | rm -rf *.xcarchive
7 |
8 | BUILD_DATE=`date +%Y-%m-%d-%H.%M.%S`
9 | APP_PROJECT=AgoraAudioIO
10 | APP_TARGET=AgoraAudioIO-macOS
11 | ArchivePath=${APP_TARGET}-${BUILD_DATE}.xcarchive
12 |
13 | xcodebuild clean -project "${APP_PROJECT}.xcodeproj" -scheme "${APP_TARGET}" -configuration Release
14 | xcodebuild CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO -project "${APP_PROJECT}.xcodeproj" -scheme "${APP_TARGET}" -archivePath ${ArchivePath} archive
15 | xcodebuild CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO -exportArchive -exportOptionsPlist exportPlist_macOS.plist -archivePath ${ArchivePath} -exportPath .
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/clear.sh:
--------------------------------------------------------------------------------
1 | rm -rf *.xcarchive
2 | rm -f *.ipa
3 | rm -rf *.app
4 | rm -f DistributionSummary.plist
5 | rm -f ExportOptions.plist
6 | rm -f Packaging.log
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/exportPlist.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | method
6 | development
7 | compileBitcode
8 |
9 | provisioningProfiles
10 |
11 | io.agora.AgoraAudioIO-iOS
12 | App
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/iOS&macOS/AgoraAudioIO-Objective-C/exportPlist_macOS.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | method
6 | mac-application
7 | compileBitcode
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/iOS&macOS/Pronunciation-Assess-iOS/Pronunciation-Assess.xcodeproj/.xcodesamplecode.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/iOS&macOS/Pronunciation-Assess-iOS/Pronunciation-Assess/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/iOS&macOS/Pronunciation-Assess-iOS/Pronunciation-Assess/CHIVOX/CHIVOXLIB:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/Pronunciation-Assess-iOS/Pronunciation-Assess/CHIVOX/CHIVOXLIB
--------------------------------------------------------------------------------
/iOS&macOS/Pronunciation-Assess-iOS/Pronunciation-Assess/CXEngine.h:
--------------------------------------------------------------------------------
1 | //
2 | // CXEngine.h
3 | // Pronunciation-Assess
4 | //
5 | // Created by CavanSu on 2019/11/1.
6 | // Copyright © 2019 CavanSu. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AgoraMediaRawData.h"
11 |
12 | @class CXEngine;
13 | @protocol CXEngineDelegate
14 | - (void)cxEngine:(CXEngine * _Nonnull)engine pronunciateResult:(NSInteger)result;
15 | @end
16 |
17 | @interface CXEngine : NSObject
18 | @property (atomic, assign, readonly) BOOL isNeedAudioData;
19 | @property (nonatomic, weak) id _Nullable delegate;
20 |
21 | - (void)prepareWithAppKey:(NSString * _Nonnull)appKey secrectKey:(NSString * _Nonnull)secretKey;
22 | - (void)request:(NSString * _Nonnull)key;
23 | - (void)sendAudioData:(AgoraAudioRawData * _Nonnull)data;
24 | - (void)stopSend;
25 | @end
26 |
--------------------------------------------------------------------------------
/iOS&macOS/Pronunciation-Assess-iOS/Pronunciation-Assess/CXKeys.swift:
--------------------------------------------------------------------------------
1 | //
2 | // CXKeys.swift
3 | // Pronunciation-Assess
4 | //
5 | // Created by CavanSu on 2019/11/4.
6 | // Copyright © 2019 CavanSu. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | let CXAppKey = ""
12 | let CXSecretKey = ""
13 |
14 |
--------------------------------------------------------------------------------
/iOS&macOS/Pronunciation-Assess-iOS/Pronunciation-Assess/Pronunciation-Assess-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | //
2 | // Use this file to import your target's public headers that you would like to expose to Swift.
3 | //
4 |
5 | #import "CXEngine.h"
6 | #import "AgoraMediaDataPlugin.h"
7 |
--------------------------------------------------------------------------------
/iOS&macOS/Pronunciation-Assess-iOS/Pronunciation-Assess/raw-data-api-oc/AgoraMediaRawData.m:
--------------------------------------------------------------------------------
1 | //
2 | // AgoraVideoRawData.m
3 | // OpenVideoCall
4 | //
5 | // Created by CavanSu on 26/02/2018.
6 | // Copyright © 2018 Agora. All rights reserved.
7 | //
8 |
9 | #import "AgoraMediaRawData.h"
10 |
11 | @implementation AgoraVideoRawDataFormatter
12 | - (instancetype)init {
13 | if (self = [super init]) {
14 | self.mirrorApplied = false;
15 | self.rotationApplied = false;
16 | self.type = 0;
17 | }
18 | return self;
19 | }
20 | @end
21 |
22 | @implementation AgoraVideoRawData
23 |
24 | @end
25 |
26 | @implementation AgoraAudioRawData
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/iOS&macOS/Pronunciation-Assess-iOS/build.sh:
--------------------------------------------------------------------------------
1 | rm -f *.ipa
2 | rm -rf *.app
3 | rm -f *.zip
4 | rm -rf dSYMs
5 | rm -rf *.dSYM
6 | rm -f *dSYMs.zip
7 | rm -rf *.xcarchive
8 |
9 | BUILD_DATE=`date +%Y-%m-%d-%H.%M.%S`
10 | APP_TARGET=Pronunciation-Assess
11 | ArchivePath=${APP_TARGET}-${BUILD_DATE}.xcarchive
12 |
13 | xcodebuild clean -project "${APP_TARGET}.xcodeproj" -scheme "${APP_TARGET}" -configuration Release
14 | xcodebuild -project "${APP_TARGET}.xcodeproj" -scheme "${APP_TARGET}" -archivePath ${ArchivePath} archive
15 | xcodebuild -exportArchive -exportOptionsPlist exportPlist.plist -archivePath ${ArchivePath} -exportPath .
--------------------------------------------------------------------------------
/iOS&macOS/Pronunciation-Assess-iOS/clear.sh:
--------------------------------------------------------------------------------
1 | rm -rf *.xcarchive
2 | rm -f *.ipa
3 | rm -rf *.app
4 | rm -f DistributionSummary.plist
5 | rm -f ExportOptions.plist
6 | rm -f Packaging.log
--------------------------------------------------------------------------------
/iOS&macOS/Pronunciation-Assess-iOS/exportPlist.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | method
6 | development
7 | compileBitcode
8 |
9 | provisioningProfiles
10 |
11 | io.agora.Pronunciation-Assess
12 | App
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/iOS&macOS/SpeechRecognizer-iOS/SpeechRecognizer-iOS.xcodeproj/.xcodesamplecode.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/iOS&macOS/SpeechRecognizer-iOS/SpeechRecognizer-iOS/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.swift
3 | // SpeechRecognizer-iOS
4 | //
5 | // Created by GongYuhua on 2019/7/8.
6 | // Copyright © 2019 Agora. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | @UIApplicationMain
12 | class AppDelegate: UIResponder, UIApplicationDelegate {
13 |
14 | var window: UIWindow?
15 |
16 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
17 | return true
18 | }
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/iOS&macOS/SpeechRecognizer-iOS/SpeechRecognizer-iOS/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/iOS&macOS/SpeechRecognizer-iOS/SpeechRecognizer-iOS/MediaWorker.h:
--------------------------------------------------------------------------------
1 | //
2 | // MediaWorker.h
3 | // SpeechRecognizer-iOS
4 | //
5 | // Created by GongYuhua on 2019/7/5.
6 | // Copyright © 2019 Apple. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @class AgoraRtcEngineKit;
13 |
14 | @protocol MediaWorkerDelegate
15 | - (void)mediaWorkerDidReceiveRemotePCM:(AVAudioPCMBuffer * _Nonnull)buffer;
16 | @end
17 |
18 | @interface MediaWorker: NSObject
19 | + (void)setDelegate:(id _Nullable)delegate;
20 | + (void)setRemoteUid:(NSUInteger)uid;
21 | + (void)registerAudioBufferInEngine:(AgoraRtcEngineKit * _Nonnull)kit;
22 | + (void)deregisterAudioBufferInEngine:(AgoraRtcEngineKit * _Nonnull)kit;
23 | @end
24 |
25 |
--------------------------------------------------------------------------------
/iOS&macOS/SpeechRecognizer-iOS/SpeechRecognizer-iOS/SpeechRecognizer-iOS-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | //
2 | // Use this file to import your target's public headers that you would like to expose to Swift.
3 | //
4 |
5 | #import "MediaWorker.h"
6 |
--------------------------------------------------------------------------------
/iOS&macOS/SpeechRecognizer-iOS/build.sh:
--------------------------------------------------------------------------------
1 | rm -f *.ipa
2 | rm -rf *.app
3 | rm -f *.zip
4 | rm -rf dSYMs
5 | rm -rf *.dSYM
6 | rm -f *dSYMs.zip
7 | rm -rf *.xcarchive
8 |
9 | BUILD_DATE=`date +%Y-%m-%d-%H.%M.%S`
10 | APP_TARGET=SpeechRecognizer-iOS
11 | ArchivePath=${APP_TARGET}-${BUILD_DATE}.xcarchive
12 |
13 | xcodebuild clean -project "${APP_TARGET}.xcodeproj" -scheme "${APP_TARGET}" -configuration Release
14 | xcodebuild -project "${APP_TARGET}.xcodeproj" -scheme "${APP_TARGET}" -archivePath ${ArchivePath} archive
15 | xcodebuild -exportArchive -exportOptionsPlist exportPlist.plist -archivePath ${ArchivePath} -exportPath .
--------------------------------------------------------------------------------
/iOS&macOS/SpeechRecognizer-iOS/clear.sh:
--------------------------------------------------------------------------------
1 | rm -rf *.xcarchive
2 | rm -f *.ipa
3 | rm -rf *.app
4 | rm -f DistributionSummary.plist
5 | rm -f ExportOptions.plist
6 | rm -f Packaging.log
--------------------------------------------------------------------------------
/iOS&macOS/SpeechRecognizer-iOS/exportPlist.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | method
6 | development
7 | compileBitcode
8 |
9 | provisioningProfiles
10 |
11 | io.agora.SpeechRecognizer-iOS
12 | App
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/iOS&macOS/build-template/github-release.yml:
--------------------------------------------------------------------------------
1 | parameters:
2 | displayName: ''
3 |
--------------------------------------------------------------------------------
/iOS&macOS/libs/iOS/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/libs/iOS/.gitkeep
--------------------------------------------------------------------------------
/iOS&macOS/libs/macOS/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AgoraIO/Advanced-Audio/0b6232ac89c61dd9c2077f0a0ced42181176e942/iOS&macOS/libs/macOS/.gitkeep
--------------------------------------------------------------------------------
/iOS&macOS/scripts/ci_ios_env.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/python
2 | # -*- coding: UTF-8 -*-
3 | import re
4 | import os
5 |
6 | def main():
7 |
8 | appId = ""
9 | if "AGORA_APP_ID" in os.environ:
10 | appId = os.environ["AGORA_APP_ID"]
11 | token = ""
12 |
13 | # KeyCenter.swift
14 | f = open("../shared/Swift/KeyCenter.swift", 'r+')
15 | content = f.read()
16 | appString = "\"" + appId + "\""
17 | tokenString = "\"" + token + "\""
18 | contentNew = re.sub(r'<#Your App Id#>', appString, content)
19 | contentNew = re.sub(r'<#Temp Access Token#>', tokenString, contentNew)
20 | f.seek(0)
21 | f.write(contentNew)
22 | f.truncate()
23 |
24 | # KeyCenter.m
25 | f = open("../shared/Objective-C/KeyCenter.m", 'r+')
26 | content = f.read()
27 | appString = "@\"" + appId + "\""
28 | tokenString = "@\"" + token + "\""
29 | contentNew = re.sub(r'<#Your App Id#>', appString, content)
30 | contentNew = re.sub(r'<#Temp Access Token#>', tokenString, contentNew)
31 | f.seek(0)
32 | f.write(contentNew)
33 | f.truncate()
34 |
35 | if __name__ == "__main__":
36 | main()
37 |
--------------------------------------------------------------------------------
/iOS&macOS/scripts/ci_macos_env.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/python
2 | # -*- coding: UTF-8 -*-
3 | import re
4 | import os
5 |
6 | def main():
7 |
8 | appId = ""
9 | if "AGORA_APP_ID" in os.environ:
10 | appId = os.environ["AGORA_APP_ID"]
11 | token = ""
12 |
13 | # KeyCenter.swift
14 | f = open("../shared/Swift/KeyCenter.swift", 'r+')
15 | content = f.read()
16 | appString = "\"" + appId + "\""
17 | tokenString = "\"" + token + "\""
18 | contentNew = re.sub(r'<#Your App Id#>', appString, content)
19 | contentNew = re.sub(r'<#Temp Access Token#>', tokenString, contentNew)
20 | f.seek(0)
21 | f.write(contentNew)
22 | f.truncate()
23 |
24 | # KeyCenter.m
25 | f = open("../shared/Objective-C/KeyCenter.m", 'r+')
26 | content = f.read()
27 | appString = "@\"" + appId + "\""
28 | tokenString = "@\"" + token + "\""
29 | contentNew = re.sub(r'<#Your App Id#>', appString, content)
30 | contentNew = re.sub(r'<#Temp Access Token#>', tokenString, contentNew)
31 | f.seek(0)
32 | f.write(contentNew)
33 | f.truncate()
34 |
35 | if __name__ == "__main__":
36 | main()
37 |
--------------------------------------------------------------------------------
/iOS&macOS/scripts/sdkdownload.sh:
--------------------------------------------------------------------------------
1 | TARGET_LIBS_ZIP="agora_sdk.zip"
2 | TARGET_INTERNAL_FOLDER="agora_sdk"
3 |
4 | FILE_PATH=`pwd`
5 |
6 | echo ${FILE_PATH}
7 |
8 | SDK_URL=$1
9 | COPY_TO=$2
10 |
11 | echo "url" ${SDK_URL}
12 |
13 | #download
14 | wget -q ${SDK_URL} -O ${TARGET_LIBS_ZIP}
15 |
16 | #unzip
17 | unzip -q ${TARGET_LIBS_ZIP} -d ${TARGET_INTERNAL_FOLDER}
18 |
19 | cd ${TARGET_INTERNAL_FOLDER}
20 |
21 | FIRST_FOLDER=""
22 |
23 | for i in `ls`
24 | do
25 | FIRST_FOLDER=$i
26 | echo $i
27 | done
28 |
29 | #copy
30 | DESTINATION=${FILE_PATH}/../${COPY_TO}
31 |
32 | echo DESTINATION ${DESTINATION}
33 |
34 | cp -af ${FIRST_FOLDER}/libs/* ${DESTINATION}
35 |
36 | echo pwd `pwd`
37 |
--------------------------------------------------------------------------------
/iOS&macOS/shared/Objective-C/KeyCenter.h:
--------------------------------------------------------------------------------
1 | //
2 | // KeyCenter.h
3 | // OpenVideoCall
4 | //
5 | // Created by GongYuhua on 2016/9/12.
6 | // Copyright © 2016年 Agora. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface KeyCenter : NSObject
12 | + (NSString *)AppId;
13 | + (NSString *)Token;
14 | @end
15 |
--------------------------------------------------------------------------------
/iOS&macOS/shared/Objective-C/KeyCenter.m:
--------------------------------------------------------------------------------
1 | //
2 | // KeyCenter.m
3 | // OpenVideoCall
4 | //
5 | // Created by GongYuhua on 2016/9/12.
6 | // Copyright © 2016年 Agora. All rights reserved.
7 | //
8 |
9 | #import "KeyCenter.h"
10 |
11 | @implementation KeyCenter
12 | + (NSString *)AppId {
13 | return <#Your App Id#>;
14 | }
15 |
16 | // assign token to nil if you have not enabled app certificate
17 | + (NSString *)Token {
18 | return <#Temp Access Token#>;
19 | }
20 | @end
21 |
--------------------------------------------------------------------------------
/iOS&macOS/shared/Swift/KeyCenter.swift:
--------------------------------------------------------------------------------
1 | //
2 | // KeyCenter.swift
3 | // LargeGroupVideoChat
4 | //
5 | // Created by ZhangJi on 30/09/2017.
6 | // Copyright © 2017 Agora. All rights reserved.
7 | //
8 |
9 | struct KeyCenter {
10 | static let AppId: String = <#Your App Id#>
11 |
12 | // assign token to nil if you have not enabled app certificate
13 | static var Token: String? = <#Temp Access Token#>
14 | }
15 |
--------------------------------------------------------------------------------