takeLocalSnapshot method
截图
Implementation
CancelableOperation<LocalSnapshot> takeLocalSnapshot(
String filePath,
) {
int? _taskId;
CancelableCompleter<LocalSnapshot> completer = CancelableCompleter(
onCancel: () {
if (_taskId != null) {
_takeSnapshotResultObserver.removeLocal(_taskId.toString());
}
},
);
void completeHandler(value) {
if (value != null) {
if (completer.isCanceled || completer.isCompleted) {
return;
}
_taskId = value;
_takeSnapshotResultObserver.putLocal(value.toString(), completer);
print(
'takeLocalSnapshot taskId: $_taskId, ${_takeSnapshotResultObserver.putLocal}');
} else {
completer.completeError(TakeSnapshotResultObserver.errorNoTaskId);
}
}
void errorHandler(error) {
completer.completeError(TakeSnapshotResultObserver.errorException);
}
byteRTCHelper
.takeLocalSnapshot(filePath, _takeSnapshotResultObserver)
.then(completeHandler, onError: errorHandler);
return completer.operation;
}