The Annotation feature allows you to annotate on a Remote Stream. To support Annotations, you need to enable Canvas Streaming during Room Creation by setting: { canvas: true; }} in the JSON payload. To implement Annotation, you need to add Annotation Toolbar before you can start Annotations.
Table of Contents
Add Annotation Toolbar
Initiate Annotation Toolbar using the following code:
EnxToolbarWidget(width:100, height:50);
Start Annotation
The EnxRoom.startAnnotation() method is used to start Annotation on a given Stream object. To initiate Annotation, you need to setAnnotationObserver after getting connected to the room.
Class: EnxRtc
Method: static Future<void> startAnnotation(String streamId)
Parameter:
streamId: Stream Id of the stream to be annotated.
Callbacks:
onStartAnnotationAck– Acknowledgment to the Annotator when Annotation starts.onAnnotationStarted– Notification to everyone in the Room when Annotation starts.
EnxRtc.startAnnotation(streamId); // Start Annotation
// Acknowlegement to Annotator - Annotation started
EnxRtc.onStartAnnotationAck=(Map<dynamic, dynamic> map) {
};
// Notification to all - Annotation started
EnxRtc.onAnnotationStarted=(Map<dynamic, dynamic> map) {
};
Stop Annotation
The EnxRoom.stopAnnotation() method is used to stop Annotations.
Class: EnxRtc
Method: static Future<void> stopAnnotations()
Callbacks:
onStoppedAnnotationAck– Acknowledgment to the Annotator when Annotation stops.onAnnotationStopped– Notification to everyone in the Room when Annotation stops.
EnxRtc.stopAnnotation(); // Stop Annotation
// Notification to all - Annotation stopped
EnxRtc.onAnnotationStopped=(Map<dynamic, dynamic> map) {
};
// Acknowlegement to Annotator - Annotation stopped
EnxRtc.onStoppedAnnotationAck=(Map<dynamic, dynamic> map) {
};
Error Codes / Exceptions:
| Code | Description |
|---|---|
| 5093 | Annotation Access denied. |
| 5104 | Repeated startAnnotation() call made while Annotations already active in the Room. |
| 5106 | Repeated startAnnotation() call made while a previous request is in process. |
| 5108 | Invalid Stream passed to startAnnotation(). |
| 5109 | Failed to publish Annotation Stream. |
| 5112 | Annotation support available in Landscape Mode only. |
| 5094 | Repeated stopAnnotation() call made while a previous request is in process. |
