live_interruption_page.dart 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter_ijkplayer/flutter_ijkplayer.dart';
  3. import 'package:ijkplayer_example/i18n/i18n.dart';
  4. /// 直播异常中断
  5. class LiveInterruptionPage extends StatefulWidget {
  6. @override
  7. _LiveInterruptionPageState createState() => _LiveInterruptionPageState();
  8. }
  9. class _LiveInterruptionPageState extends State<LiveInterruptionPage> {
  10. TextEditingController editingController = TextEditingController();
  11. IjkMediaController mediaController = IjkMediaController();
  12. @override
  13. void initState() {
  14. super.initState();
  15. editingController.text =
  16. "http://js.flv.huya.com/huyalive/94525224-2460685313-10568562945082523648-2789274524-10057-A-0-1.flv?wsSecret=9b67d35535b6956aec37815c21e43cc8&wsTime=5cbbea84&ratio=2000";
  17. }
  18. @override
  19. void dispose() {
  20. editingController.dispose();
  21. mediaController.dispose();
  22. super.dispose();
  23. }
  24. @override
  25. Widget build(BuildContext context) {
  26. return Scaffold(
  27. appBar: AppBar(
  28. title: Text(currentI18n.networkButton),
  29. ),
  30. body: ListView(
  31. children: <Widget>[
  32. Row(
  33. children: <Widget>[
  34. Expanded(
  35. child: TextField(
  36. controller: editingController,
  37. ),
  38. ),
  39. FlatButton(
  40. child: Text(currentI18n.play),
  41. onPressed: _playInput,
  42. ),
  43. ],
  44. ),
  45. Container(
  46. height: 400,
  47. child: IjkPlayer(
  48. mediaController: mediaController,
  49. ),
  50. ),
  51. ],
  52. ),
  53. );
  54. }
  55. void _playInput() async {
  56. var text = editingController.text;
  57. await mediaController.setNetworkDataSource(text, autoPlay: true);
  58. }
  59. }