izderadicka / audioserve-android Goto Github PK
View Code? Open in Web Editor NEWAndroid client for audioserve
Android client for audioserve
You can add Screenshots for F-Droid, too, if you want.
https://f-droid.org/en/docs/All_About_Descriptions_Graphics_and_Screenshots/
Hi, i deployed the audioserve
server on my local LAN, and it works well via browser except audioserve-android
client. Here is the details of information i collected.
Screenshot of "Connection error: Server" raised by audioserve-android
on clicking "Test Connection" :
Screenshot of "Empty folder" raised by audioserve-android
on tapping back from Settings
:
Screenshot of collections on tapping Browse Collections
in audioserve-android
:
It seems like that the audioserve-android had fetched collections information successfully already.
Screenshot of Firefox on android:
audioserve deployment info:
mkdir -p audioserve
mkdir -p /data/audio_dir_1
mkdir -p /data/audio_dir_2
chown -R share:share audioserve
chown -R share:share /data/audio_dir_1
chown -R share:share /data/audio_dir_2
cat <<EOF > audioserve/config.yaml
transcoding:
low:
opus-in-ogg:
bitrate: 16
compression_level: 3
cutoff: WideBand
mono: true
medium:
opus-in-ogg:
bitrate: 24
compression_level: 6
cutoff: SuperWideBand
mono: true
high:
opus-in-ogg:
bitrate: 32
compression_level: 9
cutoff: SuperWideBand
EOF
chown -R share:share audioserve
docker run -d --restart unless-stopped \
--name audioserve \
-e PUID=1000 \
-e PGID=1000 \
-p 7777:3000 \
-v /etc/localtime:/etc/localtime:ro \
-v /data/audio_dir_1:/library_1:ro \
-v /data/audio_dir_2:/library_2:ro \
-v "$PWD"/audioserve:/home/audioserve/.audioserve \
-e AUDIOSERVE_LISTEN=0.0.0.0:3000 \
-e AUDIOSERVE_NO_AUTHENTICATION=true \
-e AUDIOSERVE_CONFIG=/home/audioserve/.audioserve/config.yaml \
-e AUDIOSERVE_ALLOW_SYMLINKS=true \
-e AUDIOSERVE_T_CACHE_DIR=/tmp \
-e AUDIOSERVE_NO_NATURAL_FILES_ORDERING=true \
-e AUDIOSERVE_CHANGES_DEBOUNCE_INTERVAL=10 \
-e AUDIOSERVE_TAGS=true \
-e AUDIOSERVE_BEHIND_PROXY=false \
-e AUDIOSERVE_TRANSCODING_MAX_PARALLEL_PROCESSES=8 \
-e AUDIOSERVE_POSITIONS_BACKUP_SCHEDULE="0 3 * * *" \
-e AUDIOSERVE_POSITIONS_BACKUP_FILE=/home/audioserve/.audioserve/positions-backup.json \
-e AUDIOSERVE_DEBUG=true \
izderadicka/audioserve:v0.26.2 \
/library_1 /library_2
Using the android app I'm able to get the position from the web client.
But when I use the web client after using the android app I'm not able to get the last position.
In the server log I get entries like the following when using the android app:
[2020-05-24T07:17:43Z ERROR audioserve::services::position] Position message error: Position is not a number
[2020-05-24T07:17:45Z ERROR audioserve::services::position] Position message error: Position is not a number
I'm using the static build from release v0.12.1.1 as server.
Android app version v. 0.8.4
Exciting project, am trying to make it work a few hours already. Now I am close. Only thing I have trouble is syncing of playing position. I set group and secret, but cannot get android and laptop using the webinterface to sync. Android app says: Can't get remote position: timeout
I run it like this:
docker run -d --name audioserve -p 3000:3000 -e AUDIOSERVE_SHARED_SECRET=12345 -v /home/myusername/audiobooks:/audiobooks izderadicka/audioserve /audiobooks
Thanks!
I'm not sure it is possible with a truly open source package, but google cast support would be great. It would be great if I could easily cast the audio my google home(s). Currently my work around is to 'mirror' the audio with the speaker, but true cast would also require server support.
Looks like position seeker goes wild in case of variable bitrate encoded audio files.
Example: pause close to end of such file will cause play to jump way back
Not sure how current position is storred, probably as time, may be should be byte offset.
Thank you so much for the audioserve server / android client. I've been using them to listen to audio books and podcasts. Because podcasts are often published regularly I often can't remember which episodes I have previously listened to. It would be nice to have to have the option to mark files as played.
I started working on making the app work with android auto. For the most part there is a simple configuration change that makes it available as an app, but when it's opened on Android Auto there are no MediaItems found. Currently playing items will show up and you can navigate the current queue, but you can't navigate to any books. I think this has to do with the way the folders are built out. I'm not super familiar with Android development so it's a bit new to me. Do you have any plans to support Android Auto?
With policy changes Travis now sucks. I've already move CI scripts for server to GH Actions.
Also should move Android CI scripts.
If anybody has experience with Android build on GH help is more then welcomed
F-Droid is an open source android app repository. I checked there first hoping I could use it to install the app and get easy updates but unfortunately it's not on there yet. Would love to see that happen. Thanks.
It would be nice to have the option to display the cover images if there is one present in the directory instead of the directory name. Cheers!
I'd love to have support for multiple servers - I am in the process of migrating from booksonic, currently I have my main server on my home network, but also a 'travel' server that runs on an RPi in my car, for long trips when I may have no data connection
(For information - newer versions of booksonic/airsonic startup extremely slowly on arm, which is why I want to move to audioserve, which starts up instantly!)
Google suggests that for now it should me possible to clone the audioserve apk and modify the app name so I can install it twice, so will give that a go.
Not sure if this is the right place to put this but I don't think this info in the Readme is correct:
"Too big files (like m4b file containing whole audiobook) will be hard to navigate (as internal chapters are not supported), slow to transcode, plus there is hard limit of 250MB per file (for security reasons)."
M4b's seem to work fine, including files with internal chapters, and I've tested files over 400MB without problem. I'm not complaining, as many of my books are in this format, but I'm wondering why the Readme says this.
I got audioserve running behind a reverse proxy and can use the web client without any problems. Judging after the browser, the certificate chain (it's a LetsEncrypt certificate) seems to be intact.
In the Android app on my mobile device (Huawei T5 tablet) I entered URL and credentials. But when I do "Test Connection" I only get a brief popup "Connection error: Network".
adb logcat ApiClient:D *:S
says:
11-25 10:43:50.353 4006 4006 D ApiClient: Client base URL is https://rsg.changeip.net/audioserve/
11-25 10:43:50.398 4006 4006 E ApiClient: Login error: com.android.volley.NoConnectionError: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
Surely I can provide more logs if this is necessary.
I have already installed the "Let’s Encrypt Authority X3", but this didn't help.
Thanks very much for your help.
Hi there,
I normally listen to audiobooks connected to my car. When the connection is disconnected I'd like for the playback to stop, as normally I have my phone's speaker volume low and I then lose my position in the book.
Is there any chance of getting https://developer.android.com/guide/topics/media-apps/volume-and-earphones#becoming-noisy implemented?
Interruptions like from navigation currently just quiet the playback instead of pausing, this means we lose a few sentences while Google tells me to turn left after the Hardees on US 23154 West Business 983 john phillip sousa boulevard.
The app briefly opens (I see "recently listened" for a blink of an eye) and then crashes.
This might be a CPU architecture issue: I think the FP4 is aarch64.
Everything worked perfectly on my previous phone and on my wife's.
I would appreciate any help or information :)
Currently when entering the server name in the config, if the entry isn't precisely the form the application expects the app will reject the entry, display a toast message, and not save the change. This means the user has to retype the server name from scratch over and over until they figure out what form was expected.
It would be pleasant to have the server name saved even if it's not in the expected form, so that the user can just go in and correct the unexpected form.
(In my case, I've never typed in the trailing /, because I use a subdomain. Fixing that was enough, and I'm up and running.)
I Run audioserve with the --no-authentication
behind a reverse proxy that handles Basic Authentication. This lets me easily use the web interface in most places.
However, the Android application only accepts URL+Secret for connection. I attempted using https://username:password@audioserveURL
along with an empty secret, but it didn't work.
Happy to share credentials over email if required.
I'm using audioserve behind authelia.
Is it possible to adjust client for extra layer of authentication?
Hi, sorry, I couldn't find a better way to ask. I feel crazy, but how do I add a bookmark? Thanks for a great app!
Hi there,
Just noticed a navigation issue. Can be recreated as follows:
Obviously only a minor issue.
Regards,
Mike
Hello,
When I try and connect to the server it shows "Connection error:Server" in the toast message at the bottom, but I can still see all of the files in my library. When I try and play a book, I get an error saying "Player not ready - probably not connected to server"
Here is a link to the screenshots:
Everything works from a browser with audioserve, only having connection issues in the app.
Especially for loading folders, where (due to metadata scanning) it can take a while. Right now it looks like request is timeouted if response is not started in 10 secs. Should extend to 60 secs or so.
Can timeout be especially extended for folders listing only?
Hi,
any chance I might interest you in implementing a dark mode? I usually use it in bed on my amoled screen and the white background is way too bright for me.
Thanks for the app!
Any chance you could increase the playback speed to increment all the way up to 2.0? I can't get it any faster than 1.25
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.