vid_player_mtest.dart 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import 'package:fis_measure/view/player/control_board/control_board.dart';
  2. import 'package:fis_measure/view/player/controller.dart';
  3. import 'package:fis_measure/view/player/player.dart';
  4. import 'package:flutter/material.dart';
  5. import 'package:fis_vid/data_host/data_host.dart';
  6. class VidPlayerMobilePage extends StatefulWidget {
  7. const VidPlayerMobilePage(this.url, {Key? key}) : super(key: key);
  8. final String url;
  9. @override
  10. State<StatefulWidget> createState() => _VidPlayerMobilePageState();
  11. }
  12. class _VidPlayerMobilePageState extends State<VidPlayerMobilePage> {
  13. late final _dataHost = VidDataHost(widget.url);
  14. late final _playerController = VidPlayerController(dataHost: _dataHost);
  15. @override
  16. Widget build(BuildContext context) {
  17. // _playerController.load().then((value) {
  18. // _playerController.play();
  19. // });
  20. return FutureBuilder(
  21. future: _playerController.load(),
  22. builder: (context, snapshot) {
  23. if (snapshot.connectionState == ConnectionState.done) {
  24. if (_playerController.canPlay) {
  25. _playerController.play();
  26. return buildPage(context);
  27. } else {
  28. return const Material(child: Center(child: Text("Load fila")));
  29. }
  30. } else {
  31. return const Material(
  32. child: Center(child: CircularProgressIndicator()));
  33. }
  34. },
  35. );
  36. }
  37. Widget buildPage(BuildContext context) {
  38. // const borderSide = BorderSide(color: Colors.grey);
  39. final size = MediaQuery.of(context).size;
  40. final w = size.width;
  41. final h = w / 16 * 9;
  42. return Scaffold(
  43. appBar: AppBar(),
  44. body: Center(
  45. child: Column(
  46. mainAxisSize: MainAxisSize.max,
  47. children: [
  48. VidPlayer(
  49. _playerController,
  50. width: w,
  51. height: h,
  52. ),
  53. SizedBox(
  54. height: 160,
  55. child: _playerController.totalFramesCount > 1
  56. ? VidPlayerControlBoard(_playerController)
  57. : Container(),
  58. ),
  59. ],
  60. ),
  61. ),
  62. );
  63. }
  64. @override
  65. void dispose() {
  66. _playerController.dispose();
  67. _dataHost.release();
  68. super.dispose();
  69. }
  70. }