diff --git a/README.md b/README.md index b774d2e..3be4a28 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ A small Plexamp-style music player for Plex, built for the Samsung Galaxy Mini (GT-S5570: Android 2.2/2.3, 240×320 ldpi screen, 600 MHz ARMv6, 384 MB RAM). Runs on any Android 2.2+ phone. +Formerly Minamp (the package name, `com.minamp`, stays so updates install over it). ## Language @@ -60,12 +61,16 @@ clock has been reset to before 2024 the certificate date check is skipped rather (default 192 kbps) caps both while the sound goes to a Bluetooth speaker: on the Mini, Wi-Fi and Bluetooth share one radio, and a lighter stream keeps the speaker from stuttering. * Seeking in a transcoded track restarts the transcode at the new position. +* **Read-ahead:** while a track plays, the next one is fetched whole in the background and then + played from the file. Android 2.x's player keeps only a few seconds of stream buffer, so on weak + Wi-Fi shared with a Bluetooth speaker it used to go silent for seconds at a time. * If a stream fails, Plexamp Lite re-picks the connection and resumes; if it fails again it downloads the whole track first and plays from the SD card. "Download tracks before playing" forces that mode (useful on flaky mobile data). Playback that stalls ("playing" but the time doesn't move for 10 s) is recovered the same way. * A Bluetooth speaker that drops its link for a moment pauses Plexamp Lite, which resumes by itself if the - speaker is back within 20 s. Why playback paused or stopped is written to the connection log. + speaker is back within 20 s. Why playback paused or stopped is written to the connection log, + which also goes to logcat (tag `PlexampLite`, readable over USB with `adb logcat`). * Plays are reported to Plex (Now Playing in the Plex dashboard, play counts, resume position). ## Features @@ -108,6 +113,10 @@ Tests (desktop JVM, no device): untrusted-root rejection, browsing, search, artwork, and the stream proxy (Range requests over TLS, de-chunking transcodes, aborting). * `test/QueueTest.java`: shuffle/unshuffle, repeat modes, play next, remove, move, clear. +* `test/PreferHomeTest.java` + `test/identity_server.py`: after being away, the home address wins + again as soon as it answers. +* `test/NetTest.java`: the bundled TLS + HTTP client against real servers; `test/HandshakeProfile.java` + samples where handshake time goes (run with `-Xint`). ## Limits