快速入门
复制一条配置 prompt,包含安装步骤和该插件的完整 Markdown 指南。
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.
你可以使用我们的 AI 辅助设置来安装插件。使用以下命令将 Capgo skills 添加到你的 AI 工具中:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins然后使用以下 prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-media-session` plugin in my project.如果你更倾向于手动设置,请运行以下命令安装插件,并参考下文针对各平台的具体说明:
bun add @capgo/capacitor-media-sessionbunx cap sync导入
“导入”章节import { MediaSession } from '@capgo/capacitor-media-session';快速入门
“快速开始”章节在播放器启动时发布元数据和播放状态。
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; }});传递 null 作为注销操作的处理器。
示例:缓冲时的暂停状态
标题为“示例:缓冲时的暂停状态”的部分await MediaSession.setPlaybackState({ playbackState: 'paused' });// resume with 'playing' when your buffer is ready常见坑点
标题为“常见坑点”的章节- 保持进度实时更新:调用
setPositionState否则在 Android 上,播放进度推进或拖动进度条时会感觉异常。 - 封面图 URL: 请使用设备可访问的 HTTPS 资源;大图会减慢锁屏更新速度。
- Handler 生命周期: 请在初始化播放器时注册一次 handler,而不是在每次切换曲目时都注册。
API 概览
“API 概览”章节setMetadata
“setMetadata” 章节设置当前正在播放的媒体元数据。
import { MediaSession } from '@capgo/capacitor-media-session';
await MediaSession.setMetadata({ album: 'album' });setPlaybackState
“setPlaybackState” 章节更新媒体会话的播放状态。
import { MediaSession } from '@capgo/capacitor-media-session';
await MediaSession.setPlaybackState({ playbackState: 'none' });setActionHandler
“setActionHandler” 章节为媒体会话操作注册处理程序。
import { MediaSession } from '@capgo/capacitor-media-session';
await MediaSession.setActionHandler({ action: 'play' }, (details) => { console.log(details);});setPositionState
“setPositionState” 章节更新当前活动媒体会话的进度状态。
import { MediaSession } from '@capgo/capacitor-media-session';
await MediaSession.setPositionState({ duration: 1000, playbackRate: 1, position: 10,});类型参考
“类型参考” 章节MetadataOptions
“MetadataOptions” 章节export interface MetadataOptions { album?: string; artist?: string; artwork?: MediaImage[]; title?: string;}PlaybackStateOptions
“PlaybackStateOptions” 章节export interface PlaybackStateOptions { playbackState: MediaSessionPlaybackState;}ActionHandlerOptions
“ActionHandlerOptions” 章节export interface ActionHandlerOptions { action: MediaSessionAction;}ActionHandler
“ActionHandler” 章节export type ActionHandler = (details: ActionDetails) => void;PositionStateOptions
“PositionStateOptions” 章节export interface PositionStateOptions { duration?: number; playbackRate?: number; position?: number;}MediaImage
“MediaImage” 章节export interface MediaImage { src: string; sizes?: string; type?: string;}MediaSessionPlaybackState
“MediaSessionPlaybackState” 章节export type MediaSessionPlaybackState = 'none' | 'paused' | 'playing';MediaSessionAction
“MediaSessionAction” 章节export type MediaSessionAction = | 'play' | 'pause' | 'seekbackward' | 'seekforward' | 'previoustrack' | 'nexttrack' | 'seekto' | 'stop';唯一数据源
“唯一可信来源”章节本页面由该插件的 src/definitions.ts当上游的公共 API 发生变化时,请重新运行 sync。
继续阅读入门指南
标题为“从入门指南继续”的章节如果你正在使用 快速入门 来规划 dashboard 和 API 操作,请将其连接至 使用 @capgo/capacitor-media-session 在“使用 @capgo/capacitor-media-session”中实现原生能力, API 概览 关于 API 概览中的实现细节, 简介 有关 Introduction 中的实现细节, API 密钥 有关 API Keys 中的实现细节,以及 设备 有关 Devices 中的实现细节。