@rushi-dave answer works.
However, the microphone is not muted. The solution to that is to add this:
private var localAudioTrack: AudioTrack? = null
override fun onTrack(transceiver: RtpTransceiver?) {
val receiverTrack = transceiver?.receiver?.track()
if (receiverTrack is AudioTrack) {
remoteAudioTrack = receiverTrack
remoteAudioTrack?.setEnabled(true)
Napier.d(tag = TAG) { "Remote audio track: received and attached" }
}
val senderTrack = transceiver?.sender?.track()
if (senderTrack is AudioTrack) {
localAudioTrack = senderTrack
localAudioTrack?.setEnabled(true)
Napier.d(tag = TAG) { "Local audio track: received and attached" }
}
}
Then we can enable either remoteAudioTrack
(stream from AI) or localAudioTrack
(microphone).