dialog_video_page.dart 1.3 KB

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