mirror of
https://bitbucket.org/myhomie/myhomie_app.git
synced 2025-12-06 00:51:19 +00:00
Update video flux + add interactive viewer
This commit is contained in:
parent
091b89d894
commit
9855c6632e
@ -99,6 +99,12 @@ android {
|
||||
|
||||
*/
|
||||
|
||||
packagingOptions {
|
||||
// Fixes duplicate libraries build issue,
|
||||
// when your project uses more than one plugin that depend on C++ libs.
|
||||
pickFirst 'lib/**/libc++_shared.so'
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
release {
|
||||
keyAlias keystoreProperties['keyAlias']
|
||||
@ -116,6 +122,9 @@ android {
|
||||
minifyEnabled true
|
||||
shrinkResources true
|
||||
debuggable false
|
||||
proguardFiles getDefaultProguardFile(
|
||||
'proguard-android-optimize.txt'),
|
||||
'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
1
android/app/proguard-rules.pro
vendored
Normal file
1
android/app/proguard-rules.pro
vendored
Normal file
@ -0,0 +1 @@
|
||||
-keep class org.videolan.libvlc.** { *; }
|
||||
@ -1,6 +1,8 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="be.unov.myhomie">
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
||||
<application
|
||||
android:label="MyHomie"
|
||||
android:usesCleartextTraffic="true"
|
||||
@ -11,6 +13,8 @@
|
||||
android:theme="@style/LaunchTheme"
|
||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||||
android:hardwareAccelerated="true"
|
||||
android:resizeableActivity="true"
|
||||
android:requestLegacyExternalStorage="true"
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<!-- Specifies an Android theme to apply to this Activity as soon as
|
||||
the Android process has started. This theme is visible to the user
|
||||
@ -32,6 +36,9 @@
|
||||
android:name="io.flutter.embedding.android.SplashScreenDrawable"
|
||||
android:resource="@drawable/launch_background"
|
||||
/>
|
||||
<meta-data
|
||||
android:name="android.allow_multiple_resumed_activities"
|
||||
android:value="true" />
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
#Fri Sep 01 08:41:57 CEST 2023
|
||||
VERSION_BUILD=91
|
||||
#Wed Jan 17 10:40:29 CET 2024
|
||||
VERSION_BUILD=99
|
||||
VERSION_MAJOR=1
|
||||
VERSION_MINOR=0
|
||||
VERSION_PATCH=0
|
||||
|
||||
@ -5,7 +5,6 @@ import 'package:myhomie_app/Screens/Main/index.dart';
|
||||
import 'package:myhomie_app/constants.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import 'custom_clipper.dart';
|
||||
|
||||
class CustomAppBar extends StatelessWidget implements PreferredSizeWidget {
|
||||
final double _preferredHeight = 50;
|
||||
|
||||
@ -44,10 +44,10 @@ class _CustomBottomNavigationBarState extends State<CustomBottomNavigationBar> {
|
||||
),*/
|
||||
child: Row( //children inside bottom appbar
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: <Widget>[
|
||||
Container(
|
||||
width: size.width *0.4,
|
||||
width: size.width *0.35,
|
||||
//color: Colors.greenAccent,
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
@ -60,7 +60,7 @@ class _CustomBottomNavigationBarState extends State<CustomBottomNavigationBar> {
|
||||
),
|
||||
SizedBox(width: size.width *0.2, /*child: Container(color: Colors.green,)*/),
|
||||
Container(
|
||||
width: size.width *0.4,
|
||||
width: size.width *0.35,
|
||||
//color: Colors.greenAccent,
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flare_flutter/flare_actor.dart';
|
||||
import 'package:myhomie_app/Screens/Main/MainPage.dart';
|
||||
import 'package:myhomie_app/Screens/Main/index.dart';
|
||||
import 'package:myhomie_app/constants.dart';
|
||||
@ -25,7 +24,7 @@ class CustomNavItem extends StatelessWidget {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(25),
|
||||
color: kMainColor,
|
||||
color: id == 0 ? kMainColor : null,
|
||||
),
|
||||
width: 55,
|
||||
height: 55,
|
||||
|
||||
@ -50,7 +50,6 @@ class _CheckInputContainerState extends State<CheckInputContainer> {
|
||||
size: 25.0,
|
||||
),
|
||||
),
|
||||
if(widget.label != null)
|
||||
AutoSizeText(
|
||||
widget.label,
|
||||
style: new TextStyle(fontSize: widget.fontSize, fontWeight: FontWeight.w300),
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:myhomie_app/Models/homieContext.dart';
|
||||
import 'package:path/path.dart';
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:fluttertoast/fluttertoast.dart';
|
||||
import 'package:mqtt_client/mqtt_client.dart';
|
||||
import 'package:mqtt_client/mqtt_server_client.dart';
|
||||
import 'package:myhomie_app/Models/homieContext.dart';
|
||||
@ -69,11 +68,7 @@ class MQTTHelper {
|
||||
}
|
||||
|
||||
Future<MqttServerClient?> connect(dynamic appContext) async {
|
||||
HomieAppContext homieAppContext = appContext.getContext();
|
||||
|
||||
if (homieAppContext == null) {
|
||||
homieAppContext = new HomieAppContext(host: '192.168.31.140', userId: 'TODO');
|
||||
} // TO DEBUG
|
||||
HomieAppContext homieAppContext = appContext.getContext(); // TO DEBUG
|
||||
|
||||
print(homieAppContext.host);
|
||||
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:myhomie_app/Components/custom_dialog.dart';
|
||||
import 'package:myhomie_app/Helpers/PushNotificationService.dart';
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:firebase_messaging/firebase_messaging.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:fluttertoast/fluttertoast.dart';
|
||||
import 'package:myhomie_app/Helpers/NotificationManager.dart';
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mqtt_client/mqtt_server_client.dart';
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:myhomie_app/client.dart';
|
||||
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
import 'package:flare_flutter/flare_actor.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:myhomie_app/Helpers/MQTTHelper.dart';
|
||||
import 'package:myhomie_app/app_context.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
|
||||
@ -1,13 +1,9 @@
|
||||
import 'dart:convert';
|
||||
import 'dart:typed_data';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mycore_api/api.dart';
|
||||
|
||||
import 'package:mycore_api/api.dart' as API;
|
||||
import 'package:myhomie_app/Components/Alarms/getCurrentAlarmModeIcon.dart';
|
||||
import 'package:myhomie_app/Components/Custom_Navigation_Bar/CustomAppBar.dart';
|
||||
import 'package:myhomie_app/Components/check_input_container.dart';
|
||||
import 'package:myhomie_app/Components/loading_common.dart';
|
||||
import 'package:myhomie_app/Components/string_input_container.dart';
|
||||
import 'package:myhomie_app/Models/homieContext.dart';
|
||||
|
||||
@ -1,13 +1,8 @@
|
||||
import 'dart:convert';
|
||||
import 'dart:typed_data';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mycore_api/api.dart';
|
||||
|
||||
import 'package:mycore_api/api.dart' as API;
|
||||
import 'package:myhomie_app/Components/Alarms/getCurrentAlarmModeIcon.dart';
|
||||
import 'package:myhomie_app/Components/Custom_Navigation_Bar/CustomAppBar.dart';
|
||||
import 'package:myhomie_app/Components/check_input_container.dart';
|
||||
import 'package:myhomie_app/Components/loading_common.dart';
|
||||
import 'package:myhomie_app/Components/string_input_container.dart';
|
||||
import 'package:myhomie_app/Models/homieContext.dart';
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mycore_api/api.dart';
|
||||
import 'package:myhomie_app/Components/loading.dart';
|
||||
import 'package:myhomie_app/Components/loading_common.dart';
|
||||
import 'package:myhomie_app/Models/homieContext.dart';
|
||||
import 'package:myhomie_app/Screens/Main/Home/roomDetailPage.dart';
|
||||
|
||||
@ -1,15 +1,10 @@
|
||||
import 'dart:convert';
|
||||
import 'dart:typed_data';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mycore_api/api.dart';
|
||||
|
||||
import 'package:mycore_api/api.dart' as API;
|
||||
import 'package:myhomie_app/Components/Alarms/getCurrentAlarmModeIcon.dart';
|
||||
import 'package:myhomie_app/Components/Custom_Navigation_Bar/CustomAppBar.dart';
|
||||
import 'package:myhomie_app/Components/check_input_container.dart';
|
||||
import 'package:myhomie_app/Components/loading_common.dart';
|
||||
import 'package:myhomie_app/Components/string_input_container.dart';
|
||||
import 'package:myhomie_app/Models/homieContext.dart';
|
||||
import 'package:myhomie_app/Screens/Main/Devices/deviceDetailPage.dart';
|
||||
import 'package:myhomie_app/app_context.dart';
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/rendering.dart';
|
||||
import 'package:mqtt_client/mqtt_server_client.dart';
|
||||
import 'package:myhomie_app/Components/Custom_Navigation_Bar/custom_app_bar.dart';
|
||||
import 'package:myhomie_app/Components/Custom_Navigation_Bar/custom_bottom_navigation_bar.dart';
|
||||
@ -16,7 +15,6 @@ import 'package:provider/provider.dart';
|
||||
import '../../Models/homieContext.dart';
|
||||
import 'Energy/energy.dart';
|
||||
import 'Home/home.dart';
|
||||
import 'Profile/profile.dart';
|
||||
import 'Security/security.dart';
|
||||
import 'index.dart';
|
||||
|
||||
@ -106,39 +104,7 @@ class _MainPageState extends State<MainPage> {
|
||||
],
|
||||
),
|
||||
),
|
||||
floatingActionButton: FloatingActionButton(
|
||||
backgroundColor: kMainColor,
|
||||
onPressed: () {
|
||||
/* var message = {
|
||||
"userId": homieAppContext.userId,
|
||||
"width": size.width,
|
||||
"height": size.height,
|
||||
"action": "button0"
|
||||
};
|
||||
|
||||
const pubTopic = 'rpiZero/test';
|
||||
final builder = MqttClientPayloadBuilder();
|
||||
|
||||
builder.addString(jsonEncode(message));
|
||||
|
||||
homieAppContext.clientMQTT.publishMessage(pubTopic, MqttQos.atLeastOnce, builder.payload);
|
||||
|
||||
var message2 = {
|
||||
"state": "toggle"
|
||||
};
|
||||
|
||||
const pubTopic2 = 'zigbee2mqtt/GU10Bureau/set';
|
||||
final builder2 = MqttClientPayloadBuilder();
|
||||
|
||||
builder2.addString(jsonEncode(message2));
|
||||
|
||||
print("Send request");
|
||||
|
||||
homieAppContext.clientMQTT.publishMessage(pubTopic2, MqttQos.atLeastOnce, builder2.payload);
|
||||
*/
|
||||
},
|
||||
child: CustomNavItem(setPage: setPage, icon: NavItemIcon.home, id: 0),
|
||||
),
|
||||
floatingActionButton: CustomNavItem(setPage: setPage, icon: NavItemIcon.home, id: 0),
|
||||
floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
|
||||
bottomNavigationBar: CustomBottomNavigationBar(),
|
||||
),
|
||||
|
||||
@ -1,5 +1,3 @@
|
||||
import 'dart:convert';
|
||||
import 'dart:typed_data';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mycore_api/api.dart';
|
||||
|
||||
@ -6,6 +6,7 @@ import 'package:myhomie_app/Models/homieContext.dart';
|
||||
import 'package:myhomie_app/Screens/Main/Security/alarmDetailPage.dart';
|
||||
import 'package:myhomie_app/Screens/Main/Security/changeAlarmMode.dart';
|
||||
import 'package:myhomie_app/Screens/Main/Security/streamWidget.dart';
|
||||
import 'package:myhomie_app/Screens/Main/Security/videoPlayerNetwork.dart';
|
||||
import 'package:myhomie_app/app_context.dart';
|
||||
import 'package:myhomie_app/constants.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
@ -112,9 +113,9 @@ class _SecurityScreenState extends State<SecurityScreen> {
|
||||
Container(
|
||||
height: size.height * 0.3,
|
||||
width: size.width * 0.9,
|
||||
child: ImageStreamWidget(
|
||||
child: VideoPlayerNetwork(initialFluxUrl: "http://192.168.31.140:8765/picture/4/current")/*ImageStreamWidget(
|
||||
initialImageUrl: "http://192.168.31.140:8765/picture/4/current",
|
||||
) /*VideoPlayerWidget(
|
||||
)*/ /*VideoPlayerWidget(
|
||||
videoUrl: "http://192.168.31.140:8084/", //"http://192.168.31.140:8084/",
|
||||
)*/,
|
||||
),
|
||||
|
||||
53
lib/Screens/Main/Security/videoPlayerNetwork.dart
Normal file
53
lib/Screens/Main/Security/videoPlayerNetwork.dart
Normal file
@ -0,0 +1,53 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_vlc_player/flutter_vlc_player.dart';
|
||||
|
||||
class VideoPlayerNetwork extends StatefulWidget {
|
||||
final String initialFluxUrl;
|
||||
|
||||
VideoPlayerNetwork({required this.initialFluxUrl});
|
||||
|
||||
@override
|
||||
_VideoPlayerNetworkState createState() => _VideoPlayerNetworkState();
|
||||
}
|
||||
|
||||
class _VideoPlayerNetworkState extends State<VideoPlayerNetwork> {
|
||||
late VlcPlayerController _videoPlayerController;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
|
||||
_videoPlayerController = VlcPlayerController.network(
|
||||
'rtsp://192.168.31.110/live0', // 'http://192.168.31.140:8084'
|
||||
hwAcc: HwAcc.full,
|
||||
autoPlay: true,
|
||||
options: VlcPlayerOptions(rtp: VlcRtpOptions([
|
||||
VlcRtpOptions.rtpOverRtsp(true),
|
||||
])),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() async {
|
||||
super.dispose();
|
||||
await _videoPlayerController.stopRendererScanning();
|
||||
await _videoPlayerController.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Center(
|
||||
child: Container(
|
||||
width: 500,
|
||||
height: 500,
|
||||
child: InteractiveViewer(
|
||||
child: VlcPlayer(
|
||||
controller: _videoPlayerController,
|
||||
aspectRatio: 16 / 9,
|
||||
placeholder: Center(child: CircularProgressIndicator()),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -1,6 +1,4 @@
|
||||
import 'package:firebase_messaging/firebase_messaging.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:myhomie_app/Helpers/PushNotificationService.dart';
|
||||
import 'package:myhomie_app/client.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
@ -35,7 +33,7 @@ void main() async {
|
||||
|
||||
final MyApp myApp = MyApp(
|
||||
initialRoute: initialRoute,
|
||||
homieAppContext: localContext!,
|
||||
homieAppContext: localContext,
|
||||
);
|
||||
|
||||
await Firebase.initializeApp();
|
||||
|
||||
@ -8,9 +8,11 @@ import Foundation
|
||||
import firebase_core
|
||||
import firebase_messaging
|
||||
import sqflite
|
||||
import video_player_avfoundation
|
||||
|
||||
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||
FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin"))
|
||||
FLTFirebaseMessagingPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseMessagingPlugin"))
|
||||
SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin"))
|
||||
FVPVideoPlayerPlugin.register(with: registry.registrar(forPlugin: "FVPVideoPlayerPlugin"))
|
||||
}
|
||||
|
||||
52
pubspec.lock
52
pubspec.lock
@ -157,10 +157,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: collection
|
||||
sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
|
||||
sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.17.2"
|
||||
version: "1.18.0"
|
||||
convert:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -323,6 +323,22 @@ packages:
|
||||
description: flutter
|
||||
source: sdk
|
||||
version: "0.0.0"
|
||||
flutter_vlc_player:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_vlc_player
|
||||
sha256: b869251c9b186f2e3d21c103734e842c90cb5b2d46af0c35c6ecc4c46cdefce6
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "7.4.1"
|
||||
flutter_vlc_player_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: flutter_vlc_player_platform_interface
|
||||
sha256: b161dde841368d330be82c5ee6f40b29dadc4227167bf2770d949f576ae2d9b1
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.3"
|
||||
flutter_web_plugins:
|
||||
dependency: transitive
|
||||
description: flutter
|
||||
@ -452,10 +468,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: meta
|
||||
sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
|
||||
sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.9.1"
|
||||
version: "1.10.0"
|
||||
mime:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -648,18 +664,18 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stack_trace
|
||||
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
|
||||
sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.11.0"
|
||||
version: "1.11.1"
|
||||
stream_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stream_channel
|
||||
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
|
||||
sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.1"
|
||||
version: "2.1.2"
|
||||
stream_transform:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -696,10 +712,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8"
|
||||
sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.6.0"
|
||||
version: "0.6.1"
|
||||
timer_builder:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@ -768,10 +784,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: video_player
|
||||
sha256: "3fd106c74da32f336dc7feb65021da9b0207cb3124392935f1552834f7cce822"
|
||||
sha256: fbf28ce8bcfe709ad91b5789166c832cb7a684d14f571a81891858fefb5bb1c2
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.7.0"
|
||||
version: "2.8.2"
|
||||
video_player_android:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -784,10 +800,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: video_player_avfoundation
|
||||
sha256: f5f5b7fe8c865be8a57fe80c2dca130772e1db775b7af4e5c5aa1905069cfc6c
|
||||
sha256: "309e3962795e761be010869bae65c0b0e45b5230c5cee1bec72197ca7db040ed"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.4.9"
|
||||
version: "2.5.6"
|
||||
video_player_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -816,10 +832,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: web
|
||||
sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10
|
||||
sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.1.4-beta"
|
||||
version: "0.3.0"
|
||||
web_socket_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -845,5 +861,5 @@ packages:
|
||||
source: hosted
|
||||
version: "3.1.2"
|
||||
sdks:
|
||||
dart: ">=3.1.0-185.0.dev <3.3.0"
|
||||
flutter: ">=3.7.0-0"
|
||||
dart: ">=3.2.0 <3.3.0"
|
||||
flutter: ">=3.16.0"
|
||||
|
||||
@ -44,8 +44,9 @@ dependencies:
|
||||
auto_size_text: ^3.0.0
|
||||
firebase_core: ^2.15.0
|
||||
firebase_messaging: ^14.6.6
|
||||
video_player: ^2.7.0
|
||||
video_player: ^2.8.2
|
||||
timer_builder: ^2.0.0
|
||||
flutter_vlc_player: ^7.4.1
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user