64 lines
1.6 KiB
Dart
64 lines
1.6 KiB
Dart
|
import 'package:flutter/material.dart';
|
||
|
import 'package:photo_view/photo_view.dart';
|
||
|
import 'package:qhd_prevention/customWidget/video_player_widget.dart';
|
||
|
import 'package:qhd_prevention/pages/my_appbar.dart';
|
||
|
import 'package:video_player/video_player.dart';
|
||
|
// 查看视频
|
||
|
class BigVideoViewer extends StatefulWidget {
|
||
|
const BigVideoViewer({Key? key, required this.videoUrl}) : super(key: key);
|
||
|
|
||
|
final String videoUrl;
|
||
|
|
||
|
@override
|
||
|
State<BigVideoViewer> createState() => _BigVideoViewerState();
|
||
|
}
|
||
|
|
||
|
class _BigVideoViewerState extends State<BigVideoViewer> {
|
||
|
|
||
|
VideoPlayerController? _videoController;
|
||
|
|
||
|
@override
|
||
|
void initState() {
|
||
|
// TODO: implement initState
|
||
|
super.initState();
|
||
|
|
||
|
_videoController?.removeListener(_controllerListener);
|
||
|
_videoController?.dispose();
|
||
|
_videoController = VideoPlayerController.networkUrl(Uri.parse(widget.videoUrl))
|
||
|
..initialize().then((_) {
|
||
|
_videoController!
|
||
|
..play()
|
||
|
..addListener(_controllerListener);
|
||
|
});
|
||
|
}
|
||
|
|
||
|
void _controllerListener() {
|
||
|
if (mounted) setState(() {});
|
||
|
}
|
||
|
|
||
|
@override
|
||
|
void dispose() {
|
||
|
_videoController?.dispose();
|
||
|
super.dispose();
|
||
|
}
|
||
|
|
||
|
@override
|
||
|
Widget build(BuildContext context) {
|
||
|
|
||
|
return Scaffold(
|
||
|
backgroundColor: Colors.black,
|
||
|
appBar: MyAppbar(
|
||
|
backgroundColor: Colors.transparent, title: '',
|
||
|
),
|
||
|
body: Center(
|
||
|
child: VideoPlayerWidget(
|
||
|
allowSeek: false,
|
||
|
controller: _videoController,
|
||
|
coverUrl:"",
|
||
|
aspectRatio: _videoController?.value.aspectRatio ?? 16/9,
|
||
|
),
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
}
|