takeRemoteSnapshot method
截图
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;
}