Commit 57e6f922a0f875ec71f2e9c784c6f5c66b4c9eab

Authored by wdn127929
1 parent d5a0989f

评论管理仅能测试,不能打包版

... ... @@ -33,9 +33,9 @@ if (flutterRoot == null) {
def flutterVersionCode = "503"
def flutterVersionCode = "504"
if (flutterVersionCode == null) {
flutterVersionCode = '503'
flutterVersionCode = '504'
}
... ... @@ -44,9 +44,9 @@ if (flutterVersionCode == null) {
def flutterVersionName = "5.0.3"
def flutterVersionName = "5.0.4"
if (flutterVersionName == null) {
flutterVersionName = '5.0.3'
flutterVersionName = '5.0.4'
}
... ...
... ... @@ -3,3 +3,4 @@ org.gradle.jvmargs=-Xmx1536M
android.enableR8=true
android.useAndroidX=true
android.enableJetifier=true
# android.jetifier.blacklist=bcprov-jdk15on
... ...
... ... @@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objectVersion = 50;
objects = {
/* Begin PBXBuildFile section */
... ...
... ... @@ -209,6 +209,7 @@ class CommentsImageModel {
ImageInfo imageInfo;
ImageAve imageAve;
String url;
String avinfo;
CommentsImageModel(
{this.key,
... ... @@ -218,7 +219,8 @@ class CommentsImageModel {
this.exif,
this.imageInfo,
this.imageAve,
this.url});
this.url,
this.avinfo});
CommentsImageModel.fromJson(Map<String, dynamic> json) {
key = json['key'];
... ... @@ -233,6 +235,7 @@ class CommentsImageModel {
? new ImageAve.fromJson(json['imageAve'])
: null;
url = json['url'];
avinfo =json['avinfo'] == null ? null : jsonEncode(json['avinfo']);
}
Map<String, dynamic> toJson() {
... ... @@ -249,6 +252,8 @@ class CommentsImageModel {
data['imageAve'] = this.imageAve.toJson();
}
data['url'] = this.url;
data['avinfo'] = this.avinfo;
return data;
}
}
... ...
... ... @@ -49,7 +49,7 @@ class _CouponSettingPageState extends State<CouponSettingPage> {
List<CouponSunModel> couponDataList = [];
bool isComments = false; //启用评价设置
bool isCommentsCoupon = false; //启用评价送券
bool isCommentsCoupon = false; //启用评价送券
List<CouponSunModel> couponDataListComments = [];
@override
void initState() {
... ... @@ -438,7 +438,7 @@ class _CouponSettingPageState extends State<CouponSettingPage> {
Map temp =
await NavigatorUtil.goMarkingCouponSelectPage(
context, {'object': couponDataList});
if (temp['coupon'] != null) {
if (temp != null && temp['coupon'] != null) {
couponDataList = temp['coupon'];
setState(() {});
... ...
import 'dart:ui';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:fijkplayer/fijkplayer.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:one_key/models/comments_label_model.dart';
import 'package:one_key/models/comments_model.dart';
import 'package:one_key/pages/my/comment_manage/input_buttom_widget.dart';
import 'package:one_key/pages/my/comment_manage/pop_route.dart';
import 'package:one_key/pages/my/comment_manage/video_page.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/dialog_util.dart';
... ... @@ -13,6 +17,7 @@ import 'package:one_key/widgets/round_button.dart';
import 'package:one_key/widgets/system_app_bar.dart';
import 'package:one_key/widgets/v_empty_view.dart';
import 'package:provider/provider.dart';
import 'package:video_player/video_player.dart';
import '../../../constant/state.dart';
import '../../../provider/comment_manage_provider.dart';
... ... @@ -21,7 +26,10 @@ import '../../../utils/screen_util.dart';
import '../../../utils/utils.dart';
import '../../../widgets/page_exception.dart';
import '../../online_check/photo_view_wiget.dart';
import 'package:sliding_up_panel2/sliding_up_panel2.dart';
// import 'package:chewie/chewie.dart';
// import 'package:fijkplayer/fijkplayer.dart';
// import 'package:video_thumbnail/video_thumbnail.dart';
import 'package:cached_video_player/cached_video_player.dart';
/**
* 评价管理
... ... @@ -40,6 +48,13 @@ class _CommentManageHomePageState extends State<CommentManageHomePage> {
String label = '';
TextEditingController replyController = TextEditingController();
// 声明控制器(两个)
CachedVideoPlayerController videoPlayerController;
// ChewieController chewieController;
// final FijkPlayer player = FijkPlayer();
// VideoPlayerController _controller;
Future _initializeVideoPlayerFuture;
@override
void initState() {
super.initState();
... ... @@ -48,7 +63,7 @@ class _CommentManageHomePageState extends State<CommentManageHomePage> {
WidgetsBinding.instance.addPostFrameCallback((_) {
_getSellerComments(isShowLoading: false);
_getCountCommentLabel(isShowLoading: false);
// _getCountCommentLabel(isShowLoading: false);
});
}
... ... @@ -56,18 +71,20 @@ class _CommentManageHomePageState extends State<CommentManageHomePage> {
void dispose() {
bus.emit('changeStatusColor');
// videoPlayerController.dispose();
super.dispose();
}
///评价标签
_getCountCommentLabel({bool isShowLoading = true}) async {
Map<String, String> pramas = {
'sid': Provider.of<UserModel>(context, listen: false).user.sellerid,
};
// label
await commentManageProvider.getCountCommentLabel(context, pramas,
isShowLoading: isShowLoading);
}
// _getCountCommentLabel({bool isShowLoading = true}) async {
// Map<String, String> pramas = {
// 'sid': Provider.of<UserModel>(context, listen: false).user.sellerid,
// };
// // label
// await commentManageProvider.getCountCommentLabel(context, pramas,
// isShowLoading: isShowLoading);
// }
///评价列表
_getSellerComments({bool isShowLoading = true}) async {
... ... @@ -76,9 +93,9 @@ class _CommentManageHomePageState extends State<CommentManageHomePage> {
'scene': '3',
'status': '1'
};
if (label != '') {
pramas['label'] = label;
}
// if (label != '') {
// pramas['label'] = label;
// }
await commentManageProvider.getSellerComments(context, pramas,
isShowLoading: isShowLoading);
... ... @@ -102,67 +119,67 @@ class _CommentManageHomePageState extends State<CommentManageHomePage> {
}
}
List<Widget> _labelWidget() {
List<Widget> data = [];
data.add(InkWell(
onTap: () {
allSelect = true;
commentManageProvider.commentsLabeldata.forEach((element) {
element.select = false;
});
setState(() {});
label = '';
_getSellerComments(isShowLoading: true);
},
child: Container(
padding: EdgeInsets.symmetric(horizontal: w(8), vertical: w(3)),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(r(10)),
color: allSelect
? MyColours.color_33438E93
: MyColours.color_F8F7F3),
child: Text(
'全部',
style: TextStyle(
fontSize: font(14),
color: allSelect
? MyColours.color_438E93
: MyColours.color_515151),
),
)));
for (int i = 0; i < commentManageProvider.commentsLabeldata.length; i++) {
CommentsLabelSunModel sunModel =
commentManageProvider.commentsLabeldata[i];
data.add(InkWell(
onTap: () {
commentManageProvider.commentsLabeldata.forEach((element) {
element.select = false;
});
allSelect = false;
sunModel.select = true;
setState(() {});
label = sunModel.name;
_getSellerComments(isShowLoading: true);
},
child: Container(
padding: EdgeInsets.symmetric(horizontal: w(8), vertical: w(3)),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(r(10)),
color: sunModel.select
? MyColours.color_33438E93
: MyColours.color_F8F7F3),
child: Text(
sunModel.name,
style: TextStyle(
fontSize: font(14),
color: sunModel.select
? MyColours.color_438E93
: MyColours.color_515151),
),
)));
}
return data;
}
// List<Widget> _labelWidget() {
// List<Widget> data = [];
// data.add(InkWell(
// onTap: () {
// allSelect = true;
// commentManageProvider.commentsLabeldata.forEach((element) {
// element.select = false;
// });
// setState(() {});
// label = '';
// _getSellerComments(isShowLoading: true);
// },
// child: Container(
// padding: EdgeInsets.symmetric(horizontal: w(8), vertical: w(3)),
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(r(10)),
// color: allSelect
// ? MyColours.color_33438E93
// : MyColours.color_F8F7F3),
// child: Text(
// '全部',
// style: TextStyle(
// fontSize: font(14),
// color: allSelect
// ? MyColours.color_438E93
// : MyColours.color_515151),
// ),
// )));
// for (int i = 0; i < commentManageProvider.commentsLabeldata.length; i++) {
// CommentsLabelSunModel sunModel =
// commentManageProvider.commentsLabeldata[i];
// data.add(InkWell(
// onTap: () {
// commentManageProvider.commentsLabeldata.forEach((element) {
// element.select = false;
// });
// allSelect = false;
// sunModel.select = true;
// setState(() {});
// label = sunModel.name;
// _getSellerComments(isShowLoading: true);
// },
// child: Container(
// padding: EdgeInsets.symmetric(horizontal: w(8), vertical: w(3)),
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(r(10)),
// color: sunModel.select
// ? MyColours.color_33438E93
// : MyColours.color_F8F7F3),
// child: Text(
// sunModel.name,
// style: TextStyle(
// fontSize: font(14),
// color: sunModel.select
// ? MyColours.color_438E93
// : MyColours.color_515151),
// ),
// )));
// }
// return data;
// }
/// 九宫格
Widget _getGridImg(List<CommentsImageModel> imags) {
... ... @@ -184,9 +201,63 @@ class _CommentManageHomePageState extends State<CommentManageHomePage> {
//子组件宽高长度比例
childAspectRatio: 1.0),
itemBuilder: (BuildContext context, int index) {
if (imags[index].avinfo != null) {
videoPlayerController =
CachedVideoPlayerController.network(imags[index].url);
videoPlayerController.setLooping(false);
_initializeVideoPlayerFuture = videoPlayerController.initialize();
//视频
return InkWell(
onTap: () {
Navigator.push(
context,
PopRoute(
child: VideoPage(
url: imags[index].url,
)));
},
child: Stack(alignment: Alignment.center, children: [
ClipRRect(
borderRadius: BorderRadius.circular(r(8)),
child: FutureBuilder(
//显示缩略图
future: _initializeVideoPlayerFuture,
builder: (context, snapshot) {
print(snapshot.connectionState);
if (snapshot.hasError) print(snapshot.error);
if (snapshot.connectionState ==
ConnectionState.done) {
return AspectRatio(
aspectRatio: 1 / 1,
// aspectRatio: _controller.value.aspectRatio,
// child: VideoPlayer(videoPlayerController),
child:
CachedVideoPlayer(videoPlayerController));
} else {
return Center(
child: CircularProgressIndicator(),
);
}
},
)),
Positioned(
child: Image.asset(
Utils.getImgPath('play'),
width: w(20),
))
]));
}
return InkWell(
onTap: () {
List<String> images = imags.map((e) => e.url).toList();
List<String> images = [];
imags.forEach((element) {
if (!element.mimeType.startsWith('video')) {
images.add(element.url);
}
});
_showPhotoView(context, index, images);
},
child: ClipRRect(
... ... @@ -246,7 +317,7 @@ class _CommentManageHomePageState extends State<CommentManageHomePage> {
return ExceptionPage(
pageState: model.pageState,
callback: () async {
_getCountCommentLabel();
// _getCountCommentLabel();
_getSellerComments();
},
emptyMsg: "暂时没有评论列表信息哦",
... ... @@ -259,13 +330,13 @@ class _CommentManageHomePageState extends State<CommentManageHomePage> {
padding: EdgeInsets.symmetric(horizontal: w(20)),
child: Column(
children: [
Container(
child: Wrap(
runSpacing: w(10),
spacing: w(10),
children: _labelWidget()),
),
VEmptyView(10),
// Container(
// child: Wrap(
// runSpacing: w(10),
// spacing: w(10),
// children: _labelWidget()),
// ),
// VEmptyView(10),
Expanded(
child: ListView.builder(
itemCount:
... ... @@ -299,10 +370,7 @@ class _CommentManageHomePageState extends State<CommentManageHomePage> {
BorderRadius.circular(w(50)),
child: sunModel.authorImage !=
null &&
sunModel.authorImage !=
'' &&
!sunModel.authorImage
.endsWith('.mp4')
sunModel.authorImage != ''
? CachedNetworkImage(
imageUrl:
sunModel.authorImage,
... ... @@ -356,51 +424,51 @@ class _CommentManageHomePageState extends State<CommentManageHomePage> {
color: MyColours
.color_515151),
)),
Spacer(),
Container(
width: w(75),
height: w(24),
child: ListView
.builder(
itemCount:
5,
shrinkWrap:
true,
scrollDirection:
Axis
.horizontal,
itemBuilder:
(context,
index) {
return CachedNetworkImage(
imageUrl: index <=
int.parse(sunModel.grade) - 1
? 'http://nosqn.colorcun.com/pinglun/p%20%283%29.png'
: 'http://nosqn.colorcun.com/pinglun/p%20%284%29.png',
width: w(
15),
);
})),
HEmptyView(3),
Container(
padding: EdgeInsets
.symmetric(
vertical:
w(4)),
child: Text(
starTextMap[
'${sunModel.grade}'] ??
'',
maxLines: 2,
overflow:
TextOverflow
.ellipsis,
style: TextStyle(
fontSize:
font(12),
color: MyColours
.color_999999),
)),
// Spacer(),
// Container(
// width: w(75),
// height: w(24),
// child: ListView
// .builder(
// itemCount:
// 5,
// shrinkWrap:
// true,
// scrollDirection:
// Axis
// .horizontal,
// itemBuilder:
// (context,
// index) {
// return CachedNetworkImage(
// imageUrl: index <=
// int.parse(sunModel.grade) - 1
// ? 'http://nosqn.colorcun.com/pinglun/p%20%283%29.png'
// : 'http://nosqn.colorcun.com/pinglun/p%20%284%29.png',
// width: w(
// 15),
// );
// })),
// HEmptyView(3),
// Container(
// padding: EdgeInsets
// .symmetric(
// vertical:
// w(4)),
// child: Text(
// starTextMap[
// '${sunModel.grade}'] ??
// '',
// maxLines: 2,
// overflow:
// TextOverflow
// .ellipsis,
// style: TextStyle(
// fontSize:
// font(12),
// color: MyColours
// .color_999999),
// )),
],
),
VEmptyView(8),
... ... @@ -409,7 +477,7 @@ class _CommentManageHomePageState extends State<CommentManageHomePage> {
.symmetric(
vertical: w(4)),
child: Text(
'就餐于 ${sunModel.ddate} ${sunModel.ddateSolt} ${sunModel.tableinfo}',
'就餐于 ${sunModel.ddate ?? ''} ${sunModel.ddateSolt ?? ''} ${sunModel.tableinfo ?? ''}',
maxLines: 10,
overflow: TextOverflow
.ellipsis,
... ... @@ -452,19 +520,19 @@ class _CommentManageHomePageState extends State<CommentManageHomePage> {
color: MyColours
.color_515151),
)),
Container(
padding: EdgeInsets
.symmetric(
vertical: w(4)),
child: Text(
'#${sunModel.evalLabel ?? ''}',
style: TextStyle(
height: 1.8,
fontSize:
font(12),
color: MyColours
.color_438E93),
)),
// Container(
// padding: EdgeInsets
// .symmetric(
// vertical: w(4)),
// child: Text(
// '#${sunModel.evalLabel ?? ''}',
// style: TextStyle(
// height: 1.8,
// fontSize:
// font(12),
// color: MyColours
// .color_438E93),
// )),
if (sunModel
.enclosure.length >
0)
... ...
import 'package:fijkplayer/fijkplayer.dart';
import 'package:flutter/material.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/widgets/system_app_bar.dart';
// import 'custom_ui.dart';
class VideoPage extends StatefulWidget {
final String url;
VideoPage({this.url});
@override
_VideoPageState createState() => _VideoPageState();
}
class _VideoPageState extends State<VideoPage> {
final FijkPlayer player = FijkPlayer();
_VideoPageState();
@override
void initState() {
super.initState();
player.setOption(FijkOption.hostCategory, "enable-snapshot", 1);
player.setOption(FijkOption.playerCategory, "mediacodec-all-videos", 1);
startPlay();
}
void startPlay() async {
await player.setOption(FijkOption.hostCategory, "request-screen-on", 1);
await player.setOption(FijkOption.hostCategory, "request-audio-focus", 1);
await player.setDataSource(widget.url, autoPlay: true).catchError((e) {
print("setDataSource error: $e");
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: SystemAppBar("评价管理"),
body: Container(
child: Center(
child: FijkView(
color: MyColours.color_000000,
player: player,
panelBuilder: fijkPanel2Builder(snapShot: true),
fsFit: FijkFit.fill,
// panelBuilder: simplestUI,
// panelBuilder: (FijkPlayer player, BuildContext context,
// Size viewSize, Rect texturePos) {
// return CustomFijkPanel(
// player: player,
// buildContext: context,
// viewSize: viewSize,
// texturePos: texturePos);
// },
),
),
),
);
}
@override
void dispose() {
super.dispose();
player.release();
}
}
... ...
... ... @@ -31,7 +31,10 @@ import '../../../../models/coupon_model.dart';
*/
class MarkingCouponSelectPage extends StatefulWidget {
final List<CouponSunModel> couponList;
MarkingCouponSelectPage({Key key, this.couponList}) : super(key: key);
final bool mulSelect;
MarkingCouponSelectPage({Key key, this.couponList, this.mulSelect = true})
: super(key: key);
@override
_MarkingCouponSelectPageState createState() =>
... ... @@ -92,7 +95,6 @@ class _MarkingCouponSelectPageState extends State<MarkingCouponSelectPage> {
@override
void dispose() {
super.dispose();
}
... ... @@ -140,23 +142,28 @@ class _MarkingCouponSelectPageState extends State<MarkingCouponSelectPage> {
return InkWell(
onTap: () {
//改这里 ******8
// couponProvider.couponListSelect
// .forEach((element) {
// element.isCheck = false;
// });
// couponProvider.couponListSelect[index].isCheck =
// true;
couponProvider.couponListSelect[index].isCheck =
!couponProvider
.couponListSelect[index].isCheck;
if (couponProvider
.couponListSelect[index].isCheck) {
selectDataList.add(
couponProvider.couponListSelect[index]);
if (widget.mulSelect) {
couponProvider.couponListSelect[index].isCheck =
!couponProvider
.couponListSelect[index].isCheck;
if (couponProvider
.couponListSelect[index].isCheck) {
selectDataList.add(
couponProvider.couponListSelect[index]);
} else {
selectDataList.remove(
couponProvider.couponListSelect[index]);
}
} else {
selectDataList.remove(
couponProvider.couponListSelect
.forEach((element) {
element.isCheck = false;
});
selectDataList = [];
selectDataList.add(
couponProvider.couponListSelect[index]);
couponProvider.couponListSelect[index].isCheck =
true;
}
setState(() {});
... ... @@ -188,21 +195,30 @@ class _MarkingCouponSelectPageState extends State<MarkingCouponSelectPage> {
// bool old = couponProvider
// .couponListSelect[index].isCheck;
//改这里 ******8
couponProvider
.couponListSelect[index].isCheck =
!couponProvider
.couponListSelect[index].isCheck;
if (couponProvider
.couponListSelect[index].isCheck) {
selectDataList.add(
couponProvider.couponListSelect[index]);
if (widget.mulSelect) {
couponProvider
.couponListSelect[index].isCheck =
!couponProvider
.couponListSelect[index].isCheck;
if (couponProvider
.couponListSelect[index].isCheck) {
selectDataList.add(couponProvider
.couponListSelect[index]);
} else {
selectDataList.remove(couponProvider
.couponListSelect[index]);
}
} else {
selectDataList.remove(
couponProvider.couponListSelect
.forEach((element) {
element.isCheck = false;
});
selectDataList = [];
selectDataList.add(
couponProvider.couponListSelect[index]);
couponProvider
.couponListSelect[index].isCheck = true;
}
// couponProvider
// .couponListSelect[index].isCheck = !old;
setState(() {});
}));
}, childCount: couponProvider.couponListSelect.length),
... ...
... ... @@ -486,11 +486,17 @@ class _CommentsSettingPageState extends State<CommentsSettingPage> {
},
onPressed: () async {
//切换活动
Map temp =
await NavigatorUtil.goMarkingCouponSelectPage(
context,
{'object': couponDataListComments});
if (temp['coupon'] != null) {
{'object': couponDataListComments},
mulSelect: false);
// Map temp = await NavigatorUtil.goCouponSelectPage(
// context,
// from: 'statistics',
// hasModify: false);
if (temp!= null && temp['coupon'] != null) {
couponDataListComments = temp['coupon'];
setState(() {});
... ...
... ... @@ -1459,12 +1459,10 @@ class NavigatorUtil {
///预订安排通知定制------优惠券选择
static Future<dynamic> goMarkingCouponSelectPage(
BuildContext context,
Map object, {
replace = false,
}) {
BuildContext context, Map object,
{replace = false, bool mulSelect = true}) {
return _navigateTo(context,
"${Routes.marking_coupon_select_page}?object=${FluroConvertUtils.object2string(object)}",
"${Routes.marking_coupon_select_page}?object=${FluroConvertUtils.object2string(object)}&mulSelect=${mulSelect}",
replace: replace);
}
... ...
... ... @@ -2504,11 +2504,13 @@ var markingCouponSelectPageHandle = new Handler(
res.add(CouponSunModel.fromJson(item));
}
}
bool mulSelect = FluroConvertUtils.string2bool(params["mulSelect"].first);
// NotebookDetail detailEntity = NotebookDetail.fromJson(json
// .decode(FluroConvertUtils.fluroCnParamsDecode(params["detail"].first)));
return ChangeNotifierProvider<MarketingCenterProvider>(
create: (_) => MarketingCenterProvider(),
child: MarkingCouponSelectPage(couponList: res));
child: MarkingCouponSelectPage(couponList: res, mulSelect: mulSelect));
});
//我的----营销中心-预订安排预览页
... ... @@ -3017,9 +3019,6 @@ var commentManageHomePageHandle = new Handler(
create: (_) => CommentManageProvider(), child: CommentManageHomePage());
});
//客户通知----评价配置页
var commentsSettingPageHandle = new Handler(
handlerFunc: (BuildContext context, Map<String, List<Object>> params) {
... ...
... ... @@ -169,6 +169,13 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.1"
cached_video_player:
dependency: "direct main"
description:
name: cached_video_player
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.4"
characters:
dependency: transitive
description:
... ... @@ -400,6 +407,13 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.1.2"
fijkplayer:
dependency: "direct main"
description:
name: fijkplayer
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.11.0"
file:
dependency: transitive
description:
... ... @@ -930,35 +944,35 @@ packages:
name: permission_handler
url: "https://pub.flutter-io.cn"
source: hosted
version: "10.0.0"
version: "10.4.3"
permission_handler_android:
dependency: transitive
description:
name: permission_handler_android
url: "https://pub.flutter-io.cn"
source: hosted
version: "10.0.0"
version: "10.3.4"
permission_handler_apple:
dependency: transitive
description:
name: permission_handler_apple
url: "https://pub.flutter-io.cn"
source: hosted
version: "9.0.4"
version: "9.1.4"
permission_handler_platform_interface:
dependency: transitive
description:
name: permission_handler_platform_interface
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.7.0"
version: "3.11.3"
permission_handler_windows:
dependency: transitive
description:
name: permission_handler_windows
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.1.0"
version: "0.1.3"
petitparser:
dependency: transitive
description:
... ... @@ -1401,40 +1415,47 @@ packages:
source: hosted
version: "3.1.1"
video_player:
dependency: "direct main"
dependency: transitive
description:
name: video_player
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.4.7"
version: "2.6.0"
video_player_android:
dependency: transitive
description:
name: video_player_android
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.3.5"
version: "2.4.3"
video_player_avfoundation:
dependency: transitive
description:
name: video_player_avfoundation
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.3.4"
version: "2.4.2"
video_player_platform_interface:
dependency: transitive
description:
name: video_player_platform_interface
url: "https://pub.flutter-io.cn"
source: hosted
version: "5.1.2"
version: "5.1.4"
video_player_web:
dependency: transitive
description:
name: video_player_web
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.10"
version: "2.0.15"
video_thumbnail:
dependency: "direct main"
description:
name: video_thumbnail
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.5.3"
wakelock:
dependency: transitive
description:
... ...
... ... @@ -135,14 +135,18 @@ dependencies:
#苹果登陆
sign_in_with_apple: ^3.0.0
# sign_in_with_apple: ^3.0.0
# video_thumbnail: ^0.2.5
video_player: ^2.4.7
video_thumbnail: ^0.5.3
# video_player: ^2.4.7
# video_player: ^2.7.0
# video_player: ^2.4.2
# video_player: ^2.2.12
# ^2.4.7
# chewie: ^1.3.3
chewie: ^1.3.5
cached_video_player: ^2.0.4
# 视频播放
# flutter_ijkplayer: 0.3.5+1
# fijkplayer: ^0.11.0
# 视频信息获取
# video_compress: ^2.1.1
video_compress: ^3.1.1
... ... @@ -198,6 +202,9 @@ dependencies:
#评论弹框
sliding_up_panel2: ^3.3.0+1
#视频播放
fijkplayer: ^0.11.0
# shimmer: ^3.0.0
... ...