メインコンテンツへスキップ

はじめに

GitHub

AIアシストセットアップを使ってプラグインをインストールできます。以下のコマンドで、お使いのAIツールに Capgo スキルを追加してください:

ターミナルウィンドウ
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

次に、以下のプロンプトを使用します:

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

クイックスタート

「Quick start」セクション
import { AudioSession } from '@capgo/capacitor-audio-session';
await AudioSession.overrideOutput('speaker');

よくある落とし穴

「Common pitfalls」セクション
  • iOSフォーカス: ルーティングAPIはiOSのオーディオセッション動作を対象とします。
  • 復元:呼び出す 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. の実装詳細