시작하기
ℹ️ 플랫폼 지원: 오디오 세션 API는 iOS에서 사용할 수 있습니다. Android 및 웹에서 호출은 효과 없이 해결되므로 공유 로직을 유지할 수 있습니다.
-
패키지 설치
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)를 추가하세요. - 기타 플랫폼: 추가 설정이 필요하지 않습니다. 메서드는 빈 결과로 해결됩니다.