Sitelet https://github.com/Cap-go/capacitor-ffmpeg/tree/main/example-app
Skip to content

Latest commit

 

History

History

README.md

FFmpeg example app

This example app is a feature playground for @capgo/capacitor-ffmpeg. It does two jobs:

  • It gives contributors a concrete UI for the plugin surface that exists today.
  • It provides automated tests for the app-side contract, including the expected unsupported behavior on web and Android.

What the app covers

  • getPluginVersion() rendering
  • getCapabilities() rendering
  • progress listener registration and UI updates
  • picker-backed reencodeVideo() queue flow on iOS
  • picker-backed convertImage() flow on iOS and Android, including photo -> WebP conversion on Android
  • Unsupported reencodeVideo() smoke checks on platforms that report no media pipeline
  • Unsupported convertImage() smoke checks on platforms that report no native image conversion path

Run the app

bun install
bun run start

Run the example tests

bun run test

Verify the example

bun run verify

Run Maestro flows

bun run maestro:ios
bun run maestro:android
bun run maestro:android:ci

The Android script now uses Maestro's supported default driver bootstrap path. If you need the old explicit driver install and port-forward workaround for a local machine, set MAESTRO_ANDROID_MANUAL_DRIVER=1.

bun run maestro:android:ci is the full Android local/CI launcher. It:

  • boots an existing local AVD when possible
  • falls back to creating a supported Android 33 emulator if no AVD exists
  • builds the plugin and example app, syncs Android, installs the debug APK, and then runs the Maestro flows

Useful overrides:

  • MAESTRO_ANDROID_AVD to force a specific local AVD name
  • MAESTRO_ANDROID_SKIP_PREBUILD=1 to skip the build/sync/assemble phase
  • MAESTRO_ANDROID_PREPARE_ONLY=1 to stop after booting the emulator and installing the app
  • MAESTRO_ANDROID_MANUAL_DRIVER=1 to force the old explicit Maestro driver install/instrumentation flow

Native sync

If you change dependencies or native config in this example, sync the platforms:

bunx cap sync ios
bunx cap sync android

Platform notes

  • web: capability inspection, progress-listener registration, and unsupported-path smoke checks
  • android: capability inspection, native image conversion, and unsupported video re-encode smoke checks
  • ios: capability inspection, photo/video pickers, native image conversion, and native FFmpeg re-encode with progress events