webOS topic
LG webOS TVs, webOS 26 on, run the package through flutter-webos, LG's Flutter 3.38.10 for webOS. flutter-webos runs no build hook, so the package is an FFI plugin there: its webos/CMakeLists.txt downloads libmpv_webos-armv7l.so of the release the package pins, checks its SHA-256 and bundles it in the app's lib/ as libmpv_audio_kit_webos.so. MpvAudioKit.ensureInitialized opens that file when no libmpv is given.
Build
Set up flutter-webos and LG's webOS NDK as LG's guide says, then build as usual:
flutter-webos build webos --release
The first build downloads the library, so it needs network access. The library is 32-bit ARM, the TVs' arch: a build with --target-arch arm64 fails, as there is no libmpv for it.
A libmpv of your own
The libmpv user define of the build hook does not reach webOS. Set MPV_AUDIO_KIT_LIBMPV in the environment of the build instead: a file, or a directory with libmpv_webos-armv7l.so. It must be a build of libmpv-scripts at the release the package pins.
MPV_AUDIO_KIT_LIBMPV=/path/to/libmpv_webos-armv7l.so flutter-webos build webos --release
Audio
The library plays through ALSA, the sound API of the webOS NDK. The media session has no webOS side. setMediaSession keeps its value in the player's state and does nothing else there: no entry in the TV's interface, no command from the remote, no artwork URL loaded, and no error.
What was checked
LG has no emulator for native apps. A workflow of the package builds an app with flutter-webos and runs it under qemu-arm on the system libraries of the webOS NDK, the TVs' glibc and ALSA, with ALSA writing to a file: the app plays an asset past 2 seconds through ALSA, and its 440 Hz tone is in what ALSA wrote. What only a TV shows, its sandbox and its sound server, is not checked yet.
Classes
- MpvAudioKit Web Android TV Tizen webOS
-
One-time initialization for
mpv_audio_kit. Owns the choice of the libmpv the players use and the cleanup of the cores that leaked across Flutter Hot-Restarts, both of which the backend carries out.