Skip to content

Commit 6561832

Browse files
committed
NEW: setVoiceConversionPreset for Android
1 parent d43bacd commit 6561832

3 files changed

Lines changed: 43 additions & 1 deletion

File tree

Android/APIExample/app/src/main/java/io/agora/api/example/examples/advanced/VoiceEffects.java

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public class VoiceEffects extends BaseFragment implements View.OnClickListener,
5050
private RtcEngine engine;
5151
private int myUid;
5252
private boolean joined = false;
53-
private Spinner preset, beautifier, pitch1, pitch2;
53+
private Spinner preset, beautifier, pitch1, pitch2, conversion;
5454
private PopupWindow popupWindow;
5555
private Switch effectOption;
5656
private SeekBar voiceCircle;
@@ -79,8 +79,10 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat
7979
view.findViewById(R.id.btn_join).setOnClickListener(this);
8080
preset = view.findViewById(R.id.audio_preset_spinner);
8181
beautifier = view.findViewById(R.id.voice_beautifier_spinner);
82+
conversion = view.findViewById(R.id.voice_conversion_spinner);
8283
preset.setOnItemSelectedListener(this);
8384
beautifier.setOnItemSelectedListener(this);
85+
conversion.setOnItemSelectedListener(this);
8486
effectOptions = view.findViewById(R.id.btn_effect_options);
8587
effectOptions.setOnClickListener(this);
8688
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
@@ -99,6 +101,7 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat
99101
effectOptions.setEnabled(false);
100102
preset.setEnabled(false);
101103
beautifier.setEnabled(false);
104+
conversion.setEnabled(false);
102105
}
103106

104107
@Override
@@ -173,6 +176,7 @@ public void onClick(View v)
173176
joined = false;
174177
preset.setEnabled(false);
175178
beautifier.setEnabled(false);
179+
conversion.setEnabled(false);
176180
effectOptions.setEnabled(false);
177181
/**After joining a channel, the user must call the leaveChannel method to end the
178182
* call before joining another channel. This method returns 0 if the user leaves the
@@ -358,6 +362,7 @@ public void onJoinChannelSuccess(String channel, int uid, int elapsed)
358362
handler.post(() -> {
359363
join.setEnabled(true);
360364
join.setText(getString(R.string.leave));
365+
conversion.setEnabled(true);
361366
preset.setEnabled(true);
362367
beautifier.setEnabled(true);
363368
effectOptions.setEnabled(true);
@@ -443,6 +448,26 @@ else if(parent.getId() == R.id.voice_beautifier_spinner){
443448
String item = beautifier.getSelectedItem().toString();
444449
engine.setVoiceBeautifierPreset(getVoiceBeautifierValue(item));
445450
}
451+
else if(parent.getId() == R.id.voice_conversion_spinner){
452+
String item = conversion.getSelectedItem().toString();
453+
engine.setVoiceConversionPreset(getVoiceConversionValue(item));
454+
}
455+
}
456+
457+
private int getVoiceConversionValue(String label) {
458+
switch (label) {
459+
case "VOICE_CHANGER_NEUTRAL":
460+
return VOICE_CHANGER_NEUTRAL;
461+
case "VOICE_CHANGER_SWEET":
462+
return VOICE_CHANGER_SWEET;
463+
case "VOICE_CHANGER_SOLID":
464+
return VOICE_CHANGER_SOLID;
465+
case "VOICE_CHANGER_BASS":
466+
return VOICE_CHANGER_BASS;
467+
case "VOICE_CONVERSION_OFF":
468+
default:
469+
return VOICE_CONVERSION_OFF;
470+
}
446471
}
447472

448473
private int getVoiceBeautifierValue(String label) {

Android/APIExample/app/src/main/res/layout/fragment_voice_effects.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,16 @@
55
android:layout_height="match_parent"
66
tools:context=".examples.advanced.VoiceEffects">
77

8+
<Spinner
9+
android:id="@+id/voice_conversion_spinner"
10+
android:layout_width="match_parent"
11+
android:layout_height="48dp"
12+
android:layout_above="@id/audio_preset_spinner"
13+
android:layout_marginBottom="16dp"
14+
android:entries="@array/voiceConversion"
15+
android:hint="Select an Voice Conversion Preset"
16+
android:spinnerMode="dropdown" />
17+
818
<Spinner
919
android:id="@+id/audio_preset_spinner"
1020
android:layout_width="match_parent"

Android/APIExample/app/src/main/res/values/arrays.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,13 @@
2525
<item>JP</item>
2626
<item>IN</item>
2727
</string-array>
28+
<string-array name="voiceConversion">
29+
<item>VOICE_CONVERSION_OFF</item>
30+
<item>VOICE_CHANGER_NEUTRAL</item>
31+
<item>VOICE_CHANGER_SWEET</item>
32+
<item>VOICE_CHANGER_SOLID</item>
33+
<item>VOICE_CHANGER_BASS</item>
34+
</string-array>
2835
<string-array name="audioPreset">
2936
<item>ROOM_ACOUSTICS_KTV</item>
3037
<item>ROOM_ACOUSTICS_VOCAL_CONCERT</item>

0 commit comments

Comments
 (0)