custom_ijk_opt_page.dart 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter_ijkplayer/flutter_ijkplayer.dart';
  3. import 'package:ijkplayer_example/i18n/i18n.dart';
  4. class CustomIjkOptionPage extends StatefulWidget {
  5. @override
  6. _CustomIjkOptionPageState createState() => _CustomIjkOptionPageState();
  7. }
  8. class _CustomIjkOptionPageState extends State<CustomIjkOptionPage> {
  9. IjkMediaController controller = IjkMediaController();
  10. @override
  11. void initState() {
  12. super.initState();
  13. initIjkController();
  14. }
  15. @override
  16. void dispose() {
  17. controller?.dispose();
  18. super.dispose();
  19. }
  20. @override
  21. Widget build(BuildContext context) {
  22. return Scaffold(
  23. appBar: AppBar(
  24. title: Text(currentI18n.customOption),
  25. ),
  26. body: ListView(
  27. children: <Widget>[
  28. AspectRatio(
  29. aspectRatio: 1280 / 720,
  30. child: IjkPlayer(
  31. mediaController: controller,
  32. ),
  33. ),
  34. ],
  35. ),
  36. );
  37. }
  38. void initIjkController() async {
  39. var option1 = IjkOption(IjkOptionCategory.format, "fflags", "fastseek");
  40. controller.setIjkPlayerOptions(
  41. TargetPlatform.iOS,
  42. [option1],
  43. );
  44. controller.setIjkPlayerOptions(
  45. TargetPlatform.android,
  46. [option1],
  47. );
  48. await controller.setDataSource(
  49. DataSource.network(
  50. "http://img.ksbbs.com/asset/Mon_1703/05cacb4e02f9d9e.mp4"),
  51. autoPlay: true,
  52. );
  53. }
  54. }