Premiers pas
Copiez un prompt de configuration avec les étapes d'installation et le guide markdown complet pour ce 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.
Installer
Section intitulée « Installation »Vous pouvez utiliser notre configuration assistée par IA pour installer le plugin. Ajoutez les skills Capgo à votre outil d'IA avec la commande suivante :
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsUtilisez ensuite le prompt suivant :
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-media-session` plugin in my project.Si vous préférez la configuration manuelle, installez le plugin avec les commandes suivantes, puis suivez les instructions spécifiques à chaque plateforme ci-dessous :
bun add @capgo/capacitor-media-sessionbunx cap syncImporter
Section intitulée « Import »import { MediaSession } from '@capgo/capacitor-media-session';Démarrage rapide
Section intitulée « Démarrage rapide »Publiez les métadonnées et l'état de lecture lorsque votre lecteur démarre.
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,});Example: handle lock screen controls
Section intitulée « Exemple : gérer les contrôles de l'écran de verrouillage »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; }});Passez null comme gestionnaire pour désenregistrer une action.
Exemple : état de pause pendant le buffering
Section intitulée « Exemple : état de pause lors du buffering »await MediaSession.setPlaybackState({ playbackState: 'paused' });// resume with 'playing' when your buffer is readyErreurs courantes
Section intitulée « Erreurs courantes »- Maintenir la position à jour: appelez
setPositionStatela lecture ou le scrubbing sembleront défectueux sur Android. - URLs des visuels: use HTTPS assets reachable from the device, large images slow down lock screen updates.
- Durée de vie du handler: register handlers once at player setup, not on every track change.
Aperçu de API
Section intitulée « Vue d'ensemble de API »setMetadata
Section intitulée « setMetadata »Définit les métadonnées du média en cours de lecture.
import { MediaSession } from '@capgo/capacitor-media-session';
await MediaSession.setMetadata({ album: 'album' });setPlaybackState
Section intitulée « setPlaybackState »Met à jour l'état de lecture de la session média.
import { MediaSession } from '@capgo/capacitor-media-session';
await MediaSession.setPlaybackState({ playbackState: 'none' });setActionHandler
Section intitulée « setActionHandler »Enregistre un handler pour une action de session média.
import { MediaSession } from '@capgo/capacitor-media-session';
await MediaSession.setActionHandler({ action: 'play' }, (details) => { console.log(details);});setPositionState
Section intitulée « setPositionState »Met à jour l'état de la position de la session média active.
import { MediaSession } from '@capgo/capacitor-media-session';
await MediaSession.setPositionState({ duration: 1000, playbackRate: 1, position: 10,});Référence de type
Section intitulée « Référence de type »MetadataOptions
Section intitulée « MetadataOptions »export interface MetadataOptions { album?: string; artist?: string; artwork?: MediaImage[]; title?: string;}PlaybackStateOptions
Section intitulée « PlaybackStateOptions »export interface PlaybackStateOptions { playbackState: MediaSessionPlaybackState;}ActionHandlerOptions
Section intitulée « ActionHandlerOptions »export interface ActionHandlerOptions { action: MediaSessionAction;}ActionHandler
Section intitulée « ActionHandler »export type ActionHandler = (details: ActionDetails) => void;PositionStateOptions
Section intitulée « PositionStateOptions »export interface PositionStateOptions { duration?: number; playbackRate?: number; position?: number;}MediaImage
Section intitulée « MediaImage »export interface MediaImage { src: string; sizes?: string; type?: string;}MediaSessionPlaybackState
Section intitulée « MediaSessionPlaybackState »export type MediaSessionPlaybackState = 'none' | 'paused' | 'playing';MediaSessionAction
Section intitulée « MediaSessionAction »export type MediaSessionAction = | 'play' | 'pause' | 'seekbackward' | 'seekforward' | 'previoustrack' | 'nexttrack' | 'seekto' | 'stop';Source de vérité
Section intitulée « Source de vérité »Cette page est générée à partir du src/definitions.ts. Relancez la synchronisation lorsque l’API public change en amont.
Continuer depuis Getting Started
Section intitulée « Aller plus loin après Getting Started »Si vous utilisez Premiers pas pour planifier les opérations du dashboard et de API, connectez-l’à Utiliser @capgo/capacitor-media-session pour la capacité native dans Utiliser @capgo/capacitor-media-session, Aperçu de API pour les détails d'implémentation dans l'aperçu de API, Introduction pour les détails d'implémentation dans Introduction, Clés API pour les détails d'implémentation dans les clés API, et Appareils pour les détails d'implémentation dans Appareils.