{"_id":"@djodjonx/gwen-plugin-audio","_rev":"8-336ab2dbfd05153f412f7b033f03f17b","name":"@djodjonx/gwen-plugin-audio","dist-tags":{"latest":"1.0.0"},"versions":{"0.3.1":{"name":"@djodjonx/gwen-plugin-audio","version":"0.3.1","_id":"@djodjonx/gwen-plugin-audio@0.3.1","maintainers":[{"name":"djodjonx","email":"djo.moutier@gmail.com"}],"dist":{"shasum":"9a52bcb76422ca4190ca9cb9d9304b2eb9c9256b","tarball":"https://registry.npmjs.org/@djodjonx/gwen-plugin-audio/-/gwen-plugin-audio-0.3.1.tgz","fileCount":5,"integrity":"sha512-gGq8WJaimJb2+OeGV34zpQIjcFThDxGMpS2Uf6OyEo37wPkkJih3mZLY1SVKiXKuUBOvTHge4Oh6GD5I22lL/w==","signatures":[{"sig":"MEUCIQCp/V2f0XginyPIS4torRWLByAwBoB78BUGwng8aQLXCQIgfWw4c7l555Y1UsAqVp6hSsbEFWMbvB2VJDeOq4CdvPc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12349},"gwen":{"serviceTypes":{"audio":{"from":"@djodjonx/gwen-plugin-audio","exportName":"AudioManager"}}},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","development":"./src/index.ts"}},"gitHead":"a340e36856533079cd3e903c6d82049d7b9993aa","scripts":{"dev":"vite","test":"vitest run","build":"vite build","watch":"vite build --watch"},"_npmUser":{"name":"djodjonx","email":"djo.moutier@gmail.com"},"_npmVersion":"10.9.4","description":"GWEN Audio Plugin","directories":{},"_nodeVersion":"22.21.0","dependencies":{"@djodjonx/gwen-kit":"workspace:*","@djodjonx/gwen-engine-core":"workspace:*"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","vitest":"^4.0.18","typescript":"^5.9.3","vite-plugin-dts":"^4.5.4"},"_npmOperationalInternal":{"tmp":"tmp/gwen-plugin-audio_0.3.1_1773053154574_0.23071720691640896","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@djodjonx/gwen-plugin-audio","version":"0.3.2","_id":"@djodjonx/gwen-plugin-audio@0.3.2","maintainers":[{"name":"djodjonx","email":"djo.moutier@gmail.com"}],"dist":{"shasum":"d0525868237231421ce0a2aa4355748c8e79edb8","tarball":"https://registry.npmjs.org/@djodjonx/gwen-plugin-audio/-/gwen-plugin-audio-0.3.2.tgz","fileCount":6,"integrity":"sha512-1MhCJrtZdkPQw87j7dq9YzorihCo1NBzK458t8zhiBhJszMkJrCO5TAR2qY7SiANjpTfVcwn2cO2s94z8ESCHg==","signatures":[{"sig":"MEUCIQCIp0gvl1Qx+GYn+ae3TT5O+1pa5DDxXGWnI/+MfR3maAIgEU+lHTOrgj/EwlUFyJV1dF0hpce6WiPLNHeXf4zThLw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27096},"gwen":{"serviceTypes":{"audio":{"from":"@djodjonx/gwen-plugin-audio","exportName":"AudioManager"}}},"main":"./dist/index.js","type":"module","_from":"file:djodjonx-gwen-plugin-audio-0.3.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","development":"./src/index.ts"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","watch":"vite build --watch"},"_npmUser":{"name":"djodjonx","email":"djo.moutier@gmail.com"},"_resolved":"/private/var/folders/vc/41dnkkc11kqfyrhq8hmhj9400000gn/T/1e99f25ff4ebcd0f4c514e1040e39ff1/djodjonx-gwen-plugin-audio-0.3.2.tgz","_integrity":"sha512-1MhCJrtZdkPQw87j7dq9YzorihCo1NBzK458t8zhiBhJszMkJrCO5TAR2qY7SiANjpTfVcwn2cO2s94z8ESCHg==","_npmVersion":"10.9.4","description":"GWEN Audio Plugin","directories":{},"_nodeVersion":"22.21.0","dependencies":{"@djodjonx/gwen-kit":"0.3.2","@djodjonx/gwen-engine-core":"0.3.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","vitest":"^4.0.18","typescript":"^5.9.3","vite-plugin-dts":"^4.5.4"},"_npmOperationalInternal":{"tmp":"tmp/gwen-plugin-audio_0.3.2_1773064742464_0.39642630506819265","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@djodjonx/gwen-plugin-audio","version":"0.3.3","_id":"@djodjonx/gwen-plugin-audio@0.3.3","maintainers":[{"name":"djodjonx","email":"djo.moutier@gmail.com"}],"dist":{"shasum":"aaf3364e91e2b45c336f022944c4228374425870","tarball":"https://registry.npmjs.org/@djodjonx/gwen-plugin-audio/-/gwen-plugin-audio-0.3.3.tgz","fileCount":6,"integrity":"sha512-xt6wAdHcsJXjSgeOdqsCIw163KqY6s82h1FShGlsO5dSaGjTW8fINoQ7HPPlMijRQu59cJzJ8bJQE92s84m/BQ==","signatures":[{"sig":"MEUCIH5qMpfzrpLMFv3xeBM4FGexKMpFjZwwjuqYC6WBunanAiEArxui6Cz/pnImQjNg5iMEliE3nk3lReJZUHbyX+xip94=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27096},"gwen":{"serviceTypes":{"audio":{"from":"@djodjonx/gwen-plugin-audio","exportName":"AudioManager"}}},"main":"./dist/index.js","type":"module","_from":"file:djodjonx-gwen-plugin-audio-0.3.3.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","development":"./src/index.ts"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","watch":"vite build --watch"},"_npmUser":{"name":"djodjonx","email":"djo.moutier@gmail.com"},"_resolved":"/private/var/folders/vc/41dnkkc11kqfyrhq8hmhj9400000gn/T/0ddddcf3bd3ff60c41aacbdf4674d5fa/djodjonx-gwen-plugin-audio-0.3.3.tgz","_integrity":"sha512-xt6wAdHcsJXjSgeOdqsCIw163KqY6s82h1FShGlsO5dSaGjTW8fINoQ7HPPlMijRQu59cJzJ8bJQE92s84m/BQ==","_npmVersion":"10.9.4","description":"GWEN Audio Plugin","directories":{},"_nodeVersion":"22.21.0","dependencies":{"@djodjonx/gwen-kit":"0.3.3","@djodjonx/gwen-engine-core":"0.3.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","vitest":"^4.0.18","typescript":"^5.9.3","vite-plugin-dts":"^4.5.4"},"_npmOperationalInternal":{"tmp":"tmp/gwen-plugin-audio_0.3.3_1773066086605_0.9262735914480171","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@djodjonx/gwen-plugin-audio","version":"0.3.4","_id":"@djodjonx/gwen-plugin-audio@0.3.4","maintainers":[{"name":"djodjonx","email":"djo.moutier@gmail.com"}],"dist":{"shasum":"fee5f3dabf30a73ab23d53cc08e0805f1ccbc0f2","tarball":"https://registry.npmjs.org/@djodjonx/gwen-plugin-audio/-/gwen-plugin-audio-0.3.4.tgz","fileCount":6,"integrity":"sha512-fP0xGXOzRUh2arsXv9mzy11fIJi6AUrvNzS1jjQaxGP6PVNG7uM1vDiAmLlIzXwzv+TgVKWBtYPVlqwusO46iA==","signatures":[{"sig":"MEUCIQC5r6BtXgWSb+6nXO6JHKxJGbhGye1vkNZ4L5PEIdluUAIgX4qx86RhwlSDJcnrPgaWJfqEEho81UqkiXqIhnX9+bE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27094},"gwen":{"serviceTypes":{"audio":{"from":"@djodjonx/gwen-plugin-audio","exportName":"AudioManager"}}},"main":"./dist/index.js","type":"module","_from":"file:djodjonx-gwen-plugin-audio-0.3.4.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","development":"./src/index.ts"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","watch":"vite build --watch"},"_npmUser":{"name":"djodjonx","email":"djo.moutier@gmail.com"},"_resolved":"/private/var/folders/vc/41dnkkc11kqfyrhq8hmhj9400000gn/T/9ad399b80e2dd13c6a89d86dc711c90e/djodjonx-gwen-plugin-audio-0.3.4.tgz","_integrity":"sha512-fP0xGXOzRUh2arsXv9mzy11fIJi6AUrvNzS1jjQaxGP6PVNG7uM1vDiAmLlIzXwzv+TgVKWBtYPVlqwusO46iA==","_npmVersion":"10.9.4","description":"GWEN Audio Plugin","directories":{},"_nodeVersion":"22.21.0","dependencies":{"@djodjonx/gwen-kit":"0.3.4","@djodjonx/gwen-engine-core":"0.3.4"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","vitest":"^4.0.18","typescript":"^5.9.3","vite-plugin-dts":"^4.5.4"},"_npmOperationalInternal":{"tmp":"tmp/gwen-plugin-audio_0.3.4_1773067656126_0.8614515465527015","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@djodjonx/gwen-plugin-audio","version":"0.3.5","_id":"@djodjonx/gwen-plugin-audio@0.3.5","maintainers":[{"name":"djodjonx","email":"djo.moutier@gmail.com"}],"dist":{"shasum":"f1f93c523f5493d9bc7c1b6f344e726840f3500b","tarball":"https://registry.npmjs.org/@djodjonx/gwen-plugin-audio/-/gwen-plugin-audio-0.3.5.tgz","fileCount":6,"integrity":"sha512-Il34joDveOQYgRIWC+6JLhTWIxS6w2Sj193CRtXRQKKGuUSiNBmTBAOUUJI7/z6x2ViiVOA7BNd78yyXkPUVKQ==","signatures":[{"sig":"MEQCIGz2+1wOWQ+ztXpVz4XBmumWueEkT1Dp2WiDqfUTd8zyAiAv6pjcwREDHBI9wVFucrzREtAHuLIb7AcpBn3eM0Jpvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27094},"gwen":{"serviceTypes":{"audio":{"from":"@djodjonx/gwen-plugin-audio","exportName":"AudioManager"}}},"main":"./dist/index.js","type":"module","_from":"file:djodjonx-gwen-plugin-audio-0.3.5.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","development":"./src/index.ts"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","watch":"vite build --watch"},"_npmUser":{"name":"djodjonx","email":"djo.moutier@gmail.com"},"_resolved":"/private/var/folders/vc/41dnkkc11kqfyrhq8hmhj9400000gn/T/fe7479c92a2d6001d5a64de1311e8cea/djodjonx-gwen-plugin-audio-0.3.5.tgz","_integrity":"sha512-Il34joDveOQYgRIWC+6JLhTWIxS6w2Sj193CRtXRQKKGuUSiNBmTBAOUUJI7/z6x2ViiVOA7BNd78yyXkPUVKQ==","_npmVersion":"10.9.4","description":"GWEN Audio Plugin","directories":{},"_nodeVersion":"22.21.0","dependencies":{"@djodjonx/gwen-kit":"0.3.5","@djodjonx/gwen-engine-core":"0.3.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","vitest":"^4.0.18","typescript":"^5.9.3","vite-plugin-dts":"^4.5.4"},"_npmOperationalInternal":{"tmp":"tmp/gwen-plugin-audio_0.3.5_1773067943596_0.3147387754392783","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"@djodjonx/gwen-plugin-audio","version":"0.3.6","_id":"@djodjonx/gwen-plugin-audio@0.3.6","maintainers":[{"name":"djodjonx","email":"djo.moutier@gmail.com"}],"dist":{"shasum":"5272fe5537f01e65960695c3bd47c1cf6748e5c9","tarball":"https://registry.npmjs.org/@djodjonx/gwen-plugin-audio/-/gwen-plugin-audio-0.3.6.tgz","fileCount":6,"integrity":"sha512-eb4OaOZlLCTigSil10VPsdjft0onAey3PAwGivhK5IxAkEsVVYkbUHSYab0QIAWD0AkPC1CcV1sdX1knUYj59w==","signatures":[{"sig":"MEUCIFEAgvAn5ULHj46r52jvDwq5dnSuKUx+B/IqdjzK4tIzAiEAm8s3izSPI1vmvjLOsu0mHptOyrFvlhYnGZS/M3IwThQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27055},"gwen":{"serviceTypes":{"audio":{"from":"@djodjonx/gwen-plugin-audio","exportName":"AudioManager"}}},"main":"./dist/index.js","type":"module","_from":"file:djodjonx-gwen-plugin-audio-0.3.6.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","watch":"vite build --watch"},"_npmUser":{"name":"djodjonx","email":"djo.moutier@gmail.com"},"_resolved":"/private/var/folders/vc/41dnkkc11kqfyrhq8hmhj9400000gn/T/8d2984295c571187d24f996a096c1a37/djodjonx-gwen-plugin-audio-0.3.6.tgz","_integrity":"sha512-eb4OaOZlLCTigSil10VPsdjft0onAey3PAwGivhK5IxAkEsVVYkbUHSYab0QIAWD0AkPC1CcV1sdX1knUYj59w==","_npmVersion":"10.9.4","description":"GWEN Audio Plugin","directories":{},"_nodeVersion":"22.21.0","dependencies":{"@djodjonx/gwen-kit":"0.3.6","@djodjonx/gwen-engine-core":"0.3.6"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","vitest":"^4.0.18","typescript":"^5.9.3","vite-plugin-dts":"^4.5.4"},"_npmOperationalInternal":{"tmp":"tmp/gwen-plugin-audio_0.3.6_1773070015668_0.23950652173379527","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"@djodjonx/gwen-plugin-audio","version":"0.3.7","_id":"@djodjonx/gwen-plugin-audio@0.3.7","maintainers":[{"name":"djodjonx","email":"djo.moutier@gmail.com"}],"dist":{"shasum":"47c4eb65327bfc06c88e76c64784f70c0f91565d","tarball":"https://registry.npmjs.org/@djodjonx/gwen-plugin-audio/-/gwen-plugin-audio-0.3.7.tgz","fileCount":6,"integrity":"sha512-l2Z4Cz421Zz979kYX5nzMyEbqrfac419HHtFY8/xnfFiN3MnHhgXJMMBMqKP69X4ix3/MaUoEbRy7fU1+0Mz/g==","signatures":[{"sig":"MEUCIH83TCuXg+h8iLH/BMbw/1dmXo9bo5H//z+Gqf5QHD3qAiEAi7RkVztFAYQfAYJwYQsuTHKPny/DThOIdFJFTieBw8g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26602},"gwen":{"serviceTypes":{"audio":{"from":"@djodjonx/gwen-plugin-audio","exportName":"AudioManager"}}},"main":"./dist/index.js","type":"module","_from":"file:djodjonx-gwen-plugin-audio-0.3.7.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","watch":"vite build --watch"},"_npmUser":{"name":"djodjonx","email":"djo.moutier@gmail.com"},"_resolved":"/private/var/folders/vc/41dnkkc11kqfyrhq8hmhj9400000gn/T/9d78460ac2f1ce651b18a142bd22aa68/djodjonx-gwen-plugin-audio-0.3.7.tgz","_integrity":"sha512-l2Z4Cz421Zz979kYX5nzMyEbqrfac419HHtFY8/xnfFiN3MnHhgXJMMBMqKP69X4ix3/MaUoEbRy7fU1+0Mz/g==","_npmVersion":"10.9.4","description":"GWEN Audio Plugin","directories":{},"_nodeVersion":"22.21.0","dependencies":{"@djodjonx/gwen-kit":"0.3.7","@djodjonx/gwen-engine-core":"0.3.7"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","vitest":"^4.0.18","typescript":"^5.9.3","vite-plugin-dts":"^4.5.4"},"_npmOperationalInternal":{"tmp":"tmp/gwen-plugin-audio_0.3.7_1773311965696_0.4862997430113547","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@djodjonx/gwen-plugin-audio","version":"1.0.0","description":"GWEN Audio Plugin","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"dependencies":{"@djodjonx/gwen-engine-core":"1.0.0","@djodjonx/gwen-kit":"1.0.0"},"devDependencies":{"typescript":"^5.9.3","vite":"^7.3.1","vite-plugin-dts":"^4.5.4","vitest":"^4.0.18"},"gwen":{"serviceTypes":{"audio":{"from":"@djodjonx/gwen-plugin-audio","exportName":"AudioManager"}}},"scripts":{"dev":"vite","build":"vite build","test":"vitest run","watch":"vite build --watch"},"_id":"@djodjonx/gwen-plugin-audio@1.0.0","_integrity":"sha512-fPP8iW2ZAdcBHr/R2M3EjgHo8KxWG0eXVrANjddlViXddSnceS+FeApN4UU6d0adSQt9DGfyOTqiveXp7MOB8g==","_resolved":"/private/var/folders/vc/41dnkkc11kqfyrhq8hmhj9400000gn/T/1b0d7bc73b980a7b3b92b31406673fc6/djodjonx-gwen-plugin-audio-1.0.0.tgz","_from":"file:djodjonx-gwen-plugin-audio-1.0.0.tgz","_nodeVersion":"22.21.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-fPP8iW2ZAdcBHr/R2M3EjgHo8KxWG0eXVrANjddlViXddSnceS+FeApN4UU6d0adSQt9DGfyOTqiveXp7MOB8g==","shasum":"c386459ff2ab84cde44e9d43410a738d00a7c1ee","tarball":"https://registry.npmjs.org/@djodjonx/gwen-plugin-audio/-/gwen-plugin-audio-1.0.0.tgz","fileCount":6,"unpackedSize":26602,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDpTiIM3quRqyLsW9etEwS/2xUnbC4jA+KhCbQ9KXw5swIgHjg3sbcsW+t/xunsTG1dkNOBVbesZVTSXxDr10kTvgk="}]},"_npmUser":{"name":"djodjonx","email":"djo.moutier@gmail.com"},"directories":{},"maintainers":[{"name":"djodjonx","email":"djo.moutier@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/gwen-plugin-audio_1.0.0_1773671189533_0.034999795339335726"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-09T10:45:54.445Z","modified":"2026-03-16T14:26:29.826Z","0.3.1":"2026-03-09T10:45:54.713Z","0.3.2":"2026-03-09T13:59:02.612Z","0.3.3":"2026-03-09T14:21:26.758Z","0.3.4":"2026-03-09T14:47:36.263Z","0.3.5":"2026-03-09T14:52:23.741Z","0.3.6":"2026-03-09T15:26:55.795Z","0.3.7":"2026-03-12T10:39:25.840Z","1.0.0":"2026-03-16T14:26:29.737Z"},"description":"GWEN Audio Plugin","maintainers":[{"name":"djodjonx","email":"djo.moutier@gmail.com"}],"readme":"#@djodjonx/gwen-plugin-audio\n\n**GWEN Audio Plugin — Web Audio API integration**\n\nManage sound effects, background music, and audio playback in your GWEN game.\n\n## Installation\n\n```bash\nnpm install@djodjonx/gwen-plugin-audio\n```\n\n## Quick Start\n\n### Register the Plugin\n\n```typescript\n// gwen.config.ts\nimport { defineConfig } from '@djodjonx/gwen-kit';\nimport { AudioPlugin } from '@djodjonx/gwen-plugin-audio';\n\nexport default defineConfig({\n  plugins: [new AudioPlugin({ masterVolume: 0.8 })],\n});\n```\n\n### Preload and Play Sounds\n\n```typescript\nimport type { EngineAPI } from '@djodjonx/gwen-engine-core';\n\nexport function createAudioSystem(api: EngineAPI) {\n  const audio = api.services.get('audio');\n\n  // Preload sounds\n  audio.preload('jump', '/sounds/jump.wav');\n  audio.preload('coin', '/sounds/coin.wav');\n  audio.preload('music', '/sounds/background.mp3');\n\n  // Play a sound effect\n  audio.play('jump');\n\n  // Play looping background music\n  audio.play('music', { loop: true, volume: 0.5 });\n}\n```\n\n## API Reference\n\n### `AudioPlugin(config?)`\n\nCreates an audio plugin instance.\n\n**Options:**\n\n- `masterVolume?: number` — Global volume multiplier (0-1, default: 1)\n\n### `preload(name: string, url: string)`\n\nPreload a sound file for later playback.\n\n- `name` — Identifier for the sound\n- `url` — Path to audio file (WAV, MP3, etc.)\n\n### `play(name: string, options?)`\n\nPlay a preloaded sound.\n\n**Options:**\n\n- `volume?: number` — Volume multiplier (0-1)\n- `pitch?: number` — Playback rate/pitch\n- `loop?: boolean` — Loop the sound\n\n### `stop(name: string)`\n\nStop all instances of a playing sound.\n\n### `setMasterVolume(volume: number)`\n\nChange the global master volume.\n\n## Examples\n\n### Background Music with Controls\n\n```typescript\nconst audio = api.services.get('audio');\n\n// Start music\naudio.preload('bgm', '/music/theme.mp3');\naudio.play('bgm', { loop: true, volume: 0.3 });\n\n// Later, stop it\naudio.stop('bgm');\n```\n\n### Sound Effects with Variations\n\n```typescript\n// Preload multiple hit sounds\naudio.preload('hit1', '/sfx/hit1.wav');\naudio.preload('hit2', '/sfx/hit2.wav');\naudio.preload('hit3', '/sfx/hit3.wav');\n\n// Play a random one on collision\nconst hits = ['hit1', 'hit2', 'hit3'];\nconst random = hits[Math.floor(Math.random() * hits.length)];\naudio.play(random, { pitch: 0.8 + Math.random() * 0.4 });\n```\n\n## Browser Compatibility\n\nUses the Web Audio API. Supported in all modern browsers:\n\n- Chrome/Edge 14+\n- Firefox 25+\n- Safari 6+\n\n## See Also\n\n- [@djodjonx/gwen-engine-core](../engine-core/) — Core engine\n- [@djodjonx/gwen-plugin-input](../plugin-input/) — Input handling\n- [@djodjonx/gwen-plugin-debug](../plugin-debug/) — Debug overlay\n","readmeFilename":"README.md"}