Custom Audio Track - React Native
We have introduced the ability to pass a custom Audio track for the Audio of the participants with different encoder configuration.
Creating a Custom Audio Track
- You can create a Audio Track using
createAudioTrack()
method ofVideoSDK
. - This method can be used to create audio track using different encoding parameters.
Parameters
-
encoderConfig:
- type:
String
- required:
true
- default:
speech_standard
- Allowed values :
speech_low_quality
|speech_standard
|music_standard
|standard_stereo
|high_quality
|high_quality_stereo
- It will be the encoder configuration you want to use for Audio Track.
- type:
-
context
- type:
Context
- required:
true
- Pass the Android Context for this parameter.
- type:
Returns
CustomStreamTrack
Example
- Kotlin
- Java
try {
val audioCustomTrack: CustomStreamTrack = VideoSDK.createAudioTrack("high_quality",this)
} catch (e: JSONException) {
e.printStackTrace()
}
try {
CustomStreamTrack audioCustomTrack=VideoSDK.createAudioTrack("high_quality", this);
}catch (JSONException e) {
e.printStackTrace();
}
Using Custom Audio Track
Custom Track while initializing the meeting
If you are passing micEnabled: true
in the initMeeting
of VideoSDK
and want to use custom tracks from start of the meeting, you can pass custom track in the initMeeting
as shown below.
- Kotlin
- Java
override fun onCreate(savedInstanceState: Bundle?) {
//..
val customTracks: MutableMap<String, CustomStreamTrack> = HashMap()
val audioCustomTrack: CustomStreamTrack = VideoSDK.createAudioTrack("high_quality", this)
customTracks["mic"] = audioCustomTrack //Key must be "mic"
// create a new meeting instance
val meeting = VideoSDK.initMeeting(
this@MainActivity,meetingId,participantName,
//MicEnabled , If true, it will use the passed custom track to turn mic on
true,
//WebcamEnabled
true,
//ParticipantId
null,
//Mode
null,
//Pass the custom tracks here
customTracks
)
}
@Override
protected void onCreate(Bundle savedInstanceState) {
//..
Map<String, CustomStreamTrack> customTracks = new HashMap<>();
CustomStreamTrack audioCustomTrack = VideoSDK.createAudioTrack("high_quality", this);
customTracks.put("mic", audioCustomTrack); //Key must be "mic"
// create a new meeting instance
Meeting meeting = VideoSDK.initMeeting(
MainActivity.this, meetingId, participantName,
//MicEnabled , If true, it will use the passed custom track to turn mic on
true,
//WebcamEnabled
true,
//ParticipantId
null,
//Mode
null,
//Pass the custom tracks here
customTracks
);
}
Custom Track with unmuteMic()
In order to switch tracks during the meeting, you have to pass the CustomStreamTrack
in the unmuteMic()
method of Meeting
.
You can also pass custom track in changeMic()
method of Meeting
.
note
Make sure to call muteMic()
before you create a new track as it may lead to unexpected behavior.
- Kotlin
- Java
try {
val audioCustomTrack: CustomStreamTrack = VideoSDK.createAudioTrack("high_quality", this)
meeting!!.unmuteMic(audioCustomTrack)
//or
meeting!!.changeMic(AppRTCAudioManager.AudioDevice.BLUETOOTH, audioCustomTrack)
} catch (e: JSONException) {
e.printStackTrace()
}
try {
CustomStreamTrack audioCustomTrack = VideoSDK.createAudioTrack("high_quality", this);
meeting.unmuteMic(audioCustomTrack);
//or
meeting.changeMic(AppRTCAudioManager.AudioDevice.BLUETOOTH,audioCustomTrack);
}catch (JSONException e) {
e.printStackTrace();
}
Got a Question? Ask us on discord