Files
tactility_apps/Apps/BookPlayer
Adolfo Reyna f785bd3fb2
Main / Build (AudioTest) (push) Has been cancelled
Main / Build (BibleVerse) (push) Has been cancelled
Main / Build (BookPlayer) (push) Has been cancelled
Main / Build (Brainfuck) (push) Has been cancelled
Main / Build (Breakout) (push) Has been cancelled
Main / Build (Calculator) (push) Has been cancelled
Main / Build (Diceware) (push) Has been cancelled
Main / Build (EpubReader) (push) Has been cancelled
Main / Build (EspNowBridge) (push) Has been cancelled
Main / Build (GPIO) (push) Has been cancelled
Main / Build (GameBoy) (push) Has been cancelled
Main / Build (GraphicsDemo) (push) Has been cancelled
Main / Build (HelloWorld) (push) Has been cancelled
Main / Build (M5UnitTest) (push) Has been cancelled
Main / Build (Magic8Ball) (push) Has been cancelled
Main / Build (McpScreen) (push) Has been cancelled
Main / Build (MediaKeys) (push) Has been cancelled
Main / Build (Mp3Player) (push) Has been cancelled
Main / Build (MystifyDemo) (push) Has been cancelled
Main / Build (PocketDungeon) (push) Has been cancelled
Main / Build (ReynaBot) (push) Has been cancelled
Main / Build (RobotArm) (push) Has been cancelled
Main / Build (SerialConsole) (push) Has been cancelled
Main / Build (Snake) (push) Has been cancelled
Main / Build (TamaTac) (push) Has been cancelled
Main / Build (TodoList) (push) Has been cancelled
Main / Build (TwoEleven) (push) Has been cancelled
Main / Build (VoiceRecorder) (push) Has been cancelled
Main / Bundle (push) Has been cancelled
Main / PublishApps (push) Has been cancelled
fix(bookplayer): use exported device_find_* API for audio stream lookup
The flashed 0.8.0-dev firmware exports the legacy device_find_by_name /
device_find_first_by_type lookup API, not the newer device_get_* out-param
API. Switching to device_get_* (to match newer SDK headers) caused
'ELF: Can't find symbol device_get_by_name' at load on .129/.114. Revert to
the exported legacy functions, declared locally since the newer SDK header
dropped them. Verified on .129 via serial: elf entry resolves, app shows.
2026-08-19 21:18:14 -04:00
..

Tactility Book Player App

The Book Player app for Tactility OS plays children's books stored on the SD card. Each book is organized in its own subfolder and contains a sequential layout of pages with both visual illustrations (images) and narration (audio).

SD Card Layout

Books must be stored under /sdcard/books/ on the device SD card with the following structure:

/sdcard/books/
  book_slug_1/
    manifest.json
    page001.png
    page001.mp3
    page002.png
    page002.mp3
    ...
  book_slug_2/
    manifest.json
    page001.jpg
    page001.wav
    page002.jpg
    page002.wav
    ...

Manifest Format

Each book subfolder must contain a manifest.json file. Here is a sample format:

{
  "title": "Princess Grace and Poppy",
  "author": "Reyna Family",
  "id": "grace-poppy",
  "format": "tactility-book-manifest-v1",
  "display": {
    "width": 320,
    "height": 240
  },
  "audio": {
    "encoding": "mp3",
    "sample_rate_hz": 16000,
    "channels": 1,
    "bitrate_kbps": 24
  },
  "pages": [
    {
      "image": "page001.png",
      "audio": "page001.mp3",
      "caption": "Once upon a time, in a magnificent castle perched high on a hill above the sea, there lived five princesses..."
    },
    {
      "image": "page002.png",
      "audio": "page002.mp3",
      "caption": "This is the story of Princess Grace..."
    }
  ]
}

Content Requirements

  • Images: PNG or JPG format. Recommended size is 320×240 pixels (or scaled to match standard aspect ratios).
  • Audio: Mono MP3 or uncompressed standard WAV files. For ESP32-S3 systems, lower sampling rates (e.g. 16 kHz mono) are recommended for memory efficiency.