快速入门
复制包含安装步骤和该插件完整 Markdown 指南的配置 prompt。
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 资源,大尺寸图片会拖慢锁屏界面的更新速度。
- 处理器生命周期:请在播放器初始化时注册一次处理器,而不是在每次切换曲目时都注册。
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 Overview 中的实现细节, 简介 关于 Introduction 中的实现细节, API 密钥 有关 API Keys 的实现细节,以及 设备 有关 Devices 的实现细节。