diff --git a/lib/pages/live/live_stream/add_video_page.dart b/lib/pages/live/live_stream/add_video_page.dart index 7758182..84672f3 100644 --- a/lib/pages/live/live_stream/add_video_page.dart +++ b/lib/pages/live/live_stream/add_video_page.dart @@ -2,12 +2,17 @@ import 'dart:io'; import 'package:camera/camera.dart'; import 'package:flutter/material.dart'; +import 'package:oktoast/oktoast.dart'; import 'package:path/path.dart'; import 'package:path_provider/path_provider.dart'; +import 'package:image_picker/image_picker.dart'; + import 'package:recook/constants/header.dart'; import 'package:recook/main.dart'; +import 'package:recook/pages/live/live_stream/crop_video_page.dart'; import 'package:recook/pages/live/widget/local_file_video.dart'; import 'package:recook/pages/live/widget/video_record_button.dart'; +import 'package:recook/utils/custom_route.dart'; import 'package:recook/widgets/custom_image_button.dart'; class AddVideoPage extends StatefulWidget { @@ -189,7 +194,21 @@ class _AddVideoPageState extends State { child: Text('确定'), ) : CustomImageButton( - onPressed: () {}, + onPressed: () { + ImagePicker() + .getVideo(source: ImageSource.gallery) + .then((file) { + if (file == null || + TextUtils.isEmpty(file.path)) { + showToast('没有选择文件'); + } else { + CRoute.pushReplace( + context, + CropVideoPage(file: File(file.path)), + ); + } + }); + }, child: Column( children: [ Container( diff --git a/lib/pages/live/live_stream/crop_video_page.dart b/lib/pages/live/live_stream/crop_video_page.dart new file mode 100644 index 0000000..ecdbf59 --- /dev/null +++ b/lib/pages/live/live_stream/crop_video_page.dart @@ -0,0 +1,49 @@ +import 'dart:io'; + +import 'package:flutter/material.dart'; +import 'package:recook/constants/constants.dart'; +import 'package:recook/widgets/custom_app_bar.dart'; +import 'package:recook/widgets/recook_back_button.dart'; + +class CropVideoPage extends StatefulWidget { + final File file; + CropVideoPage({Key key, @required this.file}) : super(key: key); + + @override + _CropVideoPageState createState() => _CropVideoPageState(); +} + +class _CropVideoPageState extends State { + @override + void initState() { + super.initState(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Color(0xFF232323), + appBar: CustomAppBar( + appBackground: Color(0xFF232323), + leading: RecookBackButton(white: true), + actions: [ + Center( + child: SizedBox( + width: rSize(72), + height: rSize(28), + child: MaterialButton( + child: Text('确定'), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(rSize(14)), + ), + onPressed: () {}, + color: Color(0xFFFA3B3E), + ), + ), + ), + SizedBox(width: rSize(15)), + ], + ), + ); + } +} diff --git a/lib/utils/custom_route.dart b/lib/utils/custom_route.dart index 0488e46..05c7b7c 100644 --- a/lib/utils/custom_route.dart +++ b/lib/utils/custom_route.dart @@ -16,6 +16,10 @@ class CRoute { await Navigator.push(context, _cPageRoute(context, page)); } + static Future pushReplace(BuildContext context, Widget page) async { + await Navigator.pushReplacement(context, _cPageRoute(context, page)); + } + ///路由到根 static popBottom(BuildContext context) { if (Navigator.canPop(context)) {