UNPKG

@pixi/sound

Version:

WebAudio API playback library with filters

1 lines 3.52 kB
{"version":3,"file":"HTMLAudioContext.mjs","sources":["../../src/htmlaudio/HTMLAudioContext.ts"],"sourcesContent":["import { EventEmitter } from 'pixi.js';\nimport { Filter } from '../filters/Filter';\nimport { IMediaContext } from '../interfaces/IMediaContext';\n\n/**\n * The fallback version of WebAudioContext which uses `<audio>` instead of WebAudio API.\n * @memberof htmlaudio\n * @extends PIXI.EventEmitter\n */\nclass HTMLAudioContext extends EventEmitter implements IMediaContext\n{\n /** Current global speed from 0 to 1 */\n public speed = 1;\n\n /** Current muted status of the context */\n public muted = false;\n\n /** Current volume from 0 to 1 */\n public volume = 1;\n\n /** Current paused status */\n public paused = false;\n\n /** Internal trigger when volume, mute or speed changes */\n public refresh(): void\n {\n this.emit('refresh');\n }\n\n /** Internal trigger paused changes */\n public refreshPaused(): void\n {\n this.emit('refreshPaused');\n }\n\n /**\n * HTML Audio does not support filters, this is non-functional API.\n */\n public get filters(): Filter[]\n {\n console.warn('HTML Audio does not support filters');\n\n return null;\n }\n public set filters(_filters: Filter[])\n {\n console.warn('HTML Audio does not support filters');\n }\n\n /**\n * HTML Audio does not support `audioContext`\n * @readonly\n * @type {AudioContext}\n */\n public get audioContext(): AudioContext\n {\n console.warn('HTML Audio does not support audioContext');\n\n return null;\n }\n\n /**\n * Toggles the muted state.\n * @return The current muted state.\n */\n public toggleMute(): boolean\n {\n this.muted = !this.muted;\n this.refresh();\n\n return this.muted;\n }\n\n /**\n * Toggles the paused state.\n * @return The current paused state.\n */\n public togglePause(): boolean\n {\n this.paused = !this.paused;\n this.refreshPaused();\n\n return this.paused;\n }\n\n /** Destroy and don't use after this */\n public destroy(): void\n {\n this.removeAllListeners();\n }\n}\n\nexport { HTMLAudioContext };\n"],"names":[],"mappings":";;AASA,MAAM,yBAAyB,YAC/B,CAAA;AAAA,EADA,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA,CAAA;AAGI;AAAA,IAAA,IAAA,CAAO,KAAQ,GAAA,CAAA,CAAA;AAGf;AAAA,IAAA,IAAA,CAAO,KAAQ,GAAA,KAAA,CAAA;AAGf;AAAA,IAAA,IAAA,CAAO,MAAS,GAAA,CAAA,CAAA;AAGhB;AAAA,IAAA,IAAA,CAAO,MAAS,GAAA,KAAA,CAAA;AAAA,GAAA;AAAA;AAAA,EAGT,OACP,GAAA;AACI,IAAA,IAAA,CAAK,KAAK,SAAS,CAAA,CAAA;AAAA,GACvB;AAAA;AAAA,EAGO,aACP,GAAA;AACI,IAAA,IAAA,CAAK,KAAK,eAAe,CAAA,CAAA;AAAA,GAC7B;AAAA;AAAA;AAAA;AAAA,EAKA,IAAW,OACX,GAAA;AACI,IAAA,OAAA,CAAQ,KAAK,qCAAqC,CAAA,CAAA;AAElD,IAAO,OAAA,IAAA,CAAA;AAAA,GACX;AAAA,EACA,IAAW,QAAQ,QACnB,EAAA;AACI,IAAA,OAAA,CAAQ,KAAK,qCAAqC,CAAA,CAAA;AAAA,GACtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,IAAW,YACX,GAAA;AACI,IAAA,OAAA,CAAQ,KAAK,0CAA0C,CAAA,CAAA;AAEvD,IAAO,OAAA,IAAA,CAAA;AAAA,GACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,UACP,GAAA;AACI,IAAK,IAAA,CAAA,KAAA,GAAQ,CAAC,IAAK,CAAA,KAAA,CAAA;AACnB,IAAA,IAAA,CAAK,OAAQ,EAAA,CAAA;AAEb,IAAA,OAAO,IAAK,CAAA,KAAA,CAAA;AAAA,GAChB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,WACP,GAAA;AACI,IAAK,IAAA,CAAA,MAAA,GAAS,CAAC,IAAK,CAAA,MAAA,CAAA;AACpB,IAAA,IAAA,CAAK,aAAc,EAAA,CAAA;AAEnB,IAAA,OAAO,IAAK,CAAA,MAAA,CAAA;AAAA,GAChB;AAAA;AAAA,EAGO,OACP,GAAA;AACI,IAAA,IAAA,CAAK,kBAAmB,EAAA,CAAA;AAAA,GAC5B;AACJ;;;;"}