# 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:

```text
/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:

```json
{
  "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.
