Erste Schritte
Kopiere einen Setup-Prompt mit den Installationsschritten und dem vollständigen Markdown-Guide für dieses 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.
Installieren
Abschnitt „Installation“Du kannst unser KI-gestütztes Setup nutzen, um das Plugin zu installieren. Füge die Capgo Skills mit dem folgenden Befehl deinem KI-Tool hinzu:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsNutze dann diesen Prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-media-session` plugin in my project.Wenn du ein manuelles Setup bevorzugst, installiere das Plugin mit den folgenden Befehlen und befolge die plattformspezifischen Anweisungen unten:
bun add @capgo/capacitor-media-sessionbunx cap syncImportieren
Abschnitt mit dem Titel „Import“import { MediaSession } from '@capgo/capacitor-media-session';Quickstart
Abschnitt „Quick start“Veröffentliche Metadaten und den Playback-Status, sobald dein Player startet.
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,});Beispiel: Lock-Screen-Steuerung umsetzen
Abschnitt mit dem Titel „Beispiel: Lock-Screen-Steuerung umsetzen“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; }});Übergeben null als Handler, um eine Aktion abzumelden.
Beispiel: Pause-Status beim Buffering
Abschnitt mit dem Titel „Beispiel: Pausenstatus beim Puffern“await MediaSession.setPlaybackState({ playbackState: 'paused' });// resume with 'playing' when your buffer is readyHäufige Stolperfallen
Abschnitt „Häufige Fallstricke“- Position aktuell halten: aufrufen
setPositionState, da das Abspielen oder Scrubbing auf Android sonst fehlerhaft wirkt. - Artwork-URLs: Verwende HTTPS-Assets, die vom Gerät erreichbar sind; große Bilder verlangsamen die Aktualisierung des Sperrbildschirms.
- Handler-Lebensdauer: Registriere Handler einmalig beim Player-Setup, nicht bei jedem Track-Wechsel.
API Übersicht
Abschnitt „API Übersicht“setMetadata
Abschnitt mit dem Titel “setMetadata”Setzt die Metadaten der aktuell abgespielten Medien.
import { MediaSession } from '@capgo/capacitor-media-session';
await MediaSession.setMetadata({ album: 'album' });setPlaybackState
Abschnitt mit dem Titel “setPlaybackState”Aktualisiert den Playback-Status der Media Session.
import { MediaSession } from '@capgo/capacitor-media-session';
await MediaSession.setPlaybackState({ playbackState: 'none' });setActionHandler
Abschnitt mit dem Titel “setActionHandler”Registriert einen Handler für eine Media-Session-Action.
import { MediaSession } from '@capgo/capacitor-media-session';
await MediaSession.setActionHandler({ action: 'play' }, (details) => { console.log(details);});setPositionState
Abschnitt mit dem Titel “setPositionState”Aktualisiert den Positionsstatus der aktiven Media Session.
import { MediaSession } from '@capgo/capacitor-media-session';
await MediaSession.setPositionState({ duration: 1000, playbackRate: 1, position: 10,});Typreferenz
Abschnitt mit dem Titel „Typreferenz“MetadataOptions
Abschnitt mit dem Titel „MetadataOptions“export interface MetadataOptions { album?: string; artist?: string; artwork?: MediaImage[]; title?: string;}PlaybackStateOptions
Abschnitt mit dem Titel „PlaybackStateOptions“export interface PlaybackStateOptions { playbackState: MediaSessionPlaybackState;}ActionHandlerOptions
Abschnitt mit dem Titel „ActionHandlerOptions“export interface ActionHandlerOptions { action: MediaSessionAction;}ActionHandler
Abschnitt mit dem Titel „ActionHandler“export type ActionHandler = (details: ActionDetails) => void;PositionStateOptions
Abschnitt mit dem Titel „PositionStateOptions“export interface PositionStateOptions { duration?: number; playbackRate?: number; position?: number;}MediaImage
Abschnitt mit dem Titel „MediaImage“export interface MediaImage { src: string; sizes?: string; type?: string;}MediaSessionPlaybackState
Abschnitt mit dem Titel „MediaSessionPlaybackState“export type MediaSessionPlaybackState = 'none' | 'paused' | 'playing';MediaSessionAction
Abschnitt mit dem Titel „MediaSessionAction“export type MediaSessionAction = | 'play' | 'pause' | 'seekbackward' | 'seekforward' | 'previoustrack' | 'nexttrack' | 'seekto' | 'stop';Source of Truth
Abschnitt mit dem Titel „Source of Truth“Diese Seite wird aus dem Plugin generiert src/definitions.ts. Führe den Sync erneut aus, wenn sich das öffentliche API upstream ändert.
Weiter geht's nach Getting Started
Abschnitt: „Weiter geht’s mit Getting Started“Wenn du es nutzt Erste Schritte um Dashboard- und API-Operationen zu planen, verbinde es mit Nutzung von @capgo/capacitor-media-session für die native Funktion bei der Verwendung von @capgo/capacitor-media-session, API Übersicht für Details zur Implementierung im API Overview, Einführung für die Implementierungsdetails in der Einleitung, API Schlüssel für das Implementierungsdetail in API Keys und Geräte für das Implementierungsdetail in Devices.