跳转至正文

快速入门

GitHub

你可以使用我们的 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-audio-session` plugin in my project.

如果你更倾向于手动设置,请运行以下命令安装插件,并参考下文针对各平台的具体说明:

终端窗口
npm install @capgo/capacitor-audio-session
npx cap sync
import { AudioSession } from '@capgo/capacitor-audio-session';
import { AudioSession } from '@capgo/capacitor-audio-session';
await AudioSession.overrideOutput('speaker');
  • iOS 焦点: routing APIs 针对 iOS audio session 行为进行优化。
  • 恢复:调用 overrideOutput('default') 通话结束后。
  • 排序:在 Twilio 或媒体插件启动前进行配置。

获取当前活跃的音频输出路由。

在 Web 和非 iOS 平台上,这会返回一个空数组。

import { AudioSession } from '@capgo/capacitor-audio-session';
const result = await AudioSession.currentOutputs();
console.log(result);

覆盖当前的音频输出路由。

使用 speaker 强制通过内置扬声器播放,或 default 恢复系统默认的音频路由。

import { AudioSession } from '@capgo/capacitor-audio-session';
const result = await AudioSession.overrideOutput('default');
console.log(result);

iOS 上可用的音频输出路由。

export enum AudioSessionPorts {
AIR_PLAY = 'airplay',
BLUETOOTH_LE = 'bluetooth-le',
BLUETOOTH_HFP = 'bluetooth-hfp',
BLUETOOTH_A2DP = 'bluetooth-a2dp',
BUILT_IN_SPEAKER = 'builtin-speaker',
BUILT_IN_RECEIVER = 'builtin-receiver',
HDMI = 'hdmi',
HEADPHONES = 'headphones',
LINE_OUT = 'line-out',
}

输出覆盖类型。 - default: 使用系统默认路由。 - speaker: 强制通过内置扬声器播放。

export type OutputOverrideType = 'default' | 'speaker';

输出覆盖请求的结果。

export type OverrideResult = {
success: boolean;
message: string;
};

音频路由发生变化时调用的监听器。

export type RouteChangeListener = (reason: RouteChangeReasons) => void;

音频会话被中断或结束时调用的监听器。

export type InterruptionListener = (type: InterruptionTypes) => void;
export enum RouteChangeReasons {
NEW_DEVICE_AVAILABLE = 'new-device-available',
OLD_DEVICE_UNAVAILABLE = 'old-device-unavailable',
CATEGORY_CHANGE = 'category-change',
OVERRIDE = 'override',
WAKE_FROM_SLEEP = 'wake-from-sleep',
NO_SUITABLE_ROUTE_FOR_CATEGORY = 'no-suitable-route-for-category',
ROUTE_CONFIGURATION_CHANGE = 'route-config-change',
UNKNOWN = 'unknown',
}
export enum InterruptionTypes {
BEGAN = 'began',
ENDED = 'ended',
}

本页面由该插件的 src/definitions.ts当上游的公共 API 发生变化时,请重新运行 sync。

如果你正在使用 快速入门 来规划原生媒体和界面行为,并将其与 使用 @capgo/capacitor-audio-session 在“使用 @capgo/capacitor-audio-session”中实现原生能力, 使用 @capgo/capacitor-live-activities 有关“使用 @capgo/capacitor-live-activities”中的原生能力, @capgo/capacitor-live-activities 关于 @capgo/capacitor-live-activities 的实现细节, 使用 @capgo/capacitor-video-player 用于“使用 @capgo/capacitor-video-player”中的原生能力,以及 @capgo/capacitor-video-player 有关 @capgo/capacitor-video-player. 中的实现细节