upload method
Future<String>
upload({
- UploadProgressCallback? onProgress,
- UploadCompleteCallback? onComplete,
- UploadErrorCallback? onError,
Implementation
Future<String> upload({
UploadProgressCallback? onProgress,
UploadCompleteCallback? onComplete,
UploadErrorCallback? onError,
}) async {
_assertMediaReady();
final uploadId = _mediaDetail!.id!;
late final StreamSubscription<Map<String, dynamic>> subscription;
subscription =
MethodChannelTruvideoMediaSdk.sharedUploadEvents.listen((event) async {
final id = event['id'];
final type = event['event'] ?? event['type'];
if (id != uploadId) return;
switch (type) {
case 'onProgress':
case 'uploadProgress':
onProgress?.call(event);
case 'onComplete':
case 'uploadComplete':
event['metaData'] = _tryParseJson(event['metaData']);
event['tags'] = _tryParseJson(event['tags']);
onComplete?.call(event);
await subscription.cancel();
case 'onError':
case 'uploadError':
onError?.call(event);
await subscription.cancel();
}
});
final result = await TruvideoMediaSdk.uploadMedia(uploadId);
return result ?? 'Upload started';
}