4

我正在使用带有自定义控制栏的咀嚼播放器,当播放器切换到全屏时,我看不到控件..即使播放器进入全屏,我也需要显示控件。我没有使用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,
                      ),
                    ),
//
                  ],
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
4

1 回答 1

0

你可以控制颜色按钮

  materialProgressColors:ChewieProgressColors(backgroundColor: Colors.red,bufferedColor: Colors.red,

handleColor: Colors.blue,playedColor: Colors.orange),

添加到您的控制器

于 2021-08-26T12:15:29.017 回答