Player controls with Pebble smart watch not working properly #329

Closed
opened 2026-04-24 23:16:45 +02:00 by adam · 3 comments
Owner

Originally created by @k9withabone on GitHub (Oct 26, 2022).

Steps to reproduce

  1. Start playing an audiobook or podcast.
  2. Use Pebble Music app controls to go backwards or forwards.

Expected behaviour

  • Player should jump backwards or forwards by defined time in settings.

Actual behaviour

  • After pressing the seek backwards button the audiobook or podcast jumps to the beginning.
  • After pressing the seek forwards button nothing happens.
  • Pausing/playing work as expected.

Environment data

Audiobookshelf Version: v2.2.1
Using the docker container image with rootless podman on Fedora Server VM on a Proxmox host.

App Version: 0.9.57-beta

  • Android App?
  • iOS App?

Android Issue

Android version: 12

Device model: OnePlus 6

Stock or customized system: LineageOS 19.1

Other Information

I also tested other Bluetooth devices to see if it was just my Pebble and indeed it is. I tested with my car and a speaker, both of which have media controls built in and both of those worked as expected.
I am willing to work on this myself since it does require having a Pebble smart watch to reproduce. However, I was unable to build the app myself. This is the output from npm run generate:

$ npm run generate

> audiobookshelf-app@0.9.58-beta generate
> nuxt generate

ℹ Merging Tailwind config from ~/tailwind.config.js                       nuxt:tailwindcss 19:23:31
ℹ Production build                                                                         19:23:32
ℹ Bundling only for client side                                                            19:23:32
ℹ Target: static                                                                           19:23:32
ℹ Using components loader to optimize imports                                              19:23:32
ℹ Discovered Components: node_modules/.cache/nuxt/components/readme.md                     19:23:32
✔ Builder initialized                                                                      19:23:32
✔ Nuxt files generated                                                                     19:23:32

● Client █████████████████████████ building (10%) 1/2 modules 1 active
 node_modules/@nuxt/components/lib/installComponents.js

node:internal/crypto/hash:67
  this[kHandle] = new _Hash(algorithm, xofLen);
                  ^

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:67:19)
    at Object.createHash (node:crypto:133:10)
    at module.exports (/home/paul/personal/projects/audiobookshelf-app/node_modules/webpack/lib/util/createHash.js:135:53)
    at NormalModule._initBuildHash (/home/paul/personal/projects/audiobookshelf-app/node_modules/webpack/lib/NormalModule.js:417:16)
    at handleParseError (/home/paul/personal/projects/audiobookshelf-app/node_modules/webpack/lib/NormalModule.js:471:10)
    at /home/paul/personal/projects/audiobookshelf-app/node_modules/webpack/lib/NormalModule.js:503:5
    at /home/paul/personal/projects/audiobookshelf-app/node_modules/webpack/lib/NormalModule.js:358:12
    at /home/paul/personal/projects/audiobookshelf-app/node_modules/webpack/node_modules/loader-runner/lib/LoaderRunner.js:373:3
    at iterateNormalLoaders (/home/paul/personal/projects/audiobookshelf-app/node_modules/webpack/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
    at Array.<anonymous> (/home/paul/personal/projects/audiobookshelf-app/node_modules/webpack/node_modules/loader-runner/lib/LoaderRunner.js:205:4)
    at Storage.finished (/home/paul/personal/projects/audiobookshelf-app/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:55:16)
    at /home/paul/personal/projects/audiobookshelf-app/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:91:9
    at /home/paul/personal/projects/audiobookshelf-app/node_modules/graceful-fs/graceful-fs.js:123:16
    at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3) {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

Node.js v18.1.0

As you can see I am using Node v18.1 which is the latest version available from the Fedora repositories. Are you using a newer/older version of Node when building?

Originally created by @k9withabone on GitHub (Oct 26, 2022). ### Steps to reproduce 1. Start playing an audiobook or podcast. 2. Use Pebble Music app controls to go backwards or forwards. ### Expected behaviour - Player should jump backwards or forwards by defined time in settings. ### Actual behaviour - After pressing the seek backwards button the audiobook or podcast jumps to the beginning. - After pressing the seek forwards button nothing happens. - Pausing/playing work as expected. ### Environment data Audiobookshelf Version: v2.2.1 Using the docker container image with rootless podman on Fedora Server VM on a Proxmox host. App Version: 0.9.57-beta - [x] Android App? - [ ] iOS App? #### Android Issue Android version: 12 Device model: OnePlus 6 Stock or customized system: LineageOS 19.1 ### Other Information I also tested other Bluetooth devices to see if it was just my Pebble and indeed it is. I tested with my car and a speaker, both of which have media controls built in and both of those worked as expected. I am willing to work on this myself since it does require having a Pebble smart watch to reproduce. However, I was unable to build the app myself. This is the output from `npm run generate`: ``` $ npm run generate > audiobookshelf-app@0.9.58-beta generate > nuxt generate ℹ Merging Tailwind config from ~/tailwind.config.js nuxt:tailwindcss 19:23:31 ℹ Production build 19:23:32 ℹ Bundling only for client side 19:23:32 ℹ Target: static 19:23:32 ℹ Using components loader to optimize imports 19:23:32 ℹ Discovered Components: node_modules/.cache/nuxt/components/readme.md 19:23:32 ✔ Builder initialized 19:23:32 ✔ Nuxt files generated 19:23:32 ● Client █████████████████████████ building (10%) 1/2 modules 1 active node_modules/@nuxt/components/lib/installComponents.js node:internal/crypto/hash:67 this[kHandle] = new _Hash(algorithm, xofLen); ^ Error: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:67:19) at Object.createHash (node:crypto:133:10) at module.exports (/home/paul/personal/projects/audiobookshelf-app/node_modules/webpack/lib/util/createHash.js:135:53) at NormalModule._initBuildHash (/home/paul/personal/projects/audiobookshelf-app/node_modules/webpack/lib/NormalModule.js:417:16) at handleParseError (/home/paul/personal/projects/audiobookshelf-app/node_modules/webpack/lib/NormalModule.js:471:10) at /home/paul/personal/projects/audiobookshelf-app/node_modules/webpack/lib/NormalModule.js:503:5 at /home/paul/personal/projects/audiobookshelf-app/node_modules/webpack/lib/NormalModule.js:358:12 at /home/paul/personal/projects/audiobookshelf-app/node_modules/webpack/node_modules/loader-runner/lib/LoaderRunner.js:373:3 at iterateNormalLoaders (/home/paul/personal/projects/audiobookshelf-app/node_modules/webpack/node_modules/loader-runner/lib/LoaderRunner.js:214:10) at Array.<anonymous> (/home/paul/personal/projects/audiobookshelf-app/node_modules/webpack/node_modules/loader-runner/lib/LoaderRunner.js:205:4) at Storage.finished (/home/paul/personal/projects/audiobookshelf-app/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:55:16) at /home/paul/personal/projects/audiobookshelf-app/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:91:9 at /home/paul/personal/projects/audiobookshelf-app/node_modules/graceful-fs/graceful-fs.js:123:16 at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3) { opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ], library: 'digital envelope routines', reason: 'unsupported', code: 'ERR_OSSL_EVP_UNSUPPORTED' } Node.js v18.1.0 ``` As you can see I am using Node v18.1 which is the latest version available from the Fedora repositories. Are you using a newer/older version of Node when building?
adam added the bug label 2026-04-24 23:16:45 +02:00
adam closed this issue 2026-04-24 23:16:46 +02:00
Author
Owner

@advplyr commented on GitHub (Dec 4, 2022):

I'm not sure if this will solve the issue but I noticed that there was no media button events for fast forward & rewind.

I also don't know if the Pebble watch is using these media button events. Since we were already handling the media next and previous events to jump forwards/backwards then I'm leaning towards the Pebble watch is not calling these events.

https://github.com/advplyr/audiobookshelf-app/blob/master/android/app/src/main/java/com/audiobookshelf/app/player/MediaSessionCallback.kt#L178

I use node 16

@advplyr commented on GitHub (Dec 4, 2022): I'm not sure if this will solve the issue but I noticed that there was no media button events for fast forward & rewind. I also don't know if the Pebble watch is using these media button events. Since we were already handling the media next and previous events to jump forwards/backwards then I'm leaning towards the Pebble watch is not calling these events. https://github.com/advplyr/audiobookshelf-app/blob/master/android/app/src/main/java/com/audiobookshelf/app/player/MediaSessionCallback.kt#L178 I use node 16
Author
Owner

@advplyr commented on GitHub (Feb 26, 2023):

Duplicate of #352

@advplyr commented on GitHub (Feb 26, 2023): Duplicate of #352
Author
Owner

@ajaxbits commented on GitHub (Apr 22, 2023):

I was able to solve this issue by running:

NODE_OPTIONS=--openssl-legacy-provider npm run generate

See this StackOverflow article

@ajaxbits commented on GitHub (Apr 22, 2023): I was able to solve this issue by running: ```bash NODE_OPTIONS=--openssl-legacy-provider npm run generate ``` See [this StackOverflow article](https://stackoverflow.com/questions/69692842/error-message-error0308010cdigital-envelope-routinesunsupported)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/audiobookshelf-app#329