main.dart 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. import 'package:chewie/chewie.dart';
  2. import 'package:flutter/cupertino.dart';
  3. import 'package:flutter/material.dart';
  4. import 'package:video_player/video_player.dart';
  5. void main() {
  6. runApp(
  7. MaterialApp(
  8. home: ChewieDemo(),
  9. )
  10. );
  11. }
  12. class ChewieDemo extends StatefulWidget {
  13. ChewieDemo({this.title = 'Chewie Demo'});
  14. final String title;
  15. @override
  16. State<StatefulWidget> createState() {
  17. return _ChewieDemoState();
  18. }
  19. }
  20. class _ChewieDemoState extends State<ChewieDemo> {
  21. TargetPlatform _platform;
  22. VideoPlayerController _videoPlayerController1;
  23. VideoPlayerController _videoPlayerController2;
  24. ChewieController _chewieController;
  25. double aspectRatio=1;
  26. @override
  27. void initState() {
  28. super.initState();
  29. _videoPlayerController1 = VideoPlayerController.network(
  30. 'http://mirror.aarnet.edu.au/pub/TED-talks/911Mothers_2010W-480p.mp4')
  31. ..initialize().then((_){
  32. _chewieController = ChewieController(
  33. videoPlayerController: _videoPlayerController1,
  34. allowedScreenSleep: false,
  35. aspectRatio: _videoPlayerController1.value.aspectRatio,
  36. autoPlay: true,
  37. looping: true,
  38. customControls: I2MaterialControls(),
  39. );
  40. setState(() {
  41. });
  42. });
  43. _videoPlayerController2 = VideoPlayerController.network(
  44. 'https://v-cdn.zjol.com.cn/276985.mp4')
  45. ..initialize().then((_){
  46. setState(() {
  47. });
  48. });
  49. }
  50. @override
  51. void dispose() {
  52. _videoPlayerController1.dispose();
  53. _videoPlayerController2.dispose();
  54. _chewieController.dispose();
  55. super.dispose();
  56. }
  57. @override
  58. Widget build(BuildContext context) {
  59. return MaterialApp(
  60. title: widget.title,
  61. theme: ThemeData.light().copyWith(
  62. platform: _platform ?? Theme.of(context).platform,
  63. ),
  64. home: Scaffold(
  65. // appBar: AppBar(
  66. // title: Text(widget.title),
  67. // ),
  68. body: Column(
  69. children: <Widget>[
  70. Stack(
  71. children: <Widget>[
  72. Container(
  73. // constraints: BoxConstraints(maxHeight: 200),
  74. child: _chewieController == null ? Container() : Chewie(
  75. controller: _chewieController,
  76. ),
  77. color: Colors.black,
  78. ),
  79. ],
  80. )
  81. ],
  82. ),
  83. ),
  84. );
  85. }
  86. }