Panduan Memulai
Salin prompt setup yang berisi langkah install dan panduan markdown lengkap untuk plugin ini.
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.
Anda bisa menggunakan AI-Assisted Setup kami untuk menginstal plugin ini. Tambahkan skill Capgo ke tool AI Anda dengan command berikut:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsLalu gunakan prompt berikut:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-media-session` plugin in my project.Jika Anda lebih memilih Manual Setup, instal plugin dengan menjalankan perintah berikut dan ikuti petunjuk khusus platform di bawah ini:
bun add @capgo/capacitor-media-sessionbunx cap syncimport { MediaSession } from '@capgo/capacitor-media-session';Mulai cepat
Bagian berjudul “Mulai cepat”Publikasikan metadata dan status pemutaran saat player Anda dimulai.
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,});Contoh: menangani kontrol lock screen
Bagian berjudul “Contoh: menangani kontrol layar kunci”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; }});Gunakan null sebagai handler untuk mendaftarkan ulang aksi.
Contoh: status pause saat buffering
Bagian berjudul “Contoh: status pause saat buffering”await MediaSession.setPlaybackState({ playbackState: 'paused' });// resume with 'playing' when your buffer is readyKesalahan umum
Bagian berjudul “Kesalahan umum”- Jaga posisi tetap mutakhir: panggil
setPositionStatesaat pemutaran berlanjut atau scrubbing akan terasa rusak di Android. - URL artwork: gunakan aset HTTPS yang dapat diakses dari perangkat, gambar besar memperlambat pembaruan lock screen.
- Masa hidup handler: daftarkan handler sekali saat setup player, bukan setiap kali ganti track.
Ringkasan API
Bagian berjudul “Ikhtisar API”setMetadata
Bagian berjudul “setMetadata”Mengatur metadata media yang sedang diputar.
import { MediaSession } from '@capgo/capacitor-media-session';
await MediaSession.setMetadata({ album: 'album' });setPlaybackState
Bagian berjudul “setPlaybackState”Memperbarui status pemutaran sesi media.
import { MediaSession } from '@capgo/capacitor-media-session';
await MediaSession.setPlaybackState({ playbackState: 'none' });setActionHandler
Bagian berjudul “setActionHandler”Mendaftarkan handler untuk aksi sesi media.
import { MediaSession } from '@capgo/capacitor-media-session';
await MediaSession.setActionHandler({ action: 'play' }, (details) => { console.log(details);});setPositionState
Bagian berjudul “setPositionState”Memperbarui posisi state untuk media session yang aktif.
import { MediaSession } from '@capgo/capacitor-media-session';
await MediaSession.setPositionState({ duration: 1000, playbackRate: 1, position: 10,});Referensi Tipe
Bagian berjudul “Referensi Tipe”MetadataOptions
Bagian berjudul “MetadataOptions”export interface MetadataOptions { album?: string; artist?: string; artwork?: MediaImage[]; title?: string;}PlaybackStateOptions
Bagian berjudul “PlaybackStateOptions”export interface PlaybackStateOptions { playbackState: MediaSessionPlaybackState;}ActionHandlerOptions
Bagian berjudul “ActionHandlerOptions”export interface ActionHandlerOptions { action: MediaSessionAction;}ActionHandler
Bagian berjudul “ActionHandler”export type ActionHandler = (details: ActionDetails) => void;PositionStateOptions
Bagian berjudul “PositionStateOptions”export interface PositionStateOptions { duration?: number; playbackRate?: number; position?: number;}MediaImage
Bagian berjudul “MediaImage”export interface MediaImage { src: string; sizes?: string; type?: string;}MediaSessionPlaybackState
Bagian berjudul “MediaSessionPlaybackState”export type MediaSessionPlaybackState = 'none' | 'paused' | 'playing';MediaSessionAction
Bagian berjudul “MediaSessionAction”export type MediaSessionAction = | 'play' | 'pause' | 'seekbackward' | 'seekforward' | 'previoustrack' | 'nexttrack' | 'seekto' | 'stop';Sumber Kebenaran
Bagian berjudul “Sumber Kebenaran”Halaman ini dibuat dari plugin src/definitions.ts. Jalankan ulang sync saat API publik berubah di upstream.
Lanjutkan dari Getting Started
Bagian berjudul “Lanjutkan dari Getting Started”Jika Anda menggunakan Panduan Memulai untuk merencanakan operasi dashboard dan API, hubungkan dengan Menggunakan @capgo/capacitor-media-session untuk kapabilitas native di bagian Using @capgo/capacitor-media-session, Ringkasan API untuk detail implementasi di API Overview, Pendahuluan untuk detail implementasi di Introduction, Kunci API untuk detail implementasi di API Keys, dan Perangkat untuk detail implementasi di Devices.