vid_player_mtest.dart 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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(
  57. _playerController,
  58. )
  59. : Container(),
  60. ),
  61. ],
  62. ),
  63. ),
  64. );
  65. }
  66. @override
  67. void dispose() {
  68. _playerController.dispose();
  69. _dataHost.release();
  70. super.dispose();
  71. }
  72. }