custom_ijk_opt_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 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, TargetPlatform.android],
  42. [option1].toSet(),
  43. );
  44. await controller.setDataSource(
  45. DataSource.network(
  46. "http://img.ksbbs.com/asset/Mon_1703/05cacb4e02f9d9e.mp4"),
  47. autoPlay: true,
  48. );
  49. }
  50. }