Skip to main content
Version: 0.1.x

Mute / Unmute Mic - Android

Muting and Unmuting your microphone refers to turning your microphone off and on, respectively.

When you mute your microphone, you prevent any sound from your microphone from being transmitted to other meeting participants, while unmuting it allows others to hear you.

unmuteMic()

  • By using unmuteMic() function of Meeting class, local participant can publish audio to other participants.

    • You can call this method when the local participant is not broadcasting any audio to others.
  • You can pass customised audio track in unmuteMic() by using Custom Audio Track.

  • Audio stream of the participant can be accessed from the onStreamEnabled event of ParticipantEventListener.

muteMic()

  • By using muteMic() function of Meeting class, local participant can stop publish audio to other participants.

  • You can call this method when the local participant is broadcasting any audio to others.

Example

  private var micEnabled = false

btnMic!!.setOnClickListener { _: View? ->
if (micEnabled) {
// Muting Mic
meeting!!.muteMic()
micEnabled=false
} else {
// Unmuting Mic
meeting!!.unmuteMic()
micEnabled=true
}
}

Events associated with unmuteMic

Events associated with muteMic

  meeting!!.localParticipant.addEventListener(object : ParticipantEventListener() {
//Callback for when the participant starts a stream
override fun onStreamEnabled(stream: Stream) {
if(stream.getKind().equals("audio")){
Log.d("VideoSDK","Audio Stream On: onStreamEnabled $stream");
}
}

//Callback for when the participant stops a stream
override fun onStreamDisabled(stream: Stream) {
if(stream.getKind().equals("audio")){
Log.d("VideoSDK","Audio Stream On: onStreamDisabled $stream");
}
}
});

Audio Permissions

  • To use the microphone in a meeting, you need to add permission in app/src/main/AndroidManifest.xml after </application>.
AndroidManifest.xml
<uses-permission android:name="android.permission.RECORD_AUDIO" />
  • You need to set up a permission request that provides this access.
import android.Manifest
import android.content.pm.PackageManager
import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat

class MainActivity : AppCompatActivity() {
private val PERMISSION_REQUEST_CODE: Int = 1;

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

if (checkPermission()) {
// . write your main code to execute, It will execute if the permission is already given.
} else {
requestPermission()
}
}
private fun checkPermission(): Boolean {
return ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED
}

private fun requestPermission() {
ActivityCompat.requestPermissions(
this, arrayOf(Manifest.permission.RECORD_AUDIO),
PERMISSION_REQUEST_CODE
)
}

override
fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<out String>,
grantResults: IntArray
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
when (requestCode) {
PERMISSION_REQUEST_CODE -> if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(applicationContext, "Permission Granted", Toast.LENGTH_SHORT).show()
// main logic
} else {
Toast.makeText(applicationContext, "Permission Denied", Toast.LENGTH_SHORT).show()
}
}
}
}

API Reference

The API references for all the methods and events utilised in this guide are provided below.

Got a Question? Ask us on discord