Chewie颤动视频播放器
Posted
技术标签:
【中文标题】Chewie颤动视频播放器【英文标题】:Chewie flutter video Player 【发布时间】:2020-12-08 08:25:42 【问题描述】:我正在使用带有自定义控制栏的咀嚼播放器,当播放器切换到全屏时,我看不到控件..即使播放器进入全屏,我也需要显示控件。我没有使用chewie提供的控件,因为我不希望进度条是可触摸的,即我不希望用户倒带视频....
下面是代码:-
@override
void initState()
super.initState();
_videoPlayerController1 = VideoPlayerController.network(widget.videoURL);
_chewieController = ChewieController(
videoPlayerController: _videoPlayerController1,
// aspectRatio: 3 / 2,
autoPlay: false,
looping: false,
autoInitialize: true,
showControls: true,
fullScreenByDefault: false,
//seekTo:value,
startAt: Duration(milliseconds: widget.time),
//customControls: customControl(),
placeholder: Container(
color: Colors.black87,
child: Container(
child: Center(
child: CircularProgressIndicator(
valueColor:
new AlwaysStoppedAnimation<Color>(Colors.deepPurpleAccent),
)),
),
),
// overlay:
// autoInitialize: true,
);
setState(()
_loading = true;
);
@override
Widget build(BuildContext context)
return WillPopScope(
onWillPop: _onWillPop,
child: SafeArea(
child: MaterialApp(
home: Scaffold(
backgroundColor: Colors.black,
body: Column(
children: <Widget>[
Expanded(
child: Center(
child: GestureDetector(
onDoubleTap: ()
_chewieController.enterFullScreen();
,
onTap: ()
if (_videoPlayerController1.value.isPlaying)
setState(()
_chewieController.pause();
isPlaying = false;
);
else
setState(()
_chewieController.play();
isPlaying = true;
);
,
child: Chewie(
controller: _chewieController,
),
),
),
),
Row(
children: [
FlatButton(
onPressed: ()
if (_videoPlayerController1.value.isPlaying)
setState(()
_chewieController.pause();
isPlaying = false;
);
else
setState(()
_chewieController.play();
isPlaying = true;
);
,
child: Icon(
!_videoPlayerController1.value.isPlaying
? Icons.play_arrow
: Icons.pause,
color: Colors.white,
size: 30,
),
),
ValueListenableBuilder(
valueListenable: _videoPlayerController1,
builder: (context, VideoPlayerValue value, child)
//Do Something with the value.
if (value.initialized && value.isPlaying)
return new LinearPercentIndicator(
width: MediaQuery.of(context).size.width - 180,
lineHeight: 8.0,
percent: (value.position.inSeconds.toDouble() /
value.duration.inSeconds.toDouble()),
linearStrokeCap: LinearStrokeCap.roundAll,
backgroundColor: Colors.grey,
progressColor: Colors.amber,
);
else
return new LinearPercentIndicator(
width: MediaQuery.of(context).size.width - 180,
lineHeight: 8.0,
percent: 0.0,
linearStrokeCap: LinearStrokeCap.roundAll,
backgroundColor: Colors.grey,
progressColor: Colors.amber,
);
,
//child:
),
FlatButton(
onPressed: ()
_chewieController.enterFullScreen();
setState(()
isFullscreen = true;
);
,
child: Icon(
Icons.fullscreen,
color: Colors.white,
size: 30,
),
),
//
],
),
],
),
),
),
),
);
【问题讨论】:
大家好 - 我们如何更改视频中心播放按钮的背景颜色(Chewie)? 【参考方案1】:你可以控制颜色按钮
materialProgressColors:ChewieProgressColors(backgroundColor: Colors.red,bufferedColor: Colors.red,
handleColor: Colors.blue,playedColor: Colors.orange),
添加到您的控制器
【讨论】:
以上是关于Chewie颤动视频播放器的主要内容,如果未能解决你的问题,请参考以下文章
在flutter webview中播放视频时,有没有办法打开像MX播放器这样的外部视频播放器? [关闭]