Inizia
-
Installa il plugin
Terminal window npm i @capgo/capacitor-media-sessionTerminal window pnpm add @capgo/capacitor-media-sessionTerminal window yarn add @capgo/capacitor-media-sessionTerminal window bun add @capgo/capacitor-media-session -
Sincronizza le piattaforme
Terminal window npx cap syncTerminal window pnpm cap syncTerminal window yarn cap syncTerminal window bunx cap sync
ℹ️ L’API Media Session è disponibile su Android (browser basati su Chrome, WebView) e molti browser desktop. Su piattaforme non supportate le chiamate si risolvono senza effetto, quindi proteggi di conseguenza la tua interfaccia.
Pubblica metadati
Section titled “Pubblica metadati”import { MediaSession } from '@capgo/capacitor-media-session';
await MediaSession.setMetadata({ title: 'Weekly Tech Podcast', artist: 'Capgo Studio', album: 'Season 2', artwork: [ { src: 'https://cdn.example.com/covers/s02e05-512.png', sizes: '512x512', type: 'image/.png' }, ],});Aggiorna lo stato di riproduzione
Section titled “Aggiorna lo stato di riproduzione”await MediaSession.setPlaybackState({ playbackState: 'playing' });
// Metti in pausa in seguito se necessarioawait MediaSession.setPlaybackState({ playbackState: 'paused' });Gestisci azioni multimediali
Section titled “Gestisci azioni multimediali”const pauseHandler = async () => { player.pause(); await MediaSession.setPlaybackState({ playbackState: 'paused' });};
await MediaSession.setActionHandler({ action: 'pause' }, pauseHandler);await MediaSession.setActionHandler({ action: 'play' }, async () => { await player.play(); await MediaSession.setPlaybackState({ playbackState: 'playing' });});
// Rimuovi un gestore quando elimini il playerawait MediaSession.setActionHandler({ action: 'pause' }, null);Mantieni la posizione sincronizzata
Section titled “Mantieni la posizione sincronizzata”const updatePosition = async () => { await MediaSession.setPositionState({ duration: player.duration, position: player.currentTime, playbackRate: player.playbackRate, });};
player.ontimeupdate = updatePosition;player.onratechange = updatePosition;Raccomandazioni
Section titled “Raccomandazioni”- Aggiorna i metadati quando cambia la traccia in modo che le notifiche e gli altoparlanti intelligenti rimangano aggiornati.
- Limita gli aggiornamenti di posizione (es. ogni 250 ms) per evitare di sovraccaricare il livello nativo.
- Rimuovi sempre i gestori di azione quando elimini un’istanza del player per prevenire perdite accidentali.