ScreenStramPlugin.dart 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import 'dart:io';
  2. import 'package:flutter/services.dart';
  3. class ScreenStreamPlugin {
  4. static const _channel = MethodChannel('screen_stream');
  5. static Future<bool> start(String playerInfoId) async {
  6. try {
  7. await _channel.invokeMethod('start', {'playerInfoId': playerInfoId});
  8. return true;
  9. } catch (e) {
  10. return false;
  11. }
  12. }
  13. static Future<bool> stop() async {
  14. try {
  15. await _channel.invokeMethod('stop', []);
  16. return true;
  17. } catch (e) {
  18. return false;
  19. }
  20. }
  21. static Future<bool> checkPermission() async {
  22. if (Platform.isAndroid) {
  23. try {
  24. bool success = await _channel.invokeMethod('checkPermission', []);
  25. return success;
  26. } catch (e) {
  27. return false;
  28. }
  29. } else {
  30. return true;
  31. }
  32. }
  33. static Future<bool> requestPermission() async {
  34. if (Platform.isAndroid) {
  35. try {
  36. bool success = await _channel.invokeMethod('requestPermission', []);
  37. return success;
  38. } catch (e) {
  39. return false;
  40. }
  41. } else {
  42. return true;
  43. }
  44. }
  45. static Future<Map> processVideo(String path) async {
  46. try {
  47. Map result = await _channel.invokeMethod('processVideo', {'path': path});
  48. if (result != null) {
  49. return result;
  50. }
  51. } catch (e) {}
  52. return null;
  53. }
  54. static Future<String> getVideo(String playerInfoId) async {
  55. try {
  56. String result = await _channel.invokeMethod('getVideo', {'playerInfoId': playerInfoId});
  57. return result;
  58. } catch (e) {}
  59. return null;
  60. }
  61. }