jhomlala / betterplayer

Better video player for Flutter, with multiple configuration options. Solving typical use cases!
Apache License 2.0
917 stars 972 forks source link

Has this plugin been abandoned? #1183

Open riveraj33 opened 1 year ago

riveraj33 commented 1 year ago

This looks like the best option for my video needs but I see this hasn't been updated for 9 months. So I am wondering if this is abandoned or superseded by another? TYIA

srix55 commented 1 year ago

what a coincidence... I came across your inputs on reddit over a question on making instagram type swipable videos, and I see the same username here while going about better player... :)

I seem to be in the same dilemma that you went through a year ago. What's the best solution to having zero lag fast-swipable instagram type UX for videos? Do we have a stable solution now? I think this project has been sidelined by the authors... looking at the number of unattended pull requests here.

I have a couple of ideas based on the reddit thread you were in.

  1. Get the first frame of the video and show it till the player fully loads up. Then switch to playing the video.
  2. Have a stack widget with the bottom-most child being the current+5th item... all the items in the stack get their builds called. So, I inform the particular child to play when it's on top and others to hold.

I think I'll be going for a combination of 1 & 2. That is, have the current - 3 & current + 3 items as the Stack's children with current on top & instructed to play the video (through streams maybe). When the non-current items are built, they do everything except play the video.

In case the user is a fast swiper, the non-current items, while getting the video ready show the first frame of the video as a pic. And the stack is recycled like a queue loading up new to-be-cached videos. I'll see how it'll work with 20-30 videos swiped fast. media_kit looks promising as of now. Going to test it out in a few days.

cspecter commented 1 year ago

I would also like to know if this package has been abandoned. It's been the best for our use so far, same as @srix55, creating a modern feed of videos. We implemented their controller list example and it's working relatively well, but you can't pre-cache an HLS stream, so there is always a slight pause before the video starts playing. The iOS code in this package is very, very old. It's using a cacheing strategy before Apple implemented AVAggregateAssetDownloadTask. Curious what other people are using to play a list of HLS streams.