Zum Inhalt springen

Erste Schritte

GitHub

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:

Terminalfenster
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

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

Terminalfenster
bun add @capgo/capacitor-media-session
bunx cap sync
import { MediaSession } from '@capgo/capacitor-media-session';

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

await MediaSession.setPlaybackState({ playbackState: 'paused' });
// resume with 'playing' when your buffer is ready
  • 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.

Setzt die Metadaten der aktuell abgespielten Medien.

import { MediaSession } from '@capgo/capacitor-media-session';
await MediaSession.setMetadata({ album: 'album' });

Aktualisiert den Playback-Status der Media Session.

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

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

Aktualisiert den Positionsstatus der aktiven Media Session.

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

Diese Seite wird aus dem Plugin generiert src/definitions.ts. Führe den Sync erneut aus, wenn sich das öffentliche API upstream ändert.

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.