v0.13.0 - Going multiplatform
This version is NOT backward-compatible with the previous version (0.12.0), Uninstall the old one then install the new one.
The Syncplay code has now been updated to work with both Android and iOS using a single codebase, thanks to the Kotlin Multiplatform framework. This means the app now shares the same code for logic and user interface on both platforms (using Compose multiplatform). The repository has been renamed from syncplay-android to syncplay-mobile. Unlike the last version, I have tested this version to some extent, it should be more stable, but no promises, the whole code is based on a beta framework, so issues may arise from device to another. Don't hesitate to open issues or feature requests if any.
Core changes:
- The app now supports TLS on Android, ensuring a secure connection (#6) (mainly TLSv1.3 but falls back to older version if necessary).
- Implemented chapter support, exclusive to mpv player (#61 raised by @soredake).
- Resolved crashes when exiting a room (#72 raised by @soredake) and frequent crashes during media loading on mpv engine (#79).
- Fixed issues related to fast-forwarding causing jumps to 00:00 (#70 raised by @soredake, #78 raised by @xpt1x).
- Fixed issue where the client stopped sending video position updates to the server (#80).
- Corrected the "Seek to Precise Position" functionality (#58 raised by @soredake).
- Improved seek behavior, ensuring proper dispatch to the server.
- Enhanced error message appearance to dark red by default, customizable in-room settings.
- Adjusted message outline appearance and introduced a new in-room setting for "Chat message shadow" to add actual shadows to messages (#53 raised by @soredake).
- Implemented gesture status persistence (#68 raised by @soredake).
- Added Brightness/Volume gestures through vertical dragging (#74 raised by@soredake).
- Prevented video players from auto-unpausing immediately after media loading (#73 raised by @soredake).
- Resolved issue with users' medias' size and duration occasionally not updating in the user info card.
- Introduced a shortcut "anime op/ed skip" button to the "Seek To Precise Position" popup (related to #61).
- Addressed user list issues, preventing duplicates and enabling smooth scrolling with many users in the room.
- Added a new status text below the ping to display some user events, such as aspect ratio changes.
- Fixed "Set as ready firsthand" not taking effect most of the time (#57)
- Fixed issue of file mismatch warning not working.
- Enabled mpv to switch aspect ratio similar to exoplayer.
- Applied preferred track language preferences (audio and subtitle) to mpv (Not sure if this one works, needs testing).
- Subtitle size preference now affects mpv as well (#69 raised by @soredake).
- Introduced additional in-room settings for better mpv engine utilization:
- Hardware/Software acceleration toggling to address #56.
- Gpu-next (libplacebo) technology toggling for improved video rendering.
- Anti-jittering interpolation to reduce jittering.
- Stats toggling (debug mode) for showing mpv's current backend status.
- Added Spanish language support contributed by @DoncanC (#82).
- Completed missing Arabic, French, and Chinese locales using ChatGPT.
- Added support for Android 14 UpsideDownCake (crash upon loading file on ExoPlayer).
- Fixed various random crashes in solo-mode.
- Updated mpv-android libs and Exo (this should fix some options with subtitle line-breaking for example or hardware acceleration)
Known Issues: Due to commonizing a lot of logic to make it work on iOS as well, the following are broken:
- Shared Playlists are undergoing rewriting for iOS support, feature temporarily disabled.
- Player does not stop playback while in the background.
- Language choice persistence issue.
- Home shortcuts are not working
Upcoming stuff:
- Probably VLC support ?
About iOS...
The repository is now a Kotlin Multiplatform Mobile project. The whole UI is built using Compose multiplatform, the network backend uses Netty on Android and Ktor on iOS. Settings and preferences are persisted using Datastore, so the UX is consistent on both platforms. However, the iOS couterpart is still under development as I haven't adapted the video player on that side (AVPlayer) for synchronization, so the project pretty much does not compile on iOS for now. I will open an issue concerning this to track updates.
Which APK should you download ?
If you're not familiar with different phone architectures, go ahead and download the arm64-v8a
APK. It should work on most phones out there. In case it doesn't work, you can try the armeabi-v7a
APK as an alternative. Keep in mind that there are some devices with rare architectures such as x86_64
or x86
. Please note that I won't be providing a universal APK since it would be too large (around 110MBs).
If you don't want multiple engines (both ExoPlayer and mpv), go ahead and download syncplay-version-exo-only.apk
which contains only ExoPlayer (which should be compatible and stable with any phone, although I personally prefer running mpv).