Aller au contenu

Premiers pas

GitHub

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 :

Fenêtre de terminal
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

Utilisez 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 :

Fenêtre de terminal
bun add @capgo/capacitor-media-session
bunx cap sync
import { MediaSession } from '@capgo/capacitor-media-session';

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,
});
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 ready
  • Maintenir la position à jour: appelez setPositionState la 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.

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' });

Met à jour l'état de lecture de la session média.

import { MediaSession } from '@capgo/capacitor-media-session';
await MediaSession.setPlaybackState({ playbackState: 'none' });

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);
});

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,
});
export interface MetadataOptions {
album?: string;
artist?: string;
artwork?: MediaImage[];
title?: string;
}
export interface PlaybackStateOptions {
playbackState: MediaSessionPlaybackState;
}
export interface ActionHandlerOptions {
action: MediaSessionAction;
}
export type ActionHandler = (details: ActionDetails) => void;
export interface PositionStateOptions {
duration?: number;
playbackRate?: number;
position?: number;
}
export interface MediaImage {
src: string;
sizes?: string;
type?: string;
}
export type MediaSessionPlaybackState = 'none' | 'paused' | 'playing';
export type MediaSessionAction =
| 'play'
| 'pause'
| 'seekbackward'
| 'seekforward'
| 'previoustrack'
| 'nexttrack'
| 'seekto'
| 'stop';

Cette page est générée à partir du src/definitions.ts. Relancez la synchronisation lorsque l’API public change en amont.

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.