はじめに
ℹ️ プラットフォームサポート: オーディオセッション API は iOS で利用可能です。Android と Web での呼び出しは影響なく解決するため、共有ロジックを保持できます。
-
パッケージをインストール
Terminal window npm i @capgo/capacitor-plugin-audiosessionTerminal window pnpm add @capgo/capacitor-plugin-audiosessionTerminal window yarn add @capgo/capacitor-plugin-audiosessionTerminal window bun add @capgo/capacitor-plugin-audiosession -
iOS プラットフォームを同期
Terminal window npx cap sync iosTerminal window pnpm cap sync iosTerminal window yarn cap sync iosTerminal window bunx cap sync ios
利用可能な出力を検査
Section titled “利用可能な出力を検査”import { AudioSession, AudioSessionPorts } from '@capgo/capacitor-plugin-audiosession';
const outputs = await AudioSession.currentOutputs();
if (outputs.includes(AudioSessionPorts.BLUETOOTH_A2DP)) { console.log('Bluetooth speaker connected');}スピーカーモードでのオーバーライド
Section titled “スピーカーモードでのオーバーライド”import { AudioSession, OutputOverrideType } from '@capgo/capacitor-plugin-audiosession';
await AudioSession.overrideOutput(OutputOverrideType.speaker);
// Restore system routing when you are doneawait AudioSession.overrideOutput(OutputOverrideType.default);ルート変更と中断イベントをリッスン
Section titled “ルート変更と中断イベントをリッスン”import { AudioSession, RouteChangeReasons, InterruptionTypes } from '@capgo/capacitor-plugin-audiosession';
const routeListener = await AudioSession.addListener('routeChanged', (reason) => { if (reason === RouteChangeReasons.NEW_DEVICE_AVAILABLE) { console.log('User connected a new audio route'); }});
const interruptionListener = await AudioSession.addListener('interruption', (type) => { if (type === InterruptionTypes.BEGAN) { // Pause playback while we are interrupted } else { // Resume playback }});
// Later during cleanupawait routeListener.remove();await interruptionListener.remove();- iOS: アプリがバックグラウンドでオーディオを再生する場合は、
ios/App/App/Info.plist内に必要なバックグラウンド オーディオ モード (audio、voiceなど) を追加してください。 - その他のプラットフォーム: 追加のセットアップは不要です。メソッドは空の結果で解決します。