control_board.dart 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import 'package:fis_common/env/env.dart';
  2. import 'package:fis_measure/interfaces/process/player/play_controller.dart';
  3. import 'package:fis_vid/processors/index.dart';
  4. import 'package:flutter/material.dart';
  5. import 'package:get/get.dart';
  6. import '../controller.dart';
  7. import '../events.dart';
  8. part 'play_btn.dart';
  9. part 'prev_btn.dart';
  10. part 'next_btn.dart';
  11. part 'progress_bar.dart';
  12. part 'tone_bar.dart';
  13. class VidPlayerControlBoard extends StatelessWidget {
  14. const VidPlayerControlBoard(this.controller, {Key? key}) : super(key: key);
  15. final VidPlayerController controller;
  16. @override
  17. Widget build(BuildContext context) {
  18. return _SharedWidget(
  19. controller: controller,
  20. child: Container(
  21. padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 18),
  22. child: Column(
  23. mainAxisAlignment: MainAxisAlignment.center,
  24. children: [
  25. if (!FPlatform.isPureWeb) ...[
  26. _BrightnessToneBar(),
  27. _ContrastToneBar(),
  28. ],
  29. _buildPlayStatusBar(),
  30. ],
  31. ),
  32. ),
  33. );
  34. }
  35. Widget _buildPlayStatusBar() {
  36. return Center(
  37. child: Row(
  38. mainAxisSize: MainAxisSize.min,
  39. crossAxisAlignment: CrossAxisAlignment.center,
  40. children: [
  41. _PlayButton(),
  42. const SizedBox(width: 12),
  43. _PrevButton(),
  44. const SizedBox(width: 2),
  45. Expanded(child: _ProgressBar()),
  46. const SizedBox(width: 2),
  47. _NextButton(),
  48. ],
  49. ),
  50. );
  51. }
  52. }
  53. class _SharedWidget extends InheritedWidget {
  54. const _SharedWidget({
  55. required Widget child,
  56. required this.controller,
  57. }) : super(child: child);
  58. final VidPlayerController controller;
  59. static _SharedWidget? of(BuildContext context) {
  60. try {
  61. final data = context.dependOnInheritedWidgetOfExactType<_SharedWidget>();
  62. return data;
  63. } catch (e) {
  64. //
  65. }
  66. return null;
  67. }
  68. @override
  69. bool updateShouldNotify(covariant InheritedWidget oldWidget) => false;
  70. }