takeRemoteSnapshot method

CancelableOperation<RemoteSnapshot> takeRemoteSnapshot(
  1. String streamId,
  2. String filePath
)

截图

Implementation

CancelableOperation<RemoteSnapshot> takeRemoteSnapshot(
  String streamId,
  String filePath,
) {
  int? _taskId;
  final CancelableCompleter<RemoteSnapshot> completer = CancelableCompleter(
    onCancel: () {
      if (_taskId != null) {
        _takeSnapshotResultObserver.removeRemote(_taskId.toString());
      }
    },
  );
  void completeHandler(value) {
    if (value != null) {
      if (completer.isCanceled || completer.isCompleted) {
        return;
      }
      _taskId = value;
      _takeSnapshotResultObserver.putRemote(_taskId.toString(), completer);
    } else {
      completer.completeError(TakeSnapshotResultObserver.errorNoTaskId);
    }
  }

  void errorHandler(error) {
    completer.completeError(TakeSnapshotResultObserver.errorException);
  }

  byteRTCHelper
      .takeRemoteSnapshot(streamId, filePath, _takeSnapshotResultObserver)
      .then(completeHandler, onError: errorHandler);
  return completer.operation;
}