From a304b26c96594e7475a3be212529eecddd0d9c0a Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Sat, 6 Jul 2024 19:07:46 +0800 Subject: [PATCH] :recycle: Optimized video lib --- ios/Podfile.lock | 42 ++- lib/main.dart | 2 + lib/widgets/attachments/attachment_item.dart | 41 +-- linux/flutter/generated_plugin_registrant.cc | 8 + linux/flutter/generated_plugins.cmake | 3 + macos/Flutter/GeneratedPluginRegistrant.swift | 10 +- pubspec.lock | 316 +++++++++--------- pubspec.yaml | 7 +- .../flutter/generated_plugin_registrant.cc | 12 +- windows/flutter/generated_plugins.cmake | 5 +- 10 files changed, 244 insertions(+), 202 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 94dc37a..5e7ea13 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -114,6 +114,12 @@ PODS: - livekit_client (2.2.0): - Flutter - WebRTC-SDK (= 114.5735.10) + - media_kit_libs_ios_video (1.0.4): + - Flutter + - media_kit_native_event_loop (1.0.0): + - Flutter + - media_kit_video (0.0.1): + - Flutter - nanopb (2.30910.0): - nanopb/decode (= 2.30910.0) - nanopb/encode (= 2.30910.0) @@ -129,6 +135,8 @@ PODS: - PromisesObjC (2.4.0) - protocol_handler_ios (0.0.1): - Flutter + - screen_brightness_ios (0.1.0): + - Flutter - SDWebImage (5.19.2): - SDWebImage/Core (= 5.19.2) - SDWebImage/Core (5.19.2) @@ -137,9 +145,6 @@ PODS: - Flutter - FlutterMacOS - Sentry/HybridSDK (= 8.29.0) - - shared_preferences_foundation (0.0.1): - - Flutter - - FlutterMacOS - sqflite (0.0.3): - Flutter - FlutterMacOS @@ -148,9 +153,8 @@ PODS: - SwiftyGif (5.4.5) - url_launcher_ios (0.0.1): - Flutter - - video_player_avfoundation (0.0.1): + - volume_controller (0.0.1): - Flutter - - FlutterMacOS - wakelock_plus (0.0.1): - Flutter - WebRTC-SDK (114.5735.10) @@ -168,16 +172,19 @@ DEPENDENCIES: - image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`) - irondash_engine_context (from `.symlinks/plugins/irondash_engine_context/ios`) - livekit_client (from `.symlinks/plugins/livekit_client/ios`) + - media_kit_libs_ios_video (from `.symlinks/plugins/media_kit_libs_ios_video/ios`) + - media_kit_native_event_loop (from `.symlinks/plugins/media_kit_native_event_loop/ios`) + - media_kit_video (from `.symlinks/plugins/media_kit_video/ios`) - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) - permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`) - protocol_handler_ios (from `.symlinks/plugins/protocol_handler_ios/ios`) + - screen_brightness_ios (from `.symlinks/plugins/screen_brightness_ios/ios`) - sentry_flutter (from `.symlinks/plugins/sentry_flutter/ios`) - - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) - sqflite (from `.symlinks/plugins/sqflite/darwin`) - super_native_extensions (from `.symlinks/plugins/super_native_extensions/ios`) - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) - - video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/darwin`) + - volume_controller (from `.symlinks/plugins/volume_controller/ios`) - wakelock_plus (from `.symlinks/plugins/wakelock_plus/ios`) SPEC REPOS: @@ -223,6 +230,12 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/irondash_engine_context/ios" livekit_client: :path: ".symlinks/plugins/livekit_client/ios" + media_kit_libs_ios_video: + :path: ".symlinks/plugins/media_kit_libs_ios_video/ios" + media_kit_native_event_loop: + :path: ".symlinks/plugins/media_kit_native_event_loop/ios" + media_kit_video: + :path: ".symlinks/plugins/media_kit_video/ios" package_info_plus: :path: ".symlinks/plugins/package_info_plus/ios" path_provider_foundation: @@ -231,18 +244,18 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/permission_handler_apple/ios" protocol_handler_ios: :path: ".symlinks/plugins/protocol_handler_ios/ios" + screen_brightness_ios: + :path: ".symlinks/plugins/screen_brightness_ios/ios" sentry_flutter: :path: ".symlinks/plugins/sentry_flutter/ios" - shared_preferences_foundation: - :path: ".symlinks/plugins/shared_preferences_foundation/darwin" sqflite: :path: ".symlinks/plugins/sqflite/darwin" super_native_extensions: :path: ".symlinks/plugins/super_native_extensions/ios" url_launcher_ios: :path: ".symlinks/plugins/url_launcher_ios/ios" - video_player_avfoundation: - :path: ".symlinks/plugins/video_player_avfoundation/darwin" + volume_controller: + :path: ".symlinks/plugins/volume_controller/ios" wakelock_plus: :path: ".symlinks/plugins/wakelock_plus/ios" @@ -268,21 +281,24 @@ SPEC CHECKSUMS: image_picker_ios: c560581cceedb403a6ff17f2f816d7fea1421fc1 irondash_engine_context: 3458bf979b90d616ffb8ae03a150bafe2e860cc9 livekit_client: 2b3f5185f95d46d62d3570bf981f3d98ad3051e2 + media_kit_libs_ios_video: a5fe24bc7875ccd6378a0978c13185e1344651c1 + media_kit_native_event_loop: e6b2ab20cf0746eb1c33be961fcf79667304fa2a + media_kit_video: 5da63f157170e5bf303bf85453b7ef6971218a2e nanopb: 438bc412db1928dac798aa6fd75726007be04262 package_info_plus: 58f0028419748fad15bf008b270aaa8e54380b1c path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2 PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 protocol_handler_ios: a5db8abc38526ee326988b808be621e5fd568990 + screen_brightness_ios: 715ca807df953bf676d339f11464e438143ee625 SDWebImage: dfe95b2466a9823cf9f0c6d01217c06550d7b29a Sentry: 016de45ee5ce5fca2a829996f1bfafeb5e62e8b4 sentry_flutter: 5fb57c5b7e6427a9dc1fedde4269eb65823982d4 - shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec super_native_extensions: 4916b3c627a9c7fffdc48a23a9eca0b1ac228fa7 SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4 url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe - video_player_avfoundation: 7c6c11d8470e1675df7397027218274b6d2360b3 + volume_controller: 531ddf792994285c9b17f9d8a7e4dcdd29b3eae9 wakelock_plus: 78ec7c5b202cab7761af8e2b2b3d0671be6c4ae1 WebRTC-SDK: 8c0edd05b880a39648118192c252667ea06dea51 diff --git a/lib/main.dart b/lib/main.dart index 2258f44..229bb2c 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -2,6 +2,7 @@ import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; import 'package:flutter_acrylic/flutter_acrylic.dart'; import 'package:get/get.dart'; +import 'package:media_kit/media_kit.dart'; import 'package:protocol_handler/protocol_handler.dart'; import 'package:sentry_flutter/sentry_flutter.dart'; import 'package:solian/exts.dart'; @@ -32,6 +33,7 @@ void main() async { }, appRunner: () async { WidgetsFlutterBinding.ensureInitialized(); + MediaKit.ensureInitialized(); await Future.wait([ _initializeFirebase(), diff --git a/lib/widgets/attachments/attachment_item.dart b/lib/widgets/attachments/attachment_item.dart index 44b988c..8cd9bfb 100644 --- a/lib/widgets/attachments/attachment_item.dart +++ b/lib/widgets/attachments/attachment_item.dart @@ -1,12 +1,12 @@ import 'package:cached_network_image/cached_network_image.dart'; -import 'package:chewie/chewie.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; +import 'package:media_kit/media_kit.dart'; +import 'package:media_kit_video/media_kit_video.dart'; import 'package:solian/models/attachment.dart'; import 'package:solian/platform.dart'; import 'package:solian/services.dart'; import 'package:url_launcher/url_launcher_string.dart'; -import 'package:video_player/video_player.dart'; class AttachmentItem extends StatefulWidget { final String parentId; @@ -195,38 +195,33 @@ class _AttachmentItemVideo extends StatefulWidget { } class _AttachmentItemVideoState extends State<_AttachmentItemVideo> { - VideoPlayerController? _videoPlayerController; - ChewieController? _chewieController; + late final _player = Player( + configuration: const PlayerConfiguration(logLevel: MPVLogLevel.error), + ); + late final _controller = VideoController(_player); - void ensureInitVideo() { - if (_videoPlayerController != null) return; - _videoPlayerController = VideoPlayerController.networkUrl(Uri.parse( - '${ServiceFinder.services['paperclip']}/api/attachments/${widget.item.id}', - )); - _videoPlayerController!.initialize(); - _chewieController = ChewieController( - aspectRatio: widget.item.metadata?['ratio'] ?? 16 / 9, - videoPlayerController: _videoPlayerController!, - customControls: PlatformInfo.isMobile - ? const MaterialControls() - : const MaterialDesktopControls(), - materialProgressColors: ChewieProgressColors( - playedColor: Theme.of(context).colorScheme.primary, - handleColor: Theme.of(context).colorScheme.primary, + @override + void initState() { + super.initState(); + _player.open( + Media( + '${ServiceFinder.services['paperclip']}/api/attachments/${widget.item.id}', ), + play: false, ); } @override Widget build(BuildContext context) { - ensureInitVideo(); - return Chewie(controller: _chewieController!); + return Video( + aspectRatio: widget.item.metadata?['ratio'] ?? 16 / 9, + controller: _controller, + ); } @override void dispose() { - _videoPlayerController?.dispose(); - _chewieController?.dispose(); + _player.dispose(); super.dispose(); } } diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index 22430a2..d7bcdc5 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -11,6 +11,8 @@ #include #include #include +#include +#include #include #include #include @@ -31,6 +33,12 @@ void fl_register_plugins(FlPluginRegistry* registry) { g_autoptr(FlPluginRegistrar) irondash_engine_context_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "IrondashEngineContextPlugin"); irondash_engine_context_plugin_register_with_registrar(irondash_engine_context_registrar); + g_autoptr(FlPluginRegistrar) media_kit_libs_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "MediaKitLibsLinuxPlugin"); + media_kit_libs_linux_plugin_register_with_registrar(media_kit_libs_linux_registrar); + g_autoptr(FlPluginRegistrar) media_kit_video_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "MediaKitVideoPlugin"); + media_kit_video_plugin_register_with_registrar(media_kit_video_registrar); g_autoptr(FlPluginRegistrar) sentry_flutter_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "SentryFlutterPlugin"); sentry_flutter_plugin_register_with_registrar(sentry_flutter_registrar); diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index cd5d9e7..dd41e04 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -8,12 +8,15 @@ list(APPEND FLUTTER_PLUGIN_LIST flutter_secure_storage_linux flutter_webrtc irondash_engine_context + media_kit_libs_linux + media_kit_video sentry_flutter super_native_extensions url_launcher_linux ) list(APPEND FLUTTER_FFI_PLUGIN_LIST + media_kit_native_event_loop ) set(PLUGIN_BUNDLED_LIBRARIES) diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index b2643f3..108f99e 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -16,15 +16,16 @@ import flutter_webrtc import irondash_engine_context import livekit_client import macos_window_utils +import media_kit_libs_macos_video +import media_kit_video import package_info_plus import path_provider_foundation import protocol_handler_macos +import screen_brightness_macos import sentry_flutter -import shared_preferences_foundation import sqflite import super_native_extensions import url_launcher_macos -import video_player_avfoundation import wakelock_plus func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { @@ -39,14 +40,15 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { IrondashEngineContextPlugin.register(with: registry.registrar(forPlugin: "IrondashEngineContextPlugin")) LiveKitPlugin.register(with: registry.registrar(forPlugin: "LiveKitPlugin")) MacOSWindowUtilsPlugin.register(with: registry.registrar(forPlugin: "MacOSWindowUtilsPlugin")) + MediaKitLibsMacosVideoPlugin.register(with: registry.registrar(forPlugin: "MediaKitLibsMacosVideoPlugin")) + MediaKitVideoPlugin.register(with: registry.registrar(forPlugin: "MediaKitVideoPlugin")) FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) ProtocolHandlerMacosPlugin.register(with: registry.registrar(forPlugin: "ProtocolHandlerMacosPlugin")) + ScreenBrightnessMacosPlugin.register(with: registry.registrar(forPlugin: "ScreenBrightnessMacosPlugin")) SentryFlutterPlugin.register(with: registry.registrar(forPlugin: "SentryFlutterPlugin")) - SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) SuperNativeExtensionsPlugin.register(with: registry.registrar(forPlugin: "SuperNativeExtensionsPlugin")) UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) - FVPVideoPlayerPlugin.register(with: registry.registrar(forPlugin: "FVPVideoPlayerPlugin")) WakelockPlusMacosPlugin.register(with: registry.registrar(forPlugin: "WakelockPlusMacosPlugin")) } diff --git a/pubspec.lock b/pubspec.lock index 2167303..9b52e54 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -177,14 +177,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.3" - chewie: - dependency: "direct main" - description: - name: chewie - sha256: e53da939709efb9aad0f3d72a69a8d05f889168b7a138af60ce78bab5c94b135 - url: "https://pub.dev" - source: hosted - version: "1.8.1" cli_util: dependency: transitive description: @@ -257,14 +249,6 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.3" - csslib: - dependency: transitive - description: - name: csslib - sha256: "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb" - url: "https://pub.dev" - source: hosted - version: "1.0.0" cupertino_icons: dependency: "direct main" description: @@ -301,10 +285,10 @@ packages: dependency: transitive description: name: dev_build - sha256: "4a4c8e3aaaaa9a7de4039dc711ee573de5612a35a4469d01ecf30e5ae74cbcfd" + sha256: "5d23104ed6212275cca89b2226b5288833c6bb15529d4ad66a35a4b30fcb792b" url: "https://pub.dev" source: hosted - version: "0.16.7+4" + version: "1.0.0+1" device_info_plus: dependency: "direct main" description: @@ -357,10 +341,10 @@ packages: dependency: "direct main" description: name: file_picker - sha256: "2ca051989f69d1b2ca012b2cf3ccf78c70d40144f0861ff2c063493f7c8c3d45" + sha256: "824f5b9f389bfc4dddac3dea76cd70c51092d9dff0b2ece7ef4f53db8547d258" url: "https://pub.dev" source: hosted - version: "8.0.5" + version: "8.0.6" file_selector_linux: dependency: transitive description: @@ -696,14 +680,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.3.1" - html: - dependency: transitive - description: - name: html - sha256: "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a" - url: "https://pub.dev" - source: hosted - version: "0.15.4" http: dependency: transitive description: @@ -944,6 +920,78 @@ packages: url: "https://pub.dev" source: hosted version: "0.8.0" + media_kit: + dependency: "direct main" + description: + name: media_kit + sha256: "3289062540e3b8b9746e5c50d95bd78a9289826b7227e253dff806d002b9e67a" + url: "https://pub.dev" + source: hosted + version: "1.1.10+1" + media_kit_libs_android_video: + dependency: transitive + description: + name: media_kit_libs_android_video + sha256: "9dd8012572e4aff47516e55f2597998f0a378e3d588d0fad0ca1f11a53ae090c" + url: "https://pub.dev" + source: hosted + version: "1.3.6" + media_kit_libs_ios_video: + dependency: transitive + description: + name: media_kit_libs_ios_video + sha256: b5382994eb37a4564c368386c154ad70ba0cc78dacdd3fb0cd9f30db6d837991 + url: "https://pub.dev" + source: hosted + version: "1.1.4" + media_kit_libs_linux: + dependency: transitive + description: + name: media_kit_libs_linux + sha256: e186891c31daa6bedab4d74dcdb4e8adfccc7d786bfed6ad81fe24a3b3010310 + url: "https://pub.dev" + source: hosted + version: "1.1.3" + media_kit_libs_macos_video: + dependency: transitive + description: + name: media_kit_libs_macos_video + sha256: f26aa1452b665df288e360393758f84b911f70ffb3878032e1aabba23aa1032d + url: "https://pub.dev" + source: hosted + version: "1.1.4" + media_kit_libs_video: + dependency: "direct main" + description: + name: media_kit_libs_video + sha256: "3688e0c31482074578652bf038ce6301a5d21e1eda6b54fc3117ffeb4bdba067" + url: "https://pub.dev" + source: hosted + version: "1.0.4" + media_kit_libs_windows_video: + dependency: transitive + description: + name: media_kit_libs_windows_video + sha256: "7bace5f35d9afcc7f9b5cdadb7541d2191a66bb3fc71bfa11c1395b3360f6122" + url: "https://pub.dev" + source: hosted + version: "1.0.9" + media_kit_native_event_loop: + dependency: transitive + description: + name: media_kit_native_event_loop + sha256: a605cf185499d14d58935b8784955a92a4bf0ff4e19a23de3d17a9106303930e + url: "https://pub.dev" + source: hosted + version: "1.0.8" + media_kit_video: + dependency: "direct main" + description: + name: media_kit_video + sha256: c048d11a19e379aebbe810647636e3fc6d18374637e2ae12def4ff8a4b99a882 + url: "https://pub.dev" + source: hosted + version: "1.2.4" meta: dependency: transitive description: @@ -960,14 +1008,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.5" - nested: - dependency: transitive - description: - name: nested - sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" - url: "https://pub.dev" - source: hosted - version: "1.0.0" nm: dependency: transitive description: @@ -1164,10 +1204,10 @@ packages: dependency: transitive description: name: process_run - sha256: "8d9c6198b98fbbfb511edd42e7364e24d85c163e47398919871b952dc86a423e" + sha256: "6052115540ad88715d6bcee60656970f70c68c85846d1948b92e435f0382899e" url: "https://pub.dev" source: hosted - version: "0.14.2" + version: "1.0.0+1" protobuf: dependency: transitive description: @@ -1224,14 +1264,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.2.0" - provider: - dependency: transitive - description: - name: provider - sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c - url: "https://pub.dev" - source: hosted - version: "6.1.2" pub_semver: dependency: transitive description: @@ -1256,6 +1288,62 @@ packages: url: "https://pub.dev" source: hosted version: "0.27.7" + safe_local_storage: + dependency: transitive + description: + name: safe_local_storage + sha256: ede4eb6cb7d88a116b3d3bf1df70790b9e2038bc37cb19112e381217c74d9440 + url: "https://pub.dev" + source: hosted + version: "1.0.2" + screen_brightness: + dependency: transitive + description: + name: screen_brightness + sha256: ed8da4a4511e79422fc1aa88138e920e4008cd312b72cdaa15ccb426c0faaedd + url: "https://pub.dev" + source: hosted + version: "0.2.2+1" + screen_brightness_android: + dependency: transitive + description: + name: screen_brightness_android + sha256: "3df10961e3a9e968a5e076fe27e7f4741fa8a1d3950bdeb48cf121ed529d0caf" + url: "https://pub.dev" + source: hosted + version: "0.1.0+2" + screen_brightness_ios: + dependency: transitive + description: + name: screen_brightness_ios + sha256: "99adc3ca5490b8294284aad5fcc87f061ad685050e03cf45d3d018fe398fd9a2" + url: "https://pub.dev" + source: hosted + version: "0.1.0" + screen_brightness_macos: + dependency: transitive + description: + name: screen_brightness_macos + sha256: "64b34e7e3f4900d7687c8e8fb514246845a73ecec05ab53483ed025bd4a899fd" + url: "https://pub.dev" + source: hosted + version: "0.1.0+1" + screen_brightness_platform_interface: + dependency: transitive + description: + name: screen_brightness_platform_interface + sha256: b211d07f0c96637a15fb06f6168617e18030d5d74ad03795dd8547a52717c171 + url: "https://pub.dev" + source: hosted + version: "0.1.0" + screen_brightness_windows: + dependency: transitive + description: + name: screen_brightness_windows + sha256: "9261bf33d0fc2707d8cf16339ce25768100a65e70af0fcabaf032fc12408ba86" + url: "https://pub.dev" + source: hosted + version: "0.1.3" sdp_transform: dependency: transitive description: @@ -1280,62 +1368,6 @@ packages: url: "https://pub.dev" source: hosted version: "8.3.0" - shared_preferences: - dependency: "direct main" - description: - name: shared_preferences - sha256: d3bbe5553a986e83980916ded2f0b435ef2e1893dfaa29d5a7a790d0eca12180 - url: "https://pub.dev" - source: hosted - version: "2.2.3" - shared_preferences_android: - dependency: transitive - description: - name: shared_preferences_android - sha256: "93d0ec9dd902d85f326068e6a899487d1f65ffcd5798721a95330b26c8131577" - url: "https://pub.dev" - source: hosted - version: "2.2.3" - shared_preferences_foundation: - dependency: transitive - description: - name: shared_preferences_foundation - sha256: "0a8a893bf4fd1152f93fec03a415d11c27c74454d96e2318a7ac38dd18683ab7" - url: "https://pub.dev" - source: hosted - version: "2.4.0" - shared_preferences_linux: - dependency: transitive - description: - name: shared_preferences_linux - sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa" - url: "https://pub.dev" - source: hosted - version: "2.3.2" - shared_preferences_platform_interface: - dependency: transitive - description: - name: shared_preferences_platform_interface - sha256: "22e2ecac9419b4246d7c22bfbbda589e3acf5c0351137d87dd2939d984d37c3b" - url: "https://pub.dev" - source: hosted - version: "2.3.2" - shared_preferences_web: - dependency: transitive - description: - name: shared_preferences_web - sha256: "9aee1089b36bd2aafe06582b7d7817fd317ef05fc30e6ba14bff247d0933042a" - url: "https://pub.dev" - source: hosted - version: "2.3.0" - shared_preferences_windows: - dependency: transitive - description: - name: shared_preferences_windows - sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59" - url: "https://pub.dev" - source: hosted - version: "2.3.2" shelf: dependency: transitive description: @@ -1529,18 +1561,18 @@ packages: dependency: "direct main" description: name: timeago - sha256: d3204eb4c788214883380253da7f23485320a58c11d145babc82ad16bf4e7764 + sha256: "054cedf68706bb142839ba0ae6b135f6b68039f0b8301cbe8784ae653d5ff8de" url: "https://pub.dev" source: hosted - version: "3.6.1" + version: "3.7.0" timezone: dependency: transitive description: name: timezone - sha256: a6ccda4a69a442098b602c44e61a1e2b4bf6f5516e875bbf0f427d5df14745d5 + sha256: "2236ec079a174ce07434e89fcd3fcda430025eb7692244139a9cf54fdcf1fc7d" url: "https://pub.dev" source: hosted - version: "0.9.3" + version: "0.9.4" timing: dependency: transitive description: @@ -1565,6 +1597,22 @@ packages: url: "https://pub.dev" source: hosted version: "0.3.1" + universal_platform: + dependency: transitive + description: + name: universal_platform + sha256: "64e16458a0ea9b99260ceb5467a214c1f298d647c659af1bff6d3bf82536b1ec" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + uri_parser: + dependency: transitive + description: + name: uri_parser + sha256: "6543c9fd86d2862fac55d800a43e67c0dcd1a41677cb69c2f8edfe73bbcf1835" + url: "https://pub.dev" + source: hosted + version: "2.0.2" url_launcher: dependency: "direct main" description: @@ -1645,54 +1693,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" - video_player: - dependency: "direct main" - description: - name: video_player - sha256: "3f7694b0fa01ee654f439b1161f3c23cd8e87e15a714fd894307240fe1de1a4a" - url: "https://pub.dev" - source: hosted - version: "2.9.0" - video_player_android: - dependency: transitive - description: - name: video_player_android - sha256: "3ff2da7e5a9274bef9b5deb9084f73a77920211c463e0e836361b14146e67339" - url: "https://pub.dev" - source: hosted - version: "2.5.1" - video_player_avfoundation: - dependency: transitive - description: - name: video_player_avfoundation - sha256: d1e9a824f2b324000dc8fb2dcb2a3285b6c1c7c487521c63306cc5b394f68a7c - url: "https://pub.dev" - source: hosted - version: "2.6.1" - video_player_platform_interface: - dependency: transitive - description: - name: video_player_platform_interface - sha256: "236454725fafcacf98f0f39af0d7c7ab2ce84762e3b63f2cbb3ef9a7e0550bc6" - url: "https://pub.dev" - source: hosted - version: "6.2.2" - video_player_web: - dependency: transitive - description: - name: video_player_web - sha256: ff4d69a6614b03f055397c27a71c9d3ddea2b2a23d71b2ba0164f59ca32b8fe2 - url: "https://pub.dev" - source: hosted - version: "2.3.1" - video_player_win: - dependency: "direct main" - description: - name: video_player_win - sha256: "13904b42e7eeb4efeec4ae0d45e21344a2d376b83f304ebfe0b3fdf64b7731df" - url: "https://pub.dev" - source: hosted - version: "2.3.8" vm_service: dependency: transitive description: @@ -1701,6 +1701,14 @@ packages: url: "https://pub.dev" source: hosted version: "14.2.1" + volume_controller: + dependency: transitive + description: + name: volume_controller + sha256: "189bdc7a554f476b412e4c8b2f474562b09d74bc458c23667356bce3ca1d48c9" + url: "https://pub.dev" + source: hosted + version: "2.0.7" wakelock_plus: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 726db86..7299b6c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -33,9 +33,6 @@ dependencies: permission_handler: ^11.3.1 uuid: ^4.4.0 dropdown_button2: ^2.3.9 - video_player: ^2.8.6 - video_player_win: ^2.3.6 - chewie: ^1.8.1 livekit_client: ^2.1.5 flutter_webrtc: ^0.10.7 wakelock_plus: ^1.2.5 @@ -45,7 +42,6 @@ dependencies: firebase_messaging: ^15.0.0 package_info_plus: ^8.0.0 device_info_plus: ^10.1.0 - shared_preferences: ^2.2.3 flutter_acrylic: ^1.1.4 floor: ^1.5.0 sqflite: ^2.3.3+1 @@ -53,6 +49,9 @@ dependencies: markdown: ^7.2.2 super_drag_and_drop: ^0.8.17 super_clipboard: ^0.8.17 + media_kit: ^1.1.10+1 + media_kit_video: ^1.2.4 + media_kit_libs_video: ^1.0.4 dev_dependencies: flutter_test: diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 5fe9ab2..3c08b22 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -14,12 +14,14 @@ #include #include #include +#include +#include #include #include +#include #include #include #include -#include void RegisterPlugins(flutter::PluginRegistry* registry) { ConnectivityPlusWindowsPluginRegisterWithRegistrar( @@ -38,16 +40,20 @@ void RegisterPlugins(flutter::PluginRegistry* registry) { registry->GetRegistrarForPlugin("IrondashEngineContextPluginCApi")); LiveKitPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("LiveKitPlugin")); + MediaKitLibsWindowsVideoPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("MediaKitLibsWindowsVideoPluginCApi")); + MediaKitVideoPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("MediaKitVideoPluginCApi")); PermissionHandlerWindowsPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("PermissionHandlerWindowsPlugin")); ProtocolHandlerWindowsPluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("ProtocolHandlerWindowsPluginCApi")); + ScreenBrightnessWindowsPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("ScreenBrightnessWindowsPlugin")); SentryFlutterPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("SentryFlutterPlugin")); SuperNativeExtensionsPluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("SuperNativeExtensionsPluginCApi")); UrlLauncherWindowsRegisterWithRegistrar( registry->GetRegistrarForPlugin("UrlLauncherWindows")); - VideoPlayerWinPluginCApiRegisterWithRegistrar( - registry->GetRegistrarForPlugin("VideoPlayerWinPluginCApi")); } diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index c41ebb0..d288dc0 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -11,15 +11,18 @@ list(APPEND FLUTTER_PLUGIN_LIST flutter_webrtc irondash_engine_context livekit_client + media_kit_libs_windows_video + media_kit_video permission_handler_windows protocol_handler_windows + screen_brightness_windows sentry_flutter super_native_extensions url_launcher_windows - video_player_win ) list(APPEND FLUTTER_FFI_PLUGIN_LIST + media_kit_native_event_loop ) set(PLUGIN_BUNDLED_LIBRARIES)