diff --git a/android/build.gradle b/android/build.gradle index 0d478b418..bdbfd6fa5 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -52,5 +52,5 @@ android { dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${safeExtGet('kotlin_version', '1.3.72')}" implementation "org.jetbrains.kotlin:kotlin-reflect:${safeExtGet('kotlin_version', '1.3.72')}" - implementation "io.agora.rtc:full-sdk:3.1.3" + implementation "io.agora.rtc:full-sdk:3.2.0" } diff --git a/ios/agora_rtc_engine.podspec b/ios/agora_rtc_engine.podspec index 1b522c3c1..89a127334 100644 --- a/ios/agora_rtc_engine.podspec +++ b/ios/agora_rtc_engine.podspec @@ -17,7 +17,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'AgoraRtcEngine_iOS_Crypto', '3.1.2' + s.dependency 'AgoraRtcEngine_iOS', '3.2.0' s.platform = :ios, '8.0' # Flutter.framework does not contain a i386 slice. Only x86_64 simulators are supported. diff --git a/lib/src/enum_converter.dart b/lib/src/enum_converter.dart index 3a4d45f2b..af80aaf96 100644 --- a/lib/src/enum_converter.dart +++ b/lib/src/enum_converter.dart @@ -762,3 +762,28 @@ class AudioSessionOperationRestrictionConverter return super.toValue(_$AudioSessionOperationRestrictionEnumMap); } } + +@JsonSerializable() +class AudioEffectPresetConverter extends EnumConverter { + AudioEffectPresetConverter(AudioEffectPreset e) : super(e); + + AudioEffectPresetConverter.fromValue(int value) + : super.fromValue(_$AudioEffectPresetEnumMap, value); + + int value() { + return super.toValue(_$AudioEffectPresetEnumMap); + } +} + +@JsonSerializable() +class VoiceBeautifierPresetConverter + extends EnumConverter { + VoiceBeautifierPresetConverter(VoiceBeautifierPreset e) : super(e); + + VoiceBeautifierPresetConverter.fromValue(int value) + : super.fromValue(_$VoiceBeautifierPresetEnumMap, value); + + int value() { + return super.toValue(_$VoiceBeautifierPresetEnumMap); + } +} diff --git a/lib/src/enum_converter.g.dart b/lib/src/enum_converter.g.dart index f3ddd848c..5405a7bfd 100644 --- a/lib/src/enum_converter.g.dart +++ b/lib/src/enum_converter.g.dart @@ -388,6 +388,8 @@ const _$AudioScenarioEnumMap = { AudioScenario.GameStreaming: 3, AudioScenario.ShowRoom: 4, AudioScenario.ChatRoomGaming: 5, + AudioScenario.IOT: 6, + AudioScenario.MEETING: 8, }; AudioVoiceChangerConverter _$AudioVoiceChangerConverterFromJson( @@ -1280,6 +1282,9 @@ const _$WarningCodeEnumMap = { WarningCode.ApmHowling: 1051, WarningCode.AdmGlitchState: 1052, WarningCode.ApmResidualEcho: 1053, + WarningCode.SuperResolutionStreamOverLimitation: 1610, + WarningCode.SuperResolutionUserCountOverLimitation: 1611, + WarningCode.SuperResolutionDeviceNotSupported: 1612, }; AudioChannelConverter _$AudioChannelConverterFromJson( @@ -1402,3 +1407,66 @@ const _$AudioSessionOperationRestrictionEnumMap = { AudioSessionOperationRestriction.DeactivateSession: 4, AudioSessionOperationRestriction.All: 128, }; + +AudioEffectPresetConverter _$AudioEffectPresetConverterFromJson( + Map json) { + return AudioEffectPresetConverter( + _$enumDecodeNullable(_$AudioEffectPresetEnumMap, json['e']), + ); +} + +Map _$AudioEffectPresetConverterToJson( + AudioEffectPresetConverter instance) => + { + 'e': _$AudioEffectPresetEnumMap[instance.e], + }; + +const _$AudioEffectPresetEnumMap = { + AudioEffectPreset.AudioEffectOff: 0, + AudioEffectPreset.RoomAcousticsKTV: 33620224, + AudioEffectPreset.RoomAcousticsVocalConcert: 33620480, + AudioEffectPreset.RoomAcousticsStudio: 33620736, + AudioEffectPreset.RoomAcousticsPhonograph: 33620992, + AudioEffectPreset.RoomAcousticsVirtualStereo: 33621248, + AudioEffectPreset.RoomAcousticsSpacial: 33621504, + AudioEffectPreset.RoomAcousticsEthereal: 33621760, + AudioEffectPreset.RoomAcoustics3DVoice: 33622016, + AudioEffectPreset.VoiceChangerEffectUncle: 33685760, + AudioEffectPreset.VoiceChangerEffectOldMan: 33686016, + AudioEffectPreset.VoiceChangerEffectBoy: 33686272, + AudioEffectPreset.VoiceChangerEffectSister: 33686528, + AudioEffectPreset.VoiceChangerEffectGirl: 33686784, + AudioEffectPreset.VoiceChangerEffectPigKing: 33687040, + AudioEffectPreset.VoiceChangerEffectHulk: 33687296, + AudioEffectPreset.StyleTransformationRnB: 33751296, + AudioEffectPreset.StyleTransformationPopular: 33751552, + AudioEffectPreset.PitchCorrection: 33816832, +}; + +VoiceBeautifierPresetConverter _$VoiceBeautifierPresetConverterFromJson( + Map json) { + return VoiceBeautifierPresetConverter( + _$enumDecodeNullable(_$VoiceBeautifierPresetEnumMap, json['e']), + ); +} + +Map _$VoiceBeautifierPresetConverterToJson( + VoiceBeautifierPresetConverter instance) => + { + 'e': _$VoiceBeautifierPresetEnumMap[instance.e], + }; + +const _$VoiceBeautifierPresetEnumMap = { + VoiceBeautifierPreset.VoiceBeautifierOff: 0, + VoiceBeautifierPreset.ChatBeautifierMagnetic: 16843008, + VoiceBeautifierPreset.ChatBeautifierFresh: 16843264, + VoiceBeautifierPreset.ChatBeautifierVitality: 16843520, + VoiceBeautifierPreset.TimbreTransformationVigorous: 16974080, + VoiceBeautifierPreset.TimbreTransformationDeep: 16974336, + VoiceBeautifierPreset.TimbreTransformationMellow: 16974592, + VoiceBeautifierPreset.TimbreTransformationFalsetto: 16974848, + VoiceBeautifierPreset.TimbreTransformationFull: 16975104, + VoiceBeautifierPreset.TimbreTransformationClear: 16975360, + VoiceBeautifierPreset.TimbreTransformationResounding: 16975616, + VoiceBeautifierPreset.TimbreTransformationRinging: 16975872, +}; diff --git a/lib/src/enums.dart b/lib/src/enums.dart index 8c5a12628..ae1f876ac 100644 --- a/lib/src/enums.dart +++ b/lib/src/enums.dart @@ -447,6 +447,14 @@ enum AudioScenario { /// Gaming scenario. @JsonValue(5) ChatRoomGaming, + + /// TODO + @JsonValue(6) + IOT, + + /// TODO + @JsonValue(8) + MEETING, } /// The preset audio voice configuration used to change the voice effect. @@ -1905,6 +1913,18 @@ enum WarningCode { /// Audio processing module: A residual echo is detected, which may be caused by the belated scheduling of system threads or the signal overflow. @JsonValue(1053) ApmResidualEcho, + + /// Super-resolution warning: the original video dimensions of the remote user exceed 640*480. + @JsonValue(1610) + SuperResolutionStreamOverLimitation, + + /// Super-resolution warning: another user is using super resolution. + @JsonValue(1611) + SuperResolutionUserCountOverLimitation, + + /// Super-resolution warning: The device is not supported. + @JsonValue(1612) + SuperResolutionDeviceNotSupported, } /// The audio channel of the sound. @@ -2036,3 +2056,102 @@ enum AudioSessionOperationRestriction { @JsonValue(1 << 7) All, } + +/// TODO +enum AudioEffectPreset { + @JsonValue(0x00000000) + AudioEffectOff, + + @JsonValue(0x02010100) + RoomAcousticsKTV, + + @JsonValue(0x02010200) + RoomAcousticsVocalConcert, + + @JsonValue(0x02010300) + RoomAcousticsStudio, + + @JsonValue(0x02010400) + RoomAcousticsPhonograph, + + @JsonValue(0x02010500) + RoomAcousticsVirtualStereo, + + @JsonValue(0x02010600) + RoomAcousticsSpacial, + + @JsonValue(0x02010700) + RoomAcousticsEthereal, + + @JsonValue(0x02010800) + RoomAcoustics3DVoice, + + @JsonValue(0x02020100) + VoiceChangerEffectUncle, + + @JsonValue(0x02020200) + VoiceChangerEffectOldMan, + + @JsonValue(0x02020300) + VoiceChangerEffectBoy, + + @JsonValue(0x02020400) + VoiceChangerEffectSister, + + @JsonValue(0x02020500) + VoiceChangerEffectGirl, + + @JsonValue(0x02020600) + VoiceChangerEffectPigKing, + + @JsonValue(0x02020700) + VoiceChangerEffectHulk, + + @JsonValue(0x02030100) + StyleTransformationRnB, + + @JsonValue(0x02030200) + StyleTransformationPopular, + + @JsonValue(0x02040100) + PitchCorrection, +} + +/// TODO +enum VoiceBeautifierPreset { + @JsonValue(0x00000000) + VoiceBeautifierOff, + + @JsonValue(0x01010100) + ChatBeautifierMagnetic, + + @JsonValue(0x01010200) + ChatBeautifierFresh, + + @JsonValue(0x01010300) + ChatBeautifierVitality, + + @JsonValue(0x01030100) + TimbreTransformationVigorous, + + @JsonValue(0x01030200) + TimbreTransformationDeep, + + @JsonValue(0x01030300) + TimbreTransformationMellow, + + @JsonValue(0x01030400) + TimbreTransformationFalsetto, + + @JsonValue(0x01030500) + TimbreTransformationFull, + + @JsonValue(0x01030600) + TimbreTransformationClear, + + @JsonValue(0x01030700) + TimbreTransformationResounding, + + @JsonValue(0x01030800) + TimbreTransformationRinging, +} diff --git a/lib/src/rtc_engine.dart b/lib/src/rtc_engine.dart index 1e212ad73..0d323c7ba 100644 --- a/lib/src/rtc_engine.dart +++ b/lib/src/rtc_engine.dart @@ -666,6 +666,7 @@ class RtcEngine with RtcEngineInterface { } @override + @deprecated Future setLocalVoiceChanger(AudioVoiceChanger voiceChanger) { return _invokeMethod('setLocalVoiceChanger', {'voiceChanger': AudioVoiceChangerConverter(voiceChanger).value()}); @@ -695,6 +696,7 @@ class RtcEngine with RtcEngineInterface { } @override + @deprecated Future setLocalVoiceReverbPreset(AudioReverbPreset preset) { return _invokeMethod('setLocalVoiceReverbPreset', {'preset': AudioReverbPresetConverter(preset).value()}); @@ -868,6 +870,28 @@ class RtcEngine with RtcEngineInterface { Future getNativeHandle() { return _invokeMethod('getNativeHandle'); } + + @override + Future setAudioEffectParameters( + AudioEffectPreset preset, int param1, int param2) { + return _invokeMethod('setAudioEffectParameters', { + 'preset': AudioEffectPresetConverter(preset).value(), + 'param1': param1, + 'param2': param2 + }); + } + + @override + Future setAudioEffectPreset(AudioEffectPreset preset) { + return _invokeMethod('setAudioEffectPreset', + {'preset': AudioEffectPresetConverter(preset).value()}); + } + + @override + Future setVoiceBeautifierPreset(VoiceBeautifierPreset preset) { + return _invokeMethod('setVoiceBeautifierPreset', + {'preset': VoiceBeautifierPresetConverter(preset).value()}); + } } /// @nodoc @@ -1704,6 +1728,7 @@ mixin RtcVoiceChangerInterface { /// - Do not use this method together with [RtcEngine.setLocalVoiceReverbPreset], or the method called earlier does not take effect. /// /// **Parameter** [voiceChanger] The local voice changer option. See [AudioVoiceChanger]. + @deprecated Future setLocalVoiceChanger(AudioVoiceChanger voiceChanger); /// Sets the preset local voice reverberation effect @@ -1713,6 +1738,7 @@ mixin RtcVoiceChangerInterface { /// - Do not use this method together with [RtcEngine.setLocalVoiceChanger], or the method called eariler does not take effect. /// /// **Parameter** [preset] The local voice reverberation preset. See See [AudioReverbPreset]. + @deprecated Future setLocalVoiceReverbPreset(AudioReverbPreset preset); /// Changes the voice pitch of the local speaker. @@ -1738,6 +1764,16 @@ mixin RtcVoiceChangerInterface { /// /// **Parameter** [value] Sets the local voice reverberation value. Future setLocalVoiceReverb(AudioReverbType reverbKey, int value); + + /// TODO + Future setAudioEffectPreset(AudioEffectPreset preset); + + /// TODO + Future setVoiceBeautifierPreset(VoiceBeautifierPreset preset); + + /// TODO + Future setAudioEffectParameters( + AudioEffectPreset preset, int param1, int param2); } /// @nodoc diff --git a/pubspec.yaml b/pubspec.yaml index a0b3393df..f67717e22 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: agora_rtc_engine description: Flutter plugin for Agora Video SDK. -version: 3.1.4 +version: 3.2.0 homepage: https://www.agora.io repository: https://github.com/AgoraIO/Flutter-SDK