crash_on_set_src_page.dart 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter_ijkplayer/flutter_ijkplayer.dart';
  3. class CrashOnSetSrcPage extends StatefulWidget {
  4. @override
  5. _CrashOnSetSrcPageState createState() => _CrashOnSetSrcPageState();
  6. }
  7. class _CrashOnSetSrcPageState extends State<CrashOnSetSrcPage> {
  8. IjkMediaController controller;
  9. List<String> networkList = [
  10. "http://playertest.longtailvideo.com/adaptive/bipbop/gear4/prog_index.m3u8",
  11. "http://img.ksbbs.com/asset/Mon_1703/05cacb4e02f9d9e.mp4",
  12. "https://media001.geekbang.org/f433fd1ce5e84d27b1101f0dad72a126/de563bb4aba94b5f95f448b33be4dd9f-9aede6861be944d696fe365f3a33b7b4-sd.m3u8",
  13. ];
  14. int currentIndex = 0;
  15. @override
  16. void initState() {
  17. super.initState();
  18. controller = IjkMediaController();
  19. }
  20. @override
  21. void dispose() {
  22. controller.dispose();
  23. super.dispose();
  24. }
  25. @override
  26. Widget build(BuildContext context) {
  27. return Scaffold(
  28. appBar: AppBar(
  29. title: Text("切换数据崩溃"),
  30. ),
  31. body: ListView(
  32. children: <Widget>[
  33. AspectRatio(
  34. aspectRatio: 1,
  35. child: IjkPlayer(
  36. mediaController: controller,
  37. ),
  38. ),
  39. ],
  40. ),
  41. floatingActionButton: FloatingActionButton(
  42. onPressed: () {
  43. final url = networkList[currentIndex];
  44. controller.setDataSource(DataSource.network(url), autoPlay: true);
  45. currentIndex++;
  46. currentIndex %= networkList.length;
  47. },
  48. ),
  49. );
  50. }
  51. }