Comments (5)
You can basically ignore the temporary one in any discussion. From an average user's perspective (who didn't open any settings screen), there is just one playback speed, and making a difference between player screen and settings screen would be confusing, in my opinion. To users, that would feel like the speed does not "stick".
The only reason for the temporary one is that if you have a per-feed one set and change the speed on the player screen, pressing pause and play again in the same episode should remember what you changed. That is not something users need to think about manually changing.
from antennapod.
This issue has been mentioned on AntennaPod Forum. There might be relevant details there:
https://forum.antennapod.org/t/global-playback-speed-not-reliable/3992/5
from antennapod.
Should the Playback speed dialog always update the global setting, or is this dialog not intended to change this setting at all but it should only configure the speed list in "prefPlaybackSpeedArray"?
I think the idea is that the dialog, whether called from the Settings screen or the full Player screen, always changes the setting for current playback and adjusts the preference. (Although one could also argue that when playback is ongoing of an episode whose feed has a custom/podcast-specific playback speed, it should not adjust the global standard. Regardless problem 2, which I would consider a bug indeed.)
I suggest to
changePlaybackService.setSpeed(float speed)
to only forward the new speed to mediaPlayer and
changeVariableSpeedDialog.onCreateView()
to configure the global playback speed in preferences.xml via the app settings dialog.
What does this imply in terms of UX? Global speed is only adjusted when the dialog is opened from the Settings?
I think that adjusting the playback speed when opening the dialog from the Player screen should also adjust the global playback speed - possibly with an exception for episodes with a custom playback speed as indicated above. Reasoning:
- Talking speed is often consistent between podcasts and between episodes within a podcast.
- If the talking speed of one podcast deviates from the average, or is in a less well understood language, it can get a podcast-specific speed setting.
- The talking speed of a single episode is unlikely to deviate from the average of its podcast. So it is unlikely that one would need to adjust the playback speed just for 1 episode currently being listened. Therefore, not adjusting the global default when working from the Player screen (and only affecting currently playing episode) would make little sense.
- counter-argument: Playback speed may be context-specific; you might want to make things slower while driving in the car without adjusting the global preference.
- at the same time: Not adjusting the global default would mean that your next episode would 'jump back' to the global default, which is somewhat unexpected also (I expect circumstances to last beyond the length of 1 episode).
- conclusion: I think frequently updating the global default (also from Player screen) is better than hardly ever doing this (only from Settings screen).
- at the same time: Not adjusting the global default would mean that your next episode would 'jump back' to the global default, which is somewhat unexpected also (I expect circumstances to last beyond the length of 1 episode).
- counter-argument: Playback speed may be context-specific; you might want to make things slower while driving in the car without adjusting the global preference.
from antennapod.
To add more details: From data model perspective, there are the following playback speed settings:
- The global playback speed, separated for audio and for video.
- Per-feed playback speed. If not set, use the global playback speed.
- Temporary playback speed for the currently playing media. If not set, use the per-feed playback speed.
This speed settings hierarchy makes AntennaPod very flexible. From my perspective, it's just the UI/UX that isn't intuitive at the moment (and some bugs in the implementation).
I think the following UX would be quite intuitive:
- The global playback speed is only adjusted when the dialog is opened from the settings menu.
- Per-feed playback speed is configured only from the feed settings dialog, as today.
- Temporary playback speed is only adjusted when the dialog is opened from the player screen. No need to also modify the global speed.
from antennapod.
Ok, thank you @damoasda. I think that makes sense (even though my impression is that in the past, global playback speed was adjusted from the player screen, meaning there was no temporary speed).
Just one additional question: how long do you foresee the temporary playback speed to last?
Also, if paused, should the temporary speed be set for whatever is paused or (also) playing next? (See #6920)
from antennapod.
Related Issues (20)
- Release apk files alongside zipped binaries in releases HOT 2
- there ware something wrong with varible defaultHandler in CrashReportWriter.java HOT 2
- Default Sorting Order
- Multiple synchronization destinations - syncing to more than one server.
- Re-downloading a downloaded episode using multi-select
- Media3: Migrate to the new track selection methods
- Invalid type on podcast that worked already before | https://drawntotheflame.podbean.com/ HOT 4
- Pinned Podcasts
- Show excerpt of description in episode list HOT 4
- Android custom schema for episode opening HOT 3
- Option to download audio instead of video from RSS feeds
- Podcasts that are close to being finished get marked complete HOT 2
- Please start making GitHub APK releases for uses with Obtainium HOT 1
- AntennaPod crash on Graphene OS due to native code debugging. HOT 26
- Swipe distance is too long HOT 7
- Can't play a podcast HOT 9
- Make the difference between played and unplayed episodes more visible HOT 1
- Further delay the displaying of the review popup HOT 2
- Queue list view timestamps not adjusted for playback speed HOT 1
- Allow customization of button on downloaded podcast HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from antennapod.