From c38bfd7224f29cad69e36386e4e20a602101e67f Mon Sep 17 00:00:00 2001 From: WinUser01 Date: Wed, 9 Nov 2022 23:28:47 +0800 Subject: [PATCH] =?UTF-8?q?hyzp=5Fybqx-Commit178=EF=BC=9A=E4=BC=98?= =?UTF-8?q?=E5=8C=96=EF=BC=8C=E5=B7=B2=E7=BB=8F=E5=AE=9E=E7=8E=B0=E8=BF=9D?= =?UTF-8?q?=E7=AB=A0=E8=A7=86=E9=A2=91=E7=9A=84=E5=BE=AA=E7=8E=AF=E6=92=AD?= =?UTF-8?q?=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/components/dioFun.dart | 1 + lib/widget/my_superplayer.dart | 26 ++++++++++++++------------ 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/lib/components/dioFun.dart b/lib/components/dioFun.dart index fbc551f..45f3eb5 100644 --- a/lib/components/dioFun.dart +++ b/lib/components/dioFun.dart @@ -2078,6 +2078,7 @@ Future playUrl({@required int index, String url, BuildContext context}) { id: index + 1, dwip: listDwinfoGetList2[index]['dwip'], url: urlnew, + urlType: 'rtmp', title: '点位视频\n${(index + 1)}、${listDwinfoGetList2[index]['dwmc']}', ))); diff --git a/lib/widget/my_superplayer.dart b/lib/widget/my_superplayer.dart index c04d545..d91f69c 100644 --- a/lib/widget/my_superplayer.dart +++ b/lib/widget/my_superplayer.dart @@ -22,17 +22,19 @@ const _kControlViewTypes = [kControlViewTypeDefault, kControlViewTypeWithout]; class SuperPlayerPage extends StatefulWidget { SuperPlayerPage( {@required this.url, + this.urlType = 'mp4', // 视频类型:mp4,rtmp this.id = -2, // 播放点位视频的点位编号,-2 表示播放违章视频 this.dwip = '', // 点位IP,用于点位视频控制球机方向 this.loop = 1, this.title = 'Tencent Player', Key key}) : super(key: key); - String dwip; String url; - String title; - int loop; //设置播放循环,默认播放器的循环次数是1, 即不循环播放。如果设置循环次数0,表示无限循环。 + String urlType; int id; + String dwip; + int loop; //设置播放循环,默认播放器的循环次数是1, 即不循环播放。如果设置循环次数0,表示无限循环。 + String title; @override _SuperPlayerPageState createState() => _SuperPlayerPageState(); @@ -79,13 +81,13 @@ class _SuperPlayerPageState extends State with SuperPlayerListe print('mounted = ${mounted}'); await _playerController.setLoop(widget.loop); // 0无限循环,1循环一次,2循环两次,以此类推 - if (widget.loop == 0) { - await _playerController.setOption(FijkOption.playerCategory, "mediacodec-all-videos", 1); - await _playerController.setOption(FijkOption.hostCategory, "enable-snapshot", 1); - await _playerController.setOption(FijkOption.hostCategory, "request-screen-on", 1); - await _playerController.setOption(FijkOption.hostCategory, "request-audio-focus", 1); - await _playerController.setOption(FijkOption.hostCategory, "enable-accurate-seek", 1); - } else { + await _playerController.setOption(FijkOption.playerCategory, "mediacodec-all-videos", 1); + await _playerController.setOption(FijkOption.hostCategory, "enable-snapshot", 1); + await _playerController.setOption(FijkOption.hostCategory, "request-screen-on", 1); + await _playerController.setOption(FijkOption.hostCategory, "request-audio-focus", 1); + await _playerController.setOption(FijkOption.hostCategory, "enable-accurate-seek", 1); + // 播放“rmtp”等网络视频设置 + if (widget.urlType != 'mp4') { /// fijkplayer播放点位视频延迟比较大优化-OK,改完后约1秒钟就能打开 - Being // 是否开启预缓冲,一般直播项目会开启,达到秒开的效果,不过带来了播放丢帧卡顿的体验 await _playerController.setOption(FijkOption.playerCategory, "packet-buffering", 0); @@ -102,8 +104,8 @@ class _SuperPlayerPageState extends State with SuperPlayerListe /// fijkplayer播放点位视频延迟比较大优化-OK,改完后半秒钟就能打开 - End - await _playerController.setOption(FijkOption.hostCategory, "request-screen-on", 1); - await _playerController.setOption(FijkOption.hostCategory, "request-audio-focus", 1); + // await _playerController.setOption(FijkOption.hostCategory, "request-screen-on", 1); + // await _playerController.setOption(FijkOption.hostCategory, "request-audio-focus", 1); } await _playerController.setDataSource(widget.url, autoPlay: true).catchError((e) {