import 'dart:convert';
import 'dart:developer' as developer;
import 'dart:io';
import 'dart:math';
import 'package:camera/camera.dart';
import 'package:convert/convert.dart';
import 'package:crypto/crypto.dart' as crypto;
import 'package:device_info/device_info.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
//import '../my_wechat_assets_picker_fix/my_asset_picker_1.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:hyzp_ybqx01_cuiping/provider/player_region.dart';
import 'UserInfo.dart';
////////////////////////////////////////////
// begin App统一全局区县切換方法-OK
// 1、修改手机桌面的App图标文本
// R:\FlutterProject\FlutterProject51-hyzp_ybqx\hyzp_ybqx\android\app\src\main\AndroidManifest.xml
// android:label="宜宾市翠屏黑烟抓拍"
// 2、修改App的android启动图片
// (1)、分别制作并运行 hyzp_ybqx00_yibin.images_copy.cmd 拷贝不同分辨率的图片文件hyzp_ybqx01_cuiping_launche.png到下面目录
// r:\FlutterProject\FlutterProject51-hyzp_ybqx\hyzp_ybqx\android\app\src\main\res\mipmap-hdpi\
// r:\FlutterProject\FlutterProject51-hyzp_ybqx\hyzp_ybqx\android\app\src\main\res\mipmap-mdpi\
// r:\FlutterProject\FlutterProject51-hyzp_ybqx\hyzp_ybqx\android\app\src\main\res\mipmap-xhdpi\
// r:\FlutterProject\FlutterProject51-hyzp_ybqx\hyzp_ybqx\android\app\src\main\res\mipmap-xxhdpi\
// r:\FlutterProject\FlutterProject51-hyzp_ybqx\hyzp_ybqx\android\app\src\main\res\mipmap-xxxhdpi\
// (2)、然后修改文件
// R:\FlutterProject\FlutterProject51-hyzp_ybqx\hyzp_ybqx\android\app\src\main\res\drawable\launch_background.xml
// android:src="@mipmap/hyzp_yibin_launche" />
// android:src="@mipmap/hyzp_ybqx_cuiping_launche" />
// 3、App的Flutter启动图片
// (1)、运行 hyzp_ybqx00_yibin.images_copy.cmd 拷贝 750 * 1334 的图片文件到:
// r:\FlutterProject\FlutterProject51-hyzp_ybqx\hyzp_ybqx\assets\images\hyzp_ybqx01_cuiping_launche.png
// (2)、然后修改文件
// R:\FlutterProject\FlutterProject51-hyzp_ybqx\hyzp_ybqx\lib\main.dart
// child: new Image.asset('assets/images/hyzp_ybqx01_cuiping_launche.png'),
// child: Image.asset('assets/images/hyzp_ybqx01_cuiping_launche.png', fit: BoxFit.cover),
// 4、文本信息
// (1)、宜宾市
// String service_tel = '\n服务热线:187-8467-8300';
// String yibin_QuXian = '宜宾';
// String copyright_info = '© 宜宾市生态环境局 四川省踏石科技有限公司 版权所有' + service_tel;
// String copyright_info_PinYin = 'YIBIN BLACK SMOKE CAR CAPTURE SYSTEM';
// (2)、翠屏区
String service_tel = '';
String yibin_QuXian = '宜宾市翠屏';
String copyright_info = '© 宜宾市翠屏生态环境局 版权所有' + service_tel;
String copyright_info_PinYin = 'YIBIN CUIPING BLACK SMOKE CAR CAPTURE SYSTEM';
// 5、修改AppID,但存放目錄不變
// (1)、修改 R:\FlutterProject\FlutterProject51-hyzp_ybqx\hyzp_ybqx\pubspec.yaml 文件中的
// name: hyzp_ybqx01_cuiping
// (2)、可以跳过:右键项目名称 Refactor|rename|hyzp_ybqx00_yibin,不属于git库信息,无关痛痒,但便于识别
// (3)、全局替换:
// A、将 “com.flutter.hyzp_ybqx00_yibin” 全部替换为 “com.flutter.hyzp_ybqx01_cuiping”
// B、将 “package:hyzp_ybqx00_yibin/” 全部替换为 “package:hyzp_ybqx01_cuiping/”
// C、将 “# hyzp_ybqx00_yibin” 全部替换为 “# hyzp_ybqx01_cuiping”
// D、将 “hyzp_ybqx00_yibin” 全部替换为 “hyzp_ybqx01_cuiping”
// 6、完成以上修改后,打开 Android Studio 的终端窗口,切换到项目的 lib 目录下,运行 flutter clean
// 7、重新编译运行App
// end App统一全局区县切換方法-OK
////////////////////////////////////////////
//LED字幕信息
//String g_ledMessage = '绿水青山就是金山银山 宜宾市翠屏生态环境局宣。';
// 是否已经调用 FlutterDownloader.initialize(debug: true)
bool bFlutterDownloader_initialize = false;
bool bNewVer = false; //是否发现新版本
//处理延时登录,判断从网络获取三种统计数据是否完成
bool bMayLogin = false;
//处理延时登录,判断是否已经点击登录按钮
bool bPreLoading = false;
//处理延时登录,判断用户名登录是否验证通过
bool bLoginVerify = false;
bool bHasMore = true;
//part library
//dart中,通过使用part、part of、library来实现拆分库,这样,就可以将一个庞大的库拆分成各种小库,只要引用主库即可
//点位总数
int dwSum = -1;
Size sizeWindowPhysicalSize;
//String dateAppCompile = '2020.12.30'; //1.0.1+1
//String dateAppCompile = '2021.02.20'; //1.2.5+1
//String dateAppCompile = '2021.03.18'; //1.2.6+1
//String dateAppCompile = '2021.05.18'; //1.2.7
List g_list = [];
//正在获取点位视频标志,禁止重入
bool getingDwVideo = false;
int getCount = 1; //获取点位视频地址尝试次数
int getSumTime = 0; //获取点位视频地址耗时(秒)
int getingIndex = -1; //正在获取视频的点位的索引号
String getingDwmc = ''; //正在获取视频的点位名称
String urlnew =
"http://www.yibinu.edu.cn/__local/5/35/DF/264049B7E978EEE2F5849688986_05D4A6FE_152CDB8C.mp4?e=.mp4";
bool isVideoUrl(String url, {bool showToast = false}) {
print('url = $url');
String prefix = url.substring(0, 4);
List list = ['http', 'rtmp', 'rstp'];
for (String item in list) {
if (prefix == item) {
return true;
}
}
if (showToast) {
Fluttertoast.showToast(
msg: '获取视频地址失败',
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.CENTER,
);
}
return false;
}
final TextEditingController myController = TextEditingController();
bool Playing = false; //禁止同时启动两次播放器
//final FijkPlayer player = FijkPlayer();
int g_iIndex = 0;
PlayerRegionProvide playerRegionProvide;
Future sysPop() async {
// currentPos = player.currentPos.inMilliseconds; //seekto方法的参数是毫秒
// await writeCurrentPosFile();
// await player.stop();
await SystemChannels.platform.invokeMethod('SystemNavigator.pop');
}
//人脸注册和人脸识别登录成功标志
int faceReg = -1; //1 成功,0 失败,-1 处理中
int faceLogin = -1; //1 成功,0 失败,-1 处理中
//人脸注册时所需用户ID
int faceRegUserID = -1; //人脸注册时所需用户ID,-1 非法
List cameras;
UserInfo g_userInfo = UserInfo(mapUserInfoRet: {
"ret": 200,
"data": {
"is_login": true,
"user_id": 1,
"token": "B93EC91FA2FE293B7077162D4527FC4BB228CD6C0A4F24A882B9A8BBE6C3FB47"
},
"msg": ""
});
Future