chewie icon indicating copy to clipboard operation
chewie copied to clipboard

Buffering Progress Indicator Needs to Disappear Sooner for Streaming Content

Open djsjr opened this issue 4 years ago • 3 comments

Streaming HLS video. The video becomes playable, but the Buffering Progress Indicator (spinning blue circle) only disappears after the video has stopped buffering. (It buffers up to 2 min ahead of current position). I can play the video well before that occurs. I end up with a blue circle spinning while watching the video.

Any way to change the Progress Indicator to appear ONLY while buffering the current video segment?

djsjr avatar Nov 12 '21 03:11 djsjr

I am having the same problem. While playing live broadcast in m3u8 type, circularprogress is constantly appearing on the video. Is there a setting for this @diegotori

burhanaksendir avatar May 15 '22 08:05 burhanaksendir

@burhanaksendir What I have done recently is create my own custom controls based on the CupertinoControls class, and I have removed the circular progress indicator from the build method.

You could do this for both Material and Cupertino, and then show whichever custom controls based on the user's device. This workaround isn't perfect, since it gets rid of the buffering indicator altogether but it's a better user experience in the interim.

Replace this in CupertinoControls:

    return MouseRegion(
      onHover: (_) => _cancelAndRestartTimer(),
      child: GestureDetector(
        onTap: () => _cancelAndRestartTimer(),
        child: AbsorbPointer(
          absorbing: notifier.hideStuff,
          child: Stack(
            children: [
              if (_latestValue.isBuffering)
                const Center(
                  child: CircularProgressIndicator(),
                )
              else
                _buildHitArea(),

With this:

    return MouseRegion(
      onHover: (_) => _cancelAndRestartTimer(),
      child: GestureDetector(
        onTap: () => _cancelAndRestartTimer(),
        child: AbsorbPointer(
          absorbing: notifier.hideStuff,
          child: Stack(
            children: [
                _buildHitArea(),

djsjr avatar Jul 20 '22 20:07 djsjr

@burhanaksendir and @djsjr, ChewieController now supports a progressIndicatorDelay that you can set so that it doesn't display the progress indicator immediately. You can add maybe a delay of 500ms or more, give or take, so that if it's still buffering after that time, then it will display the indicator. Obviously you'll need to determine the appropriate value for your use case. Please let me know if this ends up solving the issue altogether.

diegotori avatar Jul 21 '22 16:07 diegotori

Any solution? I have the same issue :C

Cdominguez08 avatar Nov 01 '22 18:11 Cdominguez08

This issue is only in ios .

harryandroiddev avatar Nov 21 '22 09:11 harryandroiddev

the same here, iOS only

http600 avatar Dec 06 '22 05:12 http600

The issue still occurs. In my case the progress indicator is shown after video has finished playing in iOS. Any updates?

rahulrmishra avatar Feb 27 '23 16:02 rahulrmishra

The same issue for streaming m3u8 video for iOS. Need fix for this

MrTilaris avatar Mar 10 '23 10:03 MrTilaris