Vai al contenuto

Inizia

  1. Installa il plugin

    Terminal window
    npm i @capgo/capacitor-media-session
  2. Sincronizza le piattaforme

    Terminal window
    npx 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.

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' },
],
});
await MediaSession.setPlaybackState({ playbackState: 'playing' });
// Metti in pausa in seguito se necessario
await MediaSession.setPlaybackState({ playbackState: 'paused' });
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 player
await MediaSession.setActionHandler({ action: 'pause' }, null);
const updatePosition = async () => {
await MediaSession.setPositionState({
duration: player.duration,
position: player.currentTime,
playbackRate: player.playbackRate,
});
};
player.ontimeupdate = updatePosition;
player.onratechange = updatePosition;
  • 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.