When a user gives/revokes your broadcast or screenshare permissions, then the permissionsChanged event will be emitted. Such users are typically moderators who are capable of managing other users' permissions.
Typical use-case for listening to this event is to show camera and microphone icons in your custom toolbar when the user receives permissions to broadcast.
Sample payload
{
"type": "permissionsChanged",
"data": {
"broadcast": true, // Legacy field, true if either audio or video is allowed
"broadcastAudio": true, // New field, true if audio broadcasting is allowed
"broadcastVideo": true, // New field, true if video broadcasting is allowed
"screenshare": true
}
}
Sample subscription code
sambaFrame.on('permissionsChanged', (event) => {
const data = event.data;
if (data.broadcast !== undefined) {
if (data.broadcast) {
console.log('You were granted broadcast permission')
} else {
console.log('Your permission to broadcast was revoked')
}
}
// New way - using granular broadcast permissions
if (data.broadcastAudio !== undefined) {
if (data.broadcastAudio) {
console.log('You were granted audio broadcast permission')
} else {
console.log('Your audio broadcast permission was revoked')
}
}
if (data.broadcastVideo !== undefined) {
if (data.broadcastVideo) {
console.log('You were granted video broadcast permission')
} else {
console.log('Your video broadcast permission was revoked')
}
}
if (data.screenshare !== undefined) {
if (data.screenshare) {
console.log('You were granted screenshare permission')
} else {
console.log('Your permission to screenshare was revoked')
}
}
});