dialog_video_page.dart 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter_ijkplayer/flutter_ijkplayer.dart';
  3. import 'package:ijkplayer_example/i18n/i18n.dart';
  4. class DialogVideoPage extends StatefulWidget {
  5. @override
  6. _DialogVideoPageState createState() => _DialogVideoPageState();
  7. }
  8. class _DialogVideoPageState extends State<DialogVideoPage> {
  9. IjkMediaController controller = IjkMediaController();
  10. @override
  11. void dispose() {
  12. controller?.dispose();
  13. super.dispose();
  14. }
  15. @override
  16. Widget build(BuildContext context) {
  17. return Scaffold(
  18. appBar: AppBar(
  19. title: Text(currentI18n.withDialogButton),
  20. ),
  21. body: Center(
  22. child: Column(
  23. children: <Widget>[
  24. FlatButton(
  25. child: Text(currentI18n.showDialog),
  26. onPressed: showIJKDialog,
  27. ),
  28. ],
  29. ),
  30. ),
  31. );
  32. }
  33. void showIJKDialog() async {
  34. await controller.setDataSource(
  35. DataSource.network(
  36. "http://img.ksbbs.com/asset/Mon_1703/05cacb4e02f9d9e.mp4"),
  37. );
  38. await controller.play();
  39. await showDialog(
  40. context: context,
  41. builder: (_) => _buildIJKPlayer(),
  42. );
  43. controller.pause();
  44. }
  45. _buildIJKPlayer() {
  46. return IjkPlayer(
  47. mediaController: controller,
  48. );
  49. }
  50. }