Guida rapida
Copia un prompt di setup con i passaggi di installazione e la guida markdown completa per questo plugin.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-media-session`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/media-session/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
Installazione
Sezione intitolata “Install”Puoi usare il nostro Setup assistito dall'AI per installare il plugin. Aggiungi le skill Capgo al tuo tool AI con il comando seguente:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsPoi usa questo prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-media-session` plugin in my project.Se preferisci il Setup manuale, installa il plugin eseguendo i comandi seguenti e segui le istruzioni specifiche per piattaforma qui sotto:
bun add @capgo/capacitor-media-sessionbunx cap syncImporta
Sezione intitolata “Import”import { MediaSession } from '@capgo/capacitor-media-session';Avvio rapido
Sezione intitolata “Quick start”Pubblica i metadati e lo stato di riproduzione all'avvio del player.
import { MediaSession } from '@capgo/capacitor-media-session';
await MediaSession.setMetadata({ title: 'Episode 12', artist: 'Capgo Podcast', album: 'Ship faster', artwork: [{ src: 'https://cdn.example.com/artwork.png', sizes: '512x512', type: 'image/png' }],});
await MediaSession.setPlaybackState({ playbackState: 'playing' });
await MediaSession.setPositionState({ duration: 3600, position: 120, playbackRate: 1,});Esempio: gestire i controlli della lock screen
Sezione intitolata “Esempio: gestire i controlli della lock screen”await MediaSession.setActionHandler({ action: 'play' }, () => { audio.play();});
await MediaSession.setActionHandler({ action: 'pause' }, () => { audio.pause();});
await MediaSession.setActionHandler({ action: 'seekto' }, (details) => { if (details.seekTime != null) { audio.currentTime = details.seekTime; }});Passa null come handler per annullare la registrazione di un'azione.
Esempio: stato di pausa durante il buffering
Sezione intitolata “Esempio: stato di pausa durante il buffering”await MediaSession.setPlaybackState({ playbackState: 'paused' });// resume with 'playing' when your buffer is readyErrori comuni
Sezione intitolata “Errori comuni”- Mantieni la posizione aggiornata: chiama
setPositionStateman mano che la riproduzione avanza, altrimenti lo scrubbing su Android sembrerà rotto. - URL delle immagini: usa asset HTTPS raggiungibili dal dispositivo; le immagini troppo grandi rallentano gli aggiornamenti della lock screen.
- Ciclo di vita dell'handler: registra gli handler una sola volta al setup del player, non a ogni cambio di traccia.
API Panoramica
Sezione intitolata “Panoramica API”setMetadata
Sezione intitolata “setMetadata”Imposta i metadati del media in riproduzione.
import { MediaSession } from '@capgo/capacitor-media-session';
await MediaSession.setMetadata({ album: 'album' });setPlaybackState
Sezione: “setPlaybackState”Aggiorna lo stato di riproduzione della media session.
import { MediaSession } from '@capgo/capacitor-media-session';
await MediaSession.setPlaybackState({ playbackState: 'none' });setActionHandler
Sezione: “setActionHandler”Registra un handler per un'azione della media session.
import { MediaSession } from '@capgo/capacitor-media-session';
await MediaSession.setActionHandler({ action: 'play' }, (details) => { console.log(details);});setPositionState
Sezione: “setPositionState”Aggiorna lo stato della posizione per la media session attiva.
import { MediaSession } from '@capgo/capacitor-media-session';
await MediaSession.setPositionState({ duration: 1000, playbackRate: 1, position: 10,});Riferimento ai tipi
Sezione intitolata “Riferimento ai tipi”MetadataOptions
Sezione: “MetadataOptions”export interface MetadataOptions { album?: string; artist?: string; artwork?: MediaImage[]; title?: string;}PlaybackStateOptions
Sezione: “PlaybackStateOptions”export interface PlaybackStateOptions { playbackState: MediaSessionPlaybackState;}ActionHandlerOptions
Sezione: “ActionHandlerOptions”export interface ActionHandlerOptions { action: MediaSessionAction;}ActionHandler
Sezione: “ActionHandler”export type ActionHandler = (details: ActionDetails) => void;PositionStateOptions
Sezione: “PositionStateOptions”export interface PositionStateOptions { duration?: number; playbackRate?: number; position?: number;}MediaImage
Sezione: “MediaImage”export interface MediaImage { src: string; sizes?: string; type?: string;}MediaSessionPlaybackState
Sezione: “MediaSessionPlaybackState”export type MediaSessionPlaybackState = 'none' | 'paused' | 'playing';MediaSessionAction
Sezione intitolata “MediaSessionAction”export type MediaSessionAction = | 'play' | 'pause' | 'seekbackward' | 'seekforward' | 'previoustrack' | 'nexttrack' | 'seekto' | 'stop';Fonte di verità
Sezione intitolata “Source Of Truth”Questa pagina è generata dal src/definitions.ts. Riesegui la sync quando il API pubblico cambia upstream.
Continua da Getting Started
Sezione intitolata “Continua da Getting Started”Se stai usando Guida rapida per pianificare dashboard e operazioni API, collegalo a Utilizzo di @capgo/capacitor-media-session per la funzionalità nativa in Utilizzo di @capgo/capacitor-media-session, API Panoramica per i dettagli di implementazione in Panoramica API, Introduzione per i dettagli di implementazione in Introduzione, Chiavi API per i dettagli di implementazione in Chiavi API, e Dispositivi per i dettagli di implementazione in Dispositivi.