Ship the Android sound packs as Opus

The build encodes TeamSpeak's packs to Ogg Opus at 64 kbps before bundling
them, which takes the sounds from 21.3 MB to 2.0 MB, in the APK and again
once unpacked on the phone. The encoding runs the desktop code's libopus
on the build machine, through a build-only :desktop module compiled from
the same sources as the Maven one.

Both clients play Opus sounds: the sound player (now PackSoundPlayer, as it
no longer plays only wave files) decodes Ogg Opus with the platform's
libopus, and a pack's play("x.wav") finds x.opus, so converted packs keep
their scripts. SoundPackConverter turns any pack folder into Opus.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-26 17:12:50 +00:00
parent 02ff63341e
commit 4b50f37735
12 changed files with 456 additions and 32 deletions

View File

@@ -261,7 +261,7 @@ core/ com.ts3client
│ ├── NotificationSettings per-action enabled / important flags
│ ├── SoundNotifier decides what is heard (pack + config + mute state)
│ ├── SoundPlayer renders a sound
│ └── WavSoundPlayer decodes, resamples and mixes sounds onto one line
│ └── PackSoundPlayer decodes, resamples and mixes sounds onto one line
└── teamspeak the official client's own data files
├── TeamSpeakSettingsDb locates settings.db; reads Contacts and the ProtobufItems sync store
├── SqliteReader minimal read-only SQLite 3 file reader (no driver)