takeLocalSnapshot method

CancelableOperation<LocalSnapshot> takeLocalSnapshot(
  1. String filePath
)

截图

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;
}