import 'dart:io'; import 'package:chat/data/UserData.dart'; import 'package:chat/data/constants.dart'; import 'package:chat/generated/i18n.dart'; import 'package:chat/utils/CustomUI.dart'; import 'package:chat/utils/HttpUtil.dart'; import 'package:chat/utils/TokenMgr.dart'; import 'package:chat/utils/controller_widget_builder.dart'; import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_ijkplayer/flutter_ijkplayer.dart'; class VideoPage extends StatefulWidget { final userId; VideoPage({Key key, @required this.userId}) : super(key: key); _VideoPageState createState() => _VideoPageState(); } class _VideoPageState extends State { bool isShowPlayButton = true; bool isLoadingFish = false; IjkMediaController controller = IjkMediaController(); @override void initState() { super.initState(); SystemChrome.setEnabledSystemUIOverlays([]); getInfo(); } @override void dispose() { SystemChrome.setEnabledSystemUIOverlays(SystemUiOverlay.values); controller.dispose(); super.dispose(); } getInfo() async { Map data = { "userId": widget.userId, }; data['sign'] = TokenMgr().getSign(data); Response res = await HttpUtil().post('user/female/authInfo', data: data, failback: () => Navigator.of(context).pop()); Map resData = res.data; print(resData); if (resData['code'] == 0) { var videoUrl = resData['data']['AttestationValue']; if (videoUrl != '' && videoUrl != null) { isLoadingFish = true; var filePath = await UserData().getLoaclVideoPath(videoUrl); controller.setFileDataSource(File(filePath), autoPlay: false); setState(() {}); } } } @override Widget build(BuildContext context) { Widget appBar = new AppBar( backgroundColor: AppColors.NewAppbarBgColor, title: new Text( I18n.of(context).certified_video, textScaleFactor: 1.0, style: TextStyle(color: AppColors.NewAppbarTextColor), ), centerTitle: true, leading: CustomUI.buildCustomLeading(context), ); Widget content = Scaffold( backgroundColor: const Color(0xFFF4F4F4), body: Center( child: Container( height: MediaQuery.of(context).size.height, width: MediaQuery.of(context).size.width, child: _buildVideo(), ), ), appBar: appBar, resizeToAvoidBottomPadding: false, ); return CustomUI.buildPageLoading(context, content, !isLoadingFish); } Widget _buildVideo() { return IjkPlayer( controllerWidgetBuilder: (ctl) { return MyDefaultIJKControllerWidget( ///按钮修改 controller: ctl, hideBackButton: true, ); }, mediaController: controller, ); } }