initialize method
Implementation
Future<void> initialize() async {
if (_initialized) {
return;
}
try {
await _sessionController.initializeEngine(
agoraConnectionData: agoraConnectionData);
} catch (e) {
log("Error while initializing Agora RTC SDK: $e",
level: Level.error.value);
}
if (agoraConnectionData.rtmEnabled) {
try {
await _sessionController.initializeRtm(
agoraRtmClientEventHandler ?? AgoraRtmClientEventHandler());
} catch (e) {
log("Error while initializing Agora RTM SDK. ${e.toString()}",
level: Level.error.value);
}
}
if (agoraChannelData?.clientRoleType ==
ClientRoleType.clientRoleBroadcaster ||
agoraChannelData?.clientRoleType == null) {
await _sessionController.askForUserCameraAndMicPermission();
}
if (enabledPermission != null) {
await enabledPermission!.request();
}
_sessionController.createEvents(
agoraRtmChannelEventHandler ?? AgoraRtmChannelEventHandler(),
agoraEventHandlers ?? AgoraRtcEventHandlers(),
);
if (agoraChannelData != null) {
_sessionController.setChannelProperties(agoraChannelData!);
}
await _sessionController.joinVideoChannel();
_initialized = true;
}