// import 'dart:convert'; // import 'dart:html' as html; // // import 'package:diplomaticquarterapp/pages/videocall-webrtc-rnd/utils/blob-extension.dart'; // import 'package:flutter/cupertino.dart'; // import 'package:http/http.dart' as http; // // // should run on port '65482' add to additional arguments --web-port=65482 // class UploadRecording{ // // final url = "https://vcallapi.hmg.com/api/videocall/trackMeeting"; // // final url = "https://10.20.200.186/api/videocall/trackMeeting"; // upload(html.Blob blob, {@required Map params, @required Function completion, @required Function(double) onProgress}) async{ // // final bytes = await blob.readBytes(); // final filename = "${DateTime.now().millisecondsSinceEpoch}.webm"; // final file = http.MultipartFile.fromBytes('file', bytes ?? [], filename: filename); // // var request = http.MultipartRequest('POST', Uri.parse(url)); // request.files.add(file); // request.fields.addAll({'fileName':filename,...params}); // // print("Uploading video of '${blob.size}' bytes"); // var response = await request.send().catchError((e){ // print(e.toString()); // completion(e.toString()); // }); // // print(response.statusCode); // if (response.statusCode == 200) { // final bytes = await response.stream.toBytes(); // final jsonString = utf8.decode(bytes); // final json = jsonDecode(jsonString); // if(json == null) // completion('200: Invalid response format'); // else // completion(json); // // }else { // print(response.reasonPhrase); // completion(response.reasonPhrase); // } // } // // _upload(html.Blob blob, {@required Map params, @required Function completion, @required Function(double) onProgress}) async{ // final blobBytes = await blob.readBytes(); // // Map body = {}; // body.addAll(params); // body['file'] = blobBytes ?? []; // body['fileName'] = "${DateTime.now().millisecondsSinceEpoch}.webm"; // // final json = jsonEncode(body); // // var request = http.StreamedRequest('POST', Uri.parse(url)); // // var totalLength = json.length;// Total length (to calculate upload progress) // var transferredLength = 0;// Length transferred (to calculate upload progress) // var uploadProgress = 0.0; // Upload progress (from 0.0 to 1.0) // // Stream.value(json).transform(utf8.encoder).listen((chunk) { // // transferredLength += chunk.length; // uploadProgress = transferredLength / totalLength; // // print("Chunk: ${chunk.length}, transferred: $transferredLength, progress: $uploadProgress"); // request.sink.add(chunk); // onProgress(uploadProgress*100); // // }, onDone: () { // print("Done. Total: $totalLength, transferred: $transferredLength, progress: $uploadProgress"); // request.sink.close(); // onProgress(uploadProgress*100); // }); // // // print("Uploading video of '${blob.size}' bytes"); // var response = await request.send(); // // print(response.statusCode); // if (response.statusCode == 200){ // // final bytes = await response.stream.toBytes(); // final jsonString = utf8.decode(bytes); // final json = jsonDecode(jsonString); // if(json == null) // completion('200: Invalid response format'); // else // completion(json); // // // }else { // print("${response.statusCode}: ${response.reasonPhrase}"); // completion(response.reasonPhrase); // } // // } // }