{"_id":"@anuradev/capacitor-audio-session","name":"@anuradev/capacitor-audio-session","dist-tags":{"latest":"8.0.0"},"versions":{"8.0.0":{"name":"@anuradev/capacitor-audio-session","version":"8.0.0","description":"Audio session and output routing for Capacitor","main":"dist/plugin.cjs.js","module":"dist/esm/index.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","author":{"name":"Raso Angelo"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/angeloraso/capacitor-audio-session.git"},"bugs":{"url":"https://github.com/angeloraso/capacitor-audio-session/issues"},"keywords":["capacitor","plugin","native","audio-session","audio-routing"],"scripts":{"verify":"npm run verify:ios && npm run verify:android && npm run verify:web","verify:ios":"xcodebuild -scheme AnuradevCapacitorAudioSession -destination generic/platform=iOS","verify:android":"cd android && ./gradlew clean build test && cd ..","verify:web":"npm run build","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","eslint":"eslint . --ext ts","prettier":"prettier \"**/*.{css,html,ts,js,java}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","docgen":"docgen --api AudioSessionPlugin --output-readme README.md --output-json dist/docs.json","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","prepublishOnly":"npm run build"},"devDependencies":{"@capacitor/android":"^8.0.0","@capacitor/core":"^8.0.0","@capacitor/docgen":"^0.3.1","@capacitor/ios":"^8.0.0","@ionic/eslint-config":"^0.4.0","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0","eslint":"^8.57.1","prettier":"^3.6.2","prettier-plugin-java":"^2.7.7","rimraf":"^6.1.0","rollup":"^4.53.2","swiftlint":"^2.0.0","typescript":"^5.9.3"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"prettier":"@ionic/prettier-config","swiftlint":"@ionic/swiftlint-config","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"_id":"@anuradev/capacitor-audio-session@8.0.0","gitHead":"b9731752682c51990d3aae9a7f8a753ab1c1d5bc","homepage":"https://github.com/angeloraso/capacitor-audio-session#readme","_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-eEUQeU7q1/7X7PPheUN9nlAiT+FTyR3IDdK+eW57o+pCvTsntOmMfHfESX8A7LrgesZFDBxi6Z7OosKM4ndUdA==","shasum":"d1a08f3109b0bab13471d6c798675705c35f5ef3","tarball":"https://registry.npmjs.org/@anuradev/capacitor-audio-session/-/capacitor-audio-session-8.0.0.tgz","fileCount":38,"unpackedSize":61643,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC/Bj3oa9BGkE1GeWD6fZdMsQ5DoCcdIIEWrCA1Ka4y8wIgGSnH0I1APOOWCW0ijbWqidYL93QKJL3+jnUdJssOs7o="}]},"_npmUser":{"name":"araso","email":"araso@anura.com.ar"},"directories":{},"maintainers":[{"name":"araso","email":"araso@anura.com.ar"},{"name":"anuradevelopers","email":"developers@anura.com.ar"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/capacitor-audio-session_8.0.0_1787315920311_0.29855757258754423"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-21T12:38:40.110Z","8.0.0":"2026-08-21T12:38:40.455Z","modified":"2026-08-21T12:38:40.708Z"},"maintainers":[{"name":"araso","email":"araso@anura.com.ar"},{"name":"anuradevelopers","email":"developers@anura.com.ar"}],"description":"Audio session and output routing for Capacitor","homepage":"https://github.com/angeloraso/capacitor-audio-session#readme","keywords":["capacitor","plugin","native","audio-session","audio-routing"],"repository":{"type":"git","url":"git+https://github.com/angeloraso/capacitor-audio-session.git"},"author":{"name":"Raso Angelo"},"bugs":{"url":"https://github.com/angeloraso/capacitor-audio-session/issues"},"license":"MIT","readme":"# @anuradev/capacitor-audio-session\n\nAudio session and output routing for Capacitor.\n\nThe plugin requires Android 10 (API 29) or newer. It supports voice communication, media, and ringtone audio-focus policies. iOS and Web are not implemented.\n\n## Install\n\n```bash\nnpm install @anuradev/capacitor-audio-session\nnpx cap sync\n```\n\n## Usage\n\n```typescript\nimport { AudioSession } from '@anuradev/capacitor-audio-session';\n\nconst state = await AudioSession.activate({\n  usage: 'voiceCommunication',\n  output: 'earpiece',\n});\n\nawait AudioSession.setOutput({ output: 'speaker' });\nawait AudioSession.deactivate();\n```\n\n`media` and `ringtone` use `MODE_NORMAL` and support only the system-selected output:\n\n```typescript\nawait AudioSession.activate({ usage: 'media' });\nawait AudioSession.deactivate();\n\nawait AudioSession.activate({ usage: 'ringtone' });\nawait AudioSession.deactivate();\n```\n\nThe player that produces a ringtone must also use native ringtone audio attributes. The focus request made by this plugin does not change the attributes of an existing player.\n\n## API\n\n```typescript\nactivate(options: ActivateOptions): Promise<AudioSessionState>;\ndeactivate(): Promise<AudioSessionState>;\nsetOutput(options: SetOutputOptions): Promise<AudioSessionState>;\ngetState(): Promise<AudioSessionState>;\naddListener(eventName: 'routeChanged', listener: (event: RouteChangedEvent) => void): Promise<PluginListenerHandle>;\naddListener(eventName: 'interruption', listener: (event: InterruptionEvent) => void): Promise<PluginListenerHandle>;\nremoveAllListeners(): Promise<void>;\n```\n\nAn active session cannot change its usage. Deactivate it before activating a different usage. `earpiece` and `speaker` outputs are only supported by `voiceCommunication` sessions.\n\nAn interruption with `type: 'began'` indicates an audio-focus loss. `shouldResume` is `true` for transient losses and `false` for permanent losses. A matching `ended` event is emitted if Android later restores focus.\n","readmeFilename":"README.md","_rev":"1-b045676040d97184369bf0f2bbd3ec81"}