dialog_video_page.dart 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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. title: Text("在dialog中显示ijkplayer"),
  19. ),
  20. body: Center(
  21. child: Column(
  22. children: <Widget>[
  23. FlatButton(
  24. child: Text("显示dialog"),
  25. onPressed: showIJKDialog,
  26. ),
  27. ],
  28. ),
  29. ),
  30. );
  31. }
  32. void showIJKDialog() async {
  33. await controller.setDataSource(
  34. DataSource.network(
  35. "http://img.ksbbs.com/asset/Mon_1703/05cacb4e02f9d9e.mp4"),
  36. );
  37. await controller.play();
  38. await showDialog(
  39. context: context,
  40. builder: (_) => _buildIJKPlayer(),
  41. );
  42. controller.pause();
  43. }
  44. _buildIJKPlayer() {
  45. return IjkPlayer(
  46. mediaController: controller,
  47. );
  48. }
  49. }