speed_page.dart 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter_ijkplayer/flutter_ijkplayer.dart';
  3. import 'package:ijkplayer_example/i18n/i18n.dart';
  4. class SpeedPage extends StatefulWidget {
  5. @override
  6. _SpeedPageState createState() => _SpeedPageState();
  7. }
  8. class _SpeedPageState extends State<SpeedPage> {
  9. IjkMediaController controller = IjkMediaController();
  10. double speed = 1;
  11. @override
  12. void initState() {
  13. super.initState();
  14. var url = "http://img.ksbbs.com/asset/Mon_1703/05cacb4e02f9d9e.mp4";
  15. var dataSource = DataSource.network(url);
  16. controller?.setDataSource(dataSource, autoPlay: true);
  17. }
  18. @override
  19. void dispose() {
  20. controller.dispose();
  21. controller = null;
  22. super.dispose();
  23. }
  24. @override
  25. Widget build(BuildContext context) {
  26. return Scaffold(
  27. appBar: AppBar(
  28. title: Text(currentI18n.setSpeed),
  29. ),
  30. body: Container(
  31. child: ListView(
  32. children: <Widget>[
  33. Container(
  34. height: 280,
  35. child: IjkPlayer(
  36. mediaController: controller,
  37. ),
  38. ),
  39. Slider(
  40. value: speed,
  41. max: 2,
  42. min: 0.5,
  43. divisions: 6,
  44. onChanged: _onChangeSpeed,
  45. ),
  46. Center(child: Text("speed is $speed")),
  47. ],
  48. ),
  49. ),
  50. );
  51. }
  52. void _onChangeSpeed(double value) {
  53. this.speed = value;
  54. setState(() {});
  55. controller?.setSpeed(speed);
  56. }
  57. }