podverse / podverse-web

Podverse web app written with React and Next.js
https://podverse.fm/about
GNU Affero General Public License v3.0
83 stars 30 forks source link

Allow setting custom playback speeds to two decimal points #943

Open vkeerthivikram opened 2 years ago

vkeerthivikram commented 2 years ago

More incremental speed upgrades. Instead of restricting me to certain speeds, such as 1.12x or 1.25x, allow me to choose any speed, such as 1.19x or 1.33x. On both the web and mobile versions.

mitchdowney commented 1 year ago

This is a good feature request, but I have too much work on my plate right now, so I'm going to unassign myself for now.

1t1e1 commented 1 year ago

I can take this one. My thought is that the YouTube playback speed menu will resolve this.

When user clicks the "1x" button, a dropdown menu will open to reveal speed options as well as a custom speed button. These options include 0.5x, 0.75x, 1x, 1.25x, 1.5x, 1.75x, and 2x. Upon clicking custom speed, a menu will appear allowing the user to select a speed between 0.5x and 3x, incrementing in 0.05x intervals by using the slider.

How does that sound?

mitchdowney commented 1 year ago

@1t1e1 sounds good! If you go this route, I would just recommend using our existing Dropdown.tsx component, except configure it to pop upwards.

image

As for the menu that will appear for setting a custom speed, I think ideally it would follow the pattern of our existing Modal components, but if that's overkill, I think a simple window.prompt input would be ok here. I think we'll need some validation though to make sure the user doesn't pass an invalid number (must be N > 0) through whichever input is used, as it might cause problems if an invalid float gets passed to the player.

Thanks again for your help! :) Please reach out with questions anytime.

1t1e1 commented 1 year ago

I have looked at other apps and these are the screenshots I wish to implement.

Screenshot 2023-01-15 at 01 05 29

Let's Code

mitchdowney commented 1 year ago

@1t1e1 that would be awesome :)