# `` _(no submodules)_ ## Purpose `` is the full-featured media-player surface — a composition of ``, ``, and `` arranged as a single instrument panel. It is intended for hero player surfaces (landing pages, profile pages, demo apps) that want the whole monitoring suite without forcing consumers to wire three components by hand. Every behavioural guarantee of the underlying components applies: the player polls plugin state, the visualiser reads block samples from the named bus, and the meter computes peak / RMS / hold envelope on every UI tick. None of the three sub-components share state; they compose by sitting in the same DOM section. ## Features - Bundles `` + `` + ``. - Routes a single `busName` to both the visualiser and the meter so they show the same source. - Forwards `src` to the player for auto-load on mount. - Adds the `.rax-premium-player` class for theming. ## Usage: Basic Example ```tsx import { AudioPlayerPlugin } from "@suaveplan/audio-fx-plugin-audio-player"; import { AudioProvider, PremiumPlayer } from "@suaveplan/react-audio"; const plugin = new AudioPlayerPlugin({}); export function Hero() { return ( ); } ``` ## Usage: Advanced Example ```tsx import { AudioPlayerPlugin } from "@suaveplan/audio-fx-plugin-audio-player"; import { AudioProvider, PremiumPlayer } from "@suaveplan/react-audio"; const plugin = new AudioPlayerPlugin({}); export function AuxBusPlayer() { return ( ); } ``` ## API Reference | Prop | Type | Default | Notes | | ----------- | ------------------- | ----------- | -------------------------------------------------- | | `plugin` | `AudioPlayerPlugin` | — | Required. | | `src` | `string \| undef` | — | Forwarded to `` for auto-load. | | `busName` | `string \| undef` | `"master"` | Routed to the visualiser and meter. | | `className` | `string \| undef` | — | Forwarded; merged with `rax-premium-player`. | ## Implementation Notes The composition only forwards the `busName` to the visualiser + meter when one is supplied — otherwise the sub-components fall back to their own `"master"` defaults, which keeps the API surface honest about what we are choosing for the user. The player sub-component also receives the `src` only when it is defined, so the auto-load effect inside `` doesn't run with `undefined` and trip a guard. There is no separate state in this component; it is pure composition. New monitoring sub-components (e.g. spectrum analysers, oscilloscope) can be added inline without changing the prop signature.