Per iniziare
Copia un prompt di configurazione 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.
Puoi usare il nostro setup assistito dall'IA per installare il plugin. Aggiungi le skill Capgo al tuo strumento di IA usando il seguente comando:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsPoi usa il seguente prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-media-session` plugin in my project.Se preferisci la configurazione manuale, installa il plugin eseguendo questi comandi 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 schermata di blocco
Sezione intitolata “Esempio: gestire i controlli dello schermo di blocco”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 deregistrare 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: chiamata
setPositionStateman mano che la riproduzione avanza, altrimenti lo scrubbing sembrerà rotto su Android. - URL delle immagini: usa asset HTTPS raggiungibili dal dispositivo, le immagini grandi rallentano gli aggiornamenti della lock screen.
- Durata di vita dell'handler: register handlers once at player setup, not on every track change.
Panoramica API
Sezione intitolata “Panoramica API”setMetadata
Sezione “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: “Type Reference”MetadataOptions
Sezione intitolata “MetadataOptions”export interface MetadataOptions { album?: string; artist?: string; artwork?: MediaImage[]; title?: string;}PlaybackStateOptions
Sezione intitolata “PlaybackStateOptions”export interface PlaybackStateOptions { playbackState: MediaSessionPlaybackState;}ActionHandlerOptions
Sezione intitolata “ActionHandlerOptions”export interface ActionHandlerOptions { action: MediaSessionAction;}ActionHandler
Sezione intitolata “ActionHandler”export type ActionHandler = (details: ActionDetails) => void;PositionStateOptions
Sezione intitolata “PositionStateOptions”export interface PositionStateOptions { duration?: number; playbackRate?: number; position?: number;}MediaImage
Sezione intitolata “MediaImage”export interface MediaImage { src: string; sizes?: string; type?: string;}MediaSessionPlaybackState
Sezione intitolata “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 “Fonte di verità”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 Per iniziare per pianificare le operazioni della dashboard e di API, collegalo a Utilizzo di @capgo/capacitor-media-session per la funzionalità nativa in Utilizzo di @capgo/capacitor-media-session, Panoramica API per i dettagli di implementazione in Panoramica di 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.