mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-05-30 23:40:40 +02:00
[Enhancement]: seekForward/Backward instead of next/previousTrack option #1102
Closed
opened 2026-04-24 23:32:27 +02:00 by adam
·
14 comments
No Branch/Tag Specified
master
book_tags_genres_dedupe
episode_download_fallback
Issue-4540-SortBy-StartedDate-and-FinishedDate
episode_meta_tagging
fix_authorize_race_condition
redirect_transcode_requests
progress_updated_sort
fix_ereader_socket_event
fix_change_empty_root_password
fix_podcast_session_track_index
fix_set_token
session_modal_user
localize_durations
fix_oidc_create_user
jwt_auth_refactor
fix_scanner_deleting_single_file_books
fix_mediaprogress_updatedat_2
experimental_next_client
podcast_episode_duration
episode-timestamps-clickable
book_author_secondary_sort_title
podcast_useragents
pathexists_user_access
fix_pathexists_join
book_author_secondary_sort
clean_duplicate_mediaprogress
sanitize_html_description
trix_prevent_attachments
check_path_api_fix
fix_mediaprogress_updatedat
increase_express_json_limit
fix_dockerfile_nunicode
search_episodes
audiobook_tools_update
episode_secondary_sorts
hls_stream_url_update
new_session_track_endpoint
audiobook_tools_enhancements
watcher_rescans_update
player_track_tooltip
fix_exclude_prefixes_crash
socket_item_events
fix_podcast_episode_scanner_promise
new_stats_controller
count_cache_for_userpermissions
parsing-opf-v3
validate_migration_files
fix-quick-match-all-crash
fix-chapter-end-sleep-timer
stringify_sequelize_query
remove-col-ambiguity
fix_next_prev_edit_description
details_trim_whitespace
fix_content_url_basepath
fix_logger_fatal
progress_bar_visibility
batch-edit-populate-map-details
feed_generator_updates
bookmark-modal-updates
migrate-library-item-in-scanner
migrate-new-library-items
migrate-podcasts-new-library-item-2
migrate-podcasts-new-library-item
fix-remove-episode-from-playlist
playback-session-use-new-library-item
refactor-library-item
fix-heatmap-caption
feed-episodes-upsert
share-media-player-media-session-api
remove-old-playlist
remove_old_collection_object
plugin-implementation-demo
feed_migration
refactor-feeds-from-item
fix_remove_authors_no_books
v2.17.3-fk-constraints-migration
migrations-first-upgrade
sqlite_2
feature/nuxt-target-server
waveform
sqlite
playlists
video
v2.35.1
v2.35.0
v2.34.0
v2.33.2
v2.33.1
v2.33.0
v2.32.1
v2.32.0
v2.31.0
v2.30.0
v2.29.0
v2.28.0
v2.27.0
v2.26.3
v2.26.2
v2.26.1
v2.26.0
v2.25.1
v2.25.0
v2.24.0
v2.23.0
v2.22.0
v2.21.0
v2.20.0
v2.19.5
v2.19.4
v2.19.3
v2.19.2
v2.19.1
v2.19.0
v2.18.1
v2.18.0
v2.17.7
v2.17.6
v2.17.5
v2.17.4
v2.17.3
v2.17.2
v2.17.1
v2.17.0
v2.16.2
v2.16.1
v2.16.0
v2.15.1
v2.15.0
v2.14.0
v2.13.4
v2.13.3
v2.13.2
v2.13.1
v2.13.0
v2.12.3
v2.12.2
v2.12.1
v2.12.0
v2.11.0
v2.10.1
v2.10.0
v2.9.0
v2.8.1
v2.8.0
v2.7.2
v2.7.1
v2.7.0
v2.6.0
v2.5.0
v2.4.4
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.5
v2.3.4
v2.3.3
v2.3.2
v2.3.1
v2.3.0
v2.2.23
v2.2.22
v2.2.21
v2.2.20
v2.2.19
v2.2.18
v2.2.17
v2.2.16
v2.2.15
v2.2.14
v2.2.13
v2.2.12
v2.2.11
v2.2.10
v2.2.9
v2.2.8
v2.2.7
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.5
v2.1.4
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.24
v2.0.23
v2.0.22
v2.0.21
v2.0.20
v2.0.19
v2.0.18
v2.0.17
v2.0.16
v2.0.15
v2.0.14
v2.0.13
v2.0.12
v2.0.11
v2.0.10
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v1.7.2
v1.7.1
v1.7.0
v1.6.0
v1.5.5
v1.5.0
v1.4.11
v1.4.9
v1.4.7
v1.4.6
v1.4.4
v1.4.2
v1.4.0
v1.4.1
v1.3.4
v1.3.3
v1.3.1
v1.2.8
v1.2.6
v1.2.5
v1.2.4
v1.2.1
v1.1.15
v1.1.14
v1.1.13
v1.1.12
v1.1.11
v1.1.10
v1.1.9
v1.1.8
v1.0.0
0.9.61-beta.0
0.9.61-beta
Labels
Clear labels
authentication
backlog
bug
chapter editor
config-issue
ebooks
encoding/embedding
enhancement
help wanted
listening sessions & progress
planned
possible plugin
progress sync
pull-request
sorting/filtering/searching
unable to reproduce
upload
users & permissions
waiting
Mirrored from GitHub Pull Request
No Label
enhancement
Milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
adam (Adam Melkus)
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/audiobookshelf#1102
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @Alistair1231 on GitHub (Apr 25, 2023).
Describe the feature/enhancement
Hi!
Love the app. Thanks for your work.
I would love it, if there were an option to allow me to use my media keys, for skipping tracks forward/backwards, to instead of skipping an entire chapter, only skipping 10 seconds. In audiobooks I often simply miss what was said and want to hear it again. On android, the media keys simply skip back a bit, on desktop it skips entire chapters however. I rarely need to do that, and if I do I can just use the UI. Since other people may have different needs I feel an option is better, than just changing the current way it works.
I was playing around with the code, and found that in
StreamContainer.vueon Lines 369 - 371 can be changed to easily accomplish the change in behaviour. I would've made a pull request. But I am hopelessly lost in how to make a settings option with my change instead of hardcoding it. My change is simply.From this:
To this:
@advplyr commented on GitHub (Apr 26, 2023):
Hey are you using a keyboard for the media keys?
@advplyr commented on GitHub (Apr 26, 2023):
In the browser controls there is both seek and next track buttons.
Are you using something that doesn't have the seek buttons?
@Alistair1231 commented on GitHub (Apr 26, 2023):
Yes I use my Keyboard. But even for keyboards without native support they can be emulated with AHK
Something like this for example (Ctrl+Alt+Left/Down/Right):
With the changes I mentioned in the issue description, I can now from any window, e.g. in a game, easily skip back a bit by pressing Media_Prev. The problem is, that there is no Keyboard key, or AHK key for that matter, that emlates the 'seekbackward'
or 'seekforward' keys. At least afaik.
The point for me is that I often listen to Audiobooks while gaming, where I cannot easily tab out and click around on media controls. Using a keyboard shortcut is no problem though. Also, it's simply easier and quicker to use the keyboard imo.
@advplyr commented on GitHub (Apr 26, 2023):
Ah ok so it doesn't support the seek forward/backward media keys?
https://developer.mozilla.org/en-US/docs/Web/API/Media_Session_API#setting_up_action_handlers_for_a_music_player
@Alistair1231 commented on GitHub (Apr 26, 2023):
No, neither my Keyboard, nor Autohotkey support those. I also checked the Powertoys Keyboard Manager and couldn't see such a key. The typically well supported keys are Play/Pause, Stop, Prev Track and Next Track.
Outside of UI elements I have never encountered seekforward / seekbackward.
@advplyr commented on GitHub (Apr 27, 2023):
Are there other websites you use the media session keys for?
I just checked youtube.com and it looks like next/prev track isn't set for regular video. Maybe for a playlist. They are setting the seek forward/backward.
podcasts.google.com is showing both next/prev track and seeking. The next/prev track buttons actually seek like you are proposing here, so they have enabled both and they both do the same thing in my testing.
Curious if you have other examples
@Alistair1231 commented on GitHub (Apr 27, 2023):
My main comparison would be how pretty much all Audiobook/Podcast players on Android work.
Android apps for audiobooks or podcasts, including the audiobookshelf app on Android, do seekbackward or seekforward when I use the media_prev or media_next keys on my Bluetooth headset.
On my PC, Audiobookshelf is the only app I use for this kind of content . So I don't have a lot of Apps to compare it to, except for how it works on my phone.
But in general, since Media_prev and Media_Next keys are far more common on keyboards as well as Bluetooth headsets, and users will on average more often want to skip forwards or backwards a bit instead of entire chapters, allowing for the remapping of this key would make sense in my opinion.
@Alistair1231 commented on GitHub (Apr 28, 2023):
I went ahead and gave the whole options thing a go, and I figured it out. I tried to keep all the conventions you use and made sure that the implmentation works. Also, be default I kept this option disabled.
If there are any issues let me know.
@advplyr commented on GitHub (Apr 28, 2023):
I'm not sure if we need a setting for this. The reason I was asking if you had more examples is because I was thinking we just make both the media keys to seek forward/backward.
@Alistair1231 commented on GitHub (Apr 28, 2023):
Personally, I think that would suffice. Though, it never hurts to provide options. There are all kinds of people with different habits out there. I would be fine either way.
Maybe the default could be to seek, with the option to enable skipping chapters?
@Alistair1231 commented on GitHub (May 7, 2023):
Is there any update on this? Should I create a pull request that changes this behavior to be the default instead of adding an option or will you do it and are just busy?
EDIT: I just did that. Tiny change after all, so why bother you with it 😄
@advplyr commented on GitHub (May 7, 2023):
Thanks yeah I think that is better for now. I was thinking of adding settings to the audio player instead of a server setting.
@Alistair1231 commented on GitHub (May 7, 2023):
Ah. Yeah, my solution would always apply to all users, which is suboptimal. Allowing the change on a user by user basis would be ideal, of course. Though, I am happy with simply changing the default behaviors and will close the issue now. If someone doesn't like it, they can create a new issue.
@advplyr commented on GitHub (May 28, 2023):
Added in v2.2.21