setSourceEnabled method
A convenience method to publish a track for a specific TrackSource. This is the recommended method to publish tracks.
Implementation
Future<LocalTrackPublication?> setSourceEnabled(
TrackSource source, bool enabled) async {
logger.fine('setSourceEnabled(source: $source, enabled: $enabled)');
final publication = getTrackPublicationBySource(source);
if (publication != null) {
if (enabled) {
await publication.unmute();
} else {
if (source == TrackSource.screenShareVideo) {
await unpublishTrack(publication.sid);
} else {
await publication.mute();
}
}
return publication;
} else if (enabled) {
if (source == TrackSource.camera) {
final track = await LocalVideoTrack.createCameraTrack(
room.roomOptions?.defaultCameraCaptureOptions);
return await publishVideoTrack(track);
} else if (source == TrackSource.microphone) {
final track = await LocalAudioTrack.create(
room.roomOptions?.defaultAudioCaptureOptions);
return await publishAudioTrack(track);
} else if (source == TrackSource.screenShareVideo) {
final track = await LocalVideoTrack.createScreenShareTrack(
room.roomOptions?.defaultScreenShareCaptureOptions);
return await publishVideoTrack(track);
}
}
return null;
}