Socket
Socket
Sign inDemoInstall

@cher-ami/audio-manager

Package Overview
Dependencies
6
Maintainers
5
Versions
13
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.1.2 to 0.1.3

dist/index.cjs

2

dist/AudioManager.d.ts

@@ -34,3 +34,3 @@ import { TDeferredPromise } from "@wbe/deferred-promise";

canplayPromise: TDeferredPromise<void>;
constructor(audioFileUrl: string, options: {
constructor(audioFileUrl: string, options?: {
volume?: number;

@@ -37,0 +37,0 @@ loop?: boolean;

@@ -1,2 +0,2 @@

import{StateSignal as i}from"@zouloux/signal";import{deferredPromise as t}from"@wbe/deferred-promise";import s from"@wbe/debug";import{gsap as o}from"gsap";import{useState as e,useEffect as a}from"react";function n(){return n=Object.assign||function(i){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var o in s)Object.prototype.hasOwnProperty.call(s,o)&&(i[o]=s[o])}return i},n.apply(this,arguments)}const d=s("AudioManager"),h=i(!1);class u{constructor(i,s){this.audioFileUrl=void 0,this.options=void 0,this.audioCtx=void 0,this.panner=void 0,this.listener=void 0,this.$audio=void 0,this.track=void 0,this.isLoading=void 0,this.isLoaded=void 0,this.isPlaying=void 0,this.isMuted=void 0,this.canplayPromise=void 0,this.handleCanplay=()=>{d("canplay"),this.canplayPromise.resolve(),this.isLoading=!1,this.isLoaded=!0},this.handleEnded=()=>{d("ended"),this.isPlaying=!1,this.options.loop&&this.play()},this.handleMuteAll=i=>{i?this.mute():this.unmute()},this._volumeIsInProcess=void 0,this.audioFileUrl=i,this.options=n({},{volume:1,loop:!1},s),d("options",this.options),this.isPlaying=!1,this.isLoading=!0,this.isLoaded=!1,this.isMuted=!1,this.canplayPromise=t(),this.load(),this.initEvent()}load(){const i=window.AudioContext||window.webkitAudioContext;this.audioCtx=new i,this.panner=new StereoPannerNode(this.audioCtx,{pan:0}),this.$audio=new Audio(this.audioFileUrl),this.track=this.audioCtx.createMediaElementSource(this.$audio),this.track.connect(this.panner).connect(this.audioCtx.destination)}initEvent(){this.$audio&&(this.$audio.addEventListener("canplay",this.handleCanplay),this.$audio.addEventListener("ended",this.handleEnded),h.add(this.handleMuteAll))}async play(){d("play",this.options),await this.canplayPromise.promise,"suspended"===this.audioCtx.state&&this.audioCtx.resume(),this.isPlaying?d("play > is already playIn, return"):(this.$audio.play(),this.isPlaying=!0)}pause(){this.isPlaying&&(this.$audio.pause(),this.isPlaying=!1)}stop(){d("stop"),this.$audio.pause(),this.$audio.currentTime=0,this.isPlaying=!1}replay(){d("replay"),this.stop(),this.play()}mute(){d("mute",this.$audio.volume),this.isMuted||(this.$audio.volume=0,this.isMuted=!0)}unmute(){d("unmute",this.$audio.volume),this.isMuted&&(this.$audio.volume=this.options.volume,this.isMuted=!1)}enableLoop(){d("loop"),this.options.loop=!0}disableLoop(){d("disable loop"),this.options.loop=!1}pan(i){d("pan",i),this.panner.pan.value=i}async fade(i,t,s=1,o="none"){d("fade >",i,t,this.options),this.isPlaying||this.play(),await this.processVolume(i,t,s,o),d("fade ended!",this.$audio.volume)}async fadeIn(i=1,t="none"){d("fadeIn"),this.play(),await this.processVolume(0,this.options.volume,i,t),d("fadeIn ended!")}async fadeOut(i=1,t="none"){d("fadeOut"),await this.processVolume(this.options.volume,0,i,t),d("fadeOut ended!")}destroy(){var i;d("destroy"),this.pause(),null==(i=this.track)||i.disconnect(),this.$audio=null,h.remove(this.handleMuteAll)}processVolume(i,t,s=1,e="none"){const a=Math.max(0,Math.min(i,1)),n=Math.max(0,Math.min(t,1));return new Promise(i=>{o.fromTo(this.$audio,{volume:this._volumeIsInProcess?this.$audio.volume:a},{volume:n,overwrite:!0,ease:e,duration:s,onUpdate:()=>{this._volumeIsInProcess=!0,d("this.$audio.volume",this.$audio.volume)},onComplete:()=>{this._volumeIsInProcess=!1,i()}})})}}const l=(i,t,s=[])=>{const[o,n]=e(null);return a(()=>{const s=new u(i,t);return n(s),()=>{s.destroy()}},s),o};export{u as AudioManager,l as useAudio};
import{StateSignal as i}from"@zouloux/signal";import{deferredPromise as t}from"@wbe/deferred-promise";import s from"@wbe/debug";import{gsap as o}from"gsap";import{useState as e,useEffect as a}from"react";function n(){return n=Object.assign?Object.assign.bind():function(i){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var o in s)Object.prototype.hasOwnProperty.call(s,o)&&(i[o]=s[o])}return i},n.apply(this,arguments)}const d=s("AudioManager"),h=i(!1);class u{constructor(i,s={}){this.audioFileUrl=void 0,this.options=void 0,this.audioCtx=void 0,this.panner=void 0,this.listener=void 0,this.$audio=void 0,this.track=void 0,this.isLoading=void 0,this.isLoaded=void 0,this.isPlaying=void 0,this.isMuted=void 0,this.canplayPromise=void 0,this.handleCanplay=()=>{d("canplay"),this.canplayPromise.resolve(),this.isLoading=!1,this.isLoaded=!0},this.handleEnded=()=>{d("ended"),this.isPlaying=!1,this.options.loop&&this.play()},this.handleMuteAll=i=>{i?this.mute():this.unmute()},this._volumeIsInProcess=void 0,this.audioFileUrl=i,this.options=n({},{volume:1,loop:!1},s),d("options",this.options),this.isPlaying=!1,this.isLoading=!0,this.isLoaded=!1,this.isMuted=!1,this.canplayPromise=t(),this.load(),this.initEvent()}load(){const i=window.AudioContext||window.webkitAudioContext;this.audioCtx=new i,this.panner=new StereoPannerNode(this.audioCtx,{pan:0}),this.$audio=new Audio(this.audioFileUrl),this.$audio.crossOrigin="anonymous",this.track=this.audioCtx.createMediaElementSource(this.$audio),this.track.connect(this.panner).connect(this.audioCtx.destination)}initEvent(){this.$audio&&(this.$audio.addEventListener("canplay",this.handleCanplay),this.$audio.addEventListener("ended",this.handleEnded),h.add(this.handleMuteAll))}async play(){d("play",this.options),await this.canplayPromise.promise,"suspended"===this.audioCtx.state&&this.audioCtx.resume(),this.isPlaying?d("play > is already playIn, return"):(this.$audio.play(),this.isPlaying=!0)}pause(){this.isPlaying&&(this.$audio.pause(),this.isPlaying=!1)}stop(){d("stop"),this.$audio.pause(),this.$audio.currentTime=0,this.isPlaying=!1}replay(){d("replay"),this.stop(),this.play()}mute(){d("mute",this.$audio.volume),this.isMuted||(this.$audio.volume=0,this.isMuted=!0)}unmute(){d("unmute",this.$audio.volume),this.isMuted&&(this.$audio.volume=this.options.volume,this.isMuted=!1)}enableLoop(){d("loop"),this.options.loop=!0}disableLoop(){d("disable loop"),this.options.loop=!1}pan(i){d("pan",i),this.panner.pan.value=i}async fade(i,t,s=1,o="none"){d("fade >",i,t,this.options),this.isPlaying||this.play(),await this.processVolume(i,t,s,o),d("fade ended!",this.$audio.volume)}async fadeIn(i=1,t="none"){d("fadeIn"),this.play(),await this.processVolume(0,this.options.volume,i,t),d("fadeIn ended!")}async fadeOut(i=1,t="none"){d("fadeOut"),await this.processVolume(this.options.volume,0,i,t),d("fadeOut ended!")}destroy(){var i;d("destroy"),this.pause(),null==(i=this.track)||i.disconnect(),this.$audio=null,h.remove(this.handleMuteAll)}processVolume(i,t,s=1,e="none"){const a=Math.max(0,Math.min(i,1)),n=Math.max(0,Math.min(t,1));return new Promise(i=>{o.fromTo(this.$audio,{volume:this._volumeIsInProcess?this.$audio.volume:a},{volume:n,overwrite:!0,ease:e,duration:s,onUpdate:()=>{this._volumeIsInProcess=!0,d("this.$audio.volume",this.$audio.volume)},onComplete:()=>{this._volumeIsInProcess=!1,i()}})})}}const l=(i,t,s=[])=>{const[o,n]=e(null);return a(()=>{const s=new u(i,t);return n(s),()=>{s.destroy()}},s),o};export{u as AudioManager,l as useAudio};
//# sourceMappingURL=index.modern.js.map

@@ -1,2 +0,2 @@

!function(i,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@zouloux/signal"),require("@wbe/deferred-promise"),require("@wbe/debug"),require("gsap"),require("react")):"function"==typeof define&&define.amd?define(["exports","@zouloux/signal","@wbe/deferred-promise","@wbe/debug","gsap","react"],e):e((i||self).audioManager={},i.signal,i.deferredPromise,i.debug,i.gsap,i.react)}(this,function(i,e,t,o,n,s){function a(i){return i&&"object"==typeof i&&"default"in i?i:{default:i}}function u(){return u=Object.assign||function(i){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(i[o]=t[o])}return i},u.apply(this,arguments)}var d=/*#__PURE__*/a(o).default("AudioManager"),r=e.StateSignal(!1),l=/*#__PURE__*/function(){function i(i,e){var o=this;this.audioFileUrl=void 0,this.options=void 0,this.audioCtx=void 0,this.panner=void 0,this.listener=void 0,this.$audio=void 0,this.track=void 0,this.isLoading=void 0,this.isLoaded=void 0,this.isPlaying=void 0,this.isMuted=void 0,this.canplayPromise=void 0,this.handleCanplay=function(){d("canplay"),o.canplayPromise.resolve(),o.isLoading=!1,o.isLoaded=!0},this.handleEnded=function(){d("ended"),o.isPlaying=!1,o.options.loop&&o.play()},this.handleMuteAll=function(i){i?o.mute():o.unmute()},this._volumeIsInProcess=void 0,this.audioFileUrl=i,this.options=u({},{volume:1,loop:!1},e),d("options",this.options),this.isPlaying=!1,this.isLoading=!0,this.isLoaded=!1,this.isMuted=!1,this.canplayPromise=t.deferredPromise(),this.load(),this.initEvent()}var e=i.prototype;return e.load=function(){var i=window.AudioContext||window.webkitAudioContext;this.audioCtx=new i,this.panner=new StereoPannerNode(this.audioCtx,{pan:0}),this.$audio=new Audio(this.audioFileUrl),this.track=this.audioCtx.createMediaElementSource(this.$audio),this.track.connect(this.panner).connect(this.audioCtx.destination)},e.initEvent=function(){this.$audio&&(this.$audio.addEventListener("canplay",this.handleCanplay),this.$audio.addEventListener("ended",this.handleEnded),r.add(this.handleMuteAll))},e.play=function(){try{var i=this;return d("play",i.options),Promise.resolve(i.canplayPromise.promise).then(function(){"suspended"===i.audioCtx.state&&i.audioCtx.resume(),i.isPlaying?d("play > is already playIn, return"):(i.$audio.play(),i.isPlaying=!0)})}catch(i){return Promise.reject(i)}},e.pause=function(){this.isPlaying&&(this.$audio.pause(),this.isPlaying=!1)},e.stop=function(){d("stop"),this.$audio.pause(),this.$audio.currentTime=0,this.isPlaying=!1},e.replay=function(){d("replay"),this.stop(),this.play()},e.mute=function(){d("mute",this.$audio.volume),this.isMuted||(this.$audio.volume=0,this.isMuted=!0)},e.unmute=function(){d("unmute",this.$audio.volume),this.isMuted&&(this.$audio.volume=this.options.volume,this.isMuted=!1)},e.enableLoop=function(){d("loop"),this.options.loop=!0},e.disableLoop=function(){d("disable loop"),this.options.loop=!1},e.pan=function(i){d("pan",i),this.panner.pan.value=i},e.fade=function(i,e,t,o){void 0===t&&(t=1),void 0===o&&(o="none");try{var n=this;return d("fade >",i,e,n.options),n.isPlaying||n.play(),Promise.resolve(n.processVolume(i,e,t,o)).then(function(){d("fade ended!",n.$audio.volume)})}catch(i){return Promise.reject(i)}},e.fadeIn=function(i,e){void 0===i&&(i=1),void 0===e&&(e="none");try{var t=this;return d("fadeIn"),t.play(),Promise.resolve(t.processVolume(0,t.options.volume,i,e)).then(function(){d("fadeIn ended!")})}catch(i){return Promise.reject(i)}},e.fadeOut=function(i,e){void 0===i&&(i=1),void 0===e&&(e="none");try{return d("fadeOut"),Promise.resolve(this.processVolume(this.options.volume,0,i,e)).then(function(){d("fadeOut ended!")})}catch(i){return Promise.reject(i)}},e.destroy=function(){var i;d("destroy"),this.pause(),null==(i=this.track)||i.disconnect(),this.$audio=null,r.remove(this.handleMuteAll)},e.processVolume=function(i,e,t,o){var s=this;void 0===t&&(t=1),void 0===o&&(o="none");var a=Math.max(0,Math.min(i,1)),u=Math.max(0,Math.min(e,1));return new Promise(function(i){n.gsap.fromTo(s.$audio,{volume:s._volumeIsInProcess?s.$audio.volume:a},{volume:u,overwrite:!0,ease:o,duration:t,onUpdate:function(){s._volumeIsInProcess=!0,d("this.$audio.volume",s.$audio.volume)},onComplete:function(){s._volumeIsInProcess=!1,i()}})})},i}();i.AudioManager=l,i.useAudio=function(i,e,t){void 0===t&&(t=[]);var o=s.useState(null),n=o[0],a=o[1];return s.useEffect(function(){var t=new l(i,e);return a(t),function(){t.destroy()}},t),n}});
!function(i,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@zouloux/signal"),require("@wbe/deferred-promise"),require("@wbe/debug"),require("gsap"),require("react")):"function"==typeof define&&define.amd?define(["exports","@zouloux/signal","@wbe/deferred-promise","@wbe/debug","gsap","react"],e):e((i||self).audioManager={},i.signal,i.deferredPromise,i.debug,i.gsap,i.react)}(this,function(i,e,t,o,n,s){function a(i){return i&&"object"==typeof i&&"default"in i?i:{default:i}}function u(){return u=Object.assign?Object.assign.bind():function(i){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(i[o]=t[o])}return i},u.apply(this,arguments)}var d=/*#__PURE__*/a(o).default("AudioManager"),r=e.StateSignal(!1),l=/*#__PURE__*/function(){function i(i,e){var o=this;void 0===e&&(e={}),this.audioFileUrl=void 0,this.options=void 0,this.audioCtx=void 0,this.panner=void 0,this.listener=void 0,this.$audio=void 0,this.track=void 0,this.isLoading=void 0,this.isLoaded=void 0,this.isPlaying=void 0,this.isMuted=void 0,this.canplayPromise=void 0,this.handleCanplay=function(){d("canplay"),o.canplayPromise.resolve(),o.isLoading=!1,o.isLoaded=!0},this.handleEnded=function(){d("ended"),o.isPlaying=!1,o.options.loop&&o.play()},this.handleMuteAll=function(i){i?o.mute():o.unmute()},this._volumeIsInProcess=void 0,this.audioFileUrl=i,this.options=u({},{volume:1,loop:!1},e),d("options",this.options),this.isPlaying=!1,this.isLoading=!0,this.isLoaded=!1,this.isMuted=!1,this.canplayPromise=t.deferredPromise(),this.load(),this.initEvent()}var e=i.prototype;return e.load=function(){var i=window.AudioContext||window.webkitAudioContext;this.audioCtx=new i,this.panner=new StereoPannerNode(this.audioCtx,{pan:0}),this.$audio=new Audio(this.audioFileUrl),this.$audio.crossOrigin="anonymous",this.track=this.audioCtx.createMediaElementSource(this.$audio),this.track.connect(this.panner).connect(this.audioCtx.destination)},e.initEvent=function(){this.$audio&&(this.$audio.addEventListener("canplay",this.handleCanplay),this.$audio.addEventListener("ended",this.handleEnded),r.add(this.handleMuteAll))},e.play=function(){try{var i=this;return d("play",i.options),Promise.resolve(i.canplayPromise.promise).then(function(){"suspended"===i.audioCtx.state&&i.audioCtx.resume(),i.isPlaying?d("play > is already playIn, return"):(i.$audio.play(),i.isPlaying=!0)})}catch(i){return Promise.reject(i)}},e.pause=function(){this.isPlaying&&(this.$audio.pause(),this.isPlaying=!1)},e.stop=function(){d("stop"),this.$audio.pause(),this.$audio.currentTime=0,this.isPlaying=!1},e.replay=function(){d("replay"),this.stop(),this.play()},e.mute=function(){d("mute",this.$audio.volume),this.isMuted||(this.$audio.volume=0,this.isMuted=!0)},e.unmute=function(){d("unmute",this.$audio.volume),this.isMuted&&(this.$audio.volume=this.options.volume,this.isMuted=!1)},e.enableLoop=function(){d("loop"),this.options.loop=!0},e.disableLoop=function(){d("disable loop"),this.options.loop=!1},e.pan=function(i){d("pan",i),this.panner.pan.value=i},e.fade=function(i,e,t,o){void 0===t&&(t=1),void 0===o&&(o="none");try{var n=this;return d("fade >",i,e,n.options),n.isPlaying||n.play(),Promise.resolve(n.processVolume(i,e,t,o)).then(function(){d("fade ended!",n.$audio.volume)})}catch(i){return Promise.reject(i)}},e.fadeIn=function(i,e){void 0===i&&(i=1),void 0===e&&(e="none");try{var t=this;return d("fadeIn"),t.play(),Promise.resolve(t.processVolume(0,t.options.volume,i,e)).then(function(){d("fadeIn ended!")})}catch(i){return Promise.reject(i)}},e.fadeOut=function(i,e){void 0===i&&(i=1),void 0===e&&(e="none");try{return d("fadeOut"),Promise.resolve(this.processVolume(this.options.volume,0,i,e)).then(function(){d("fadeOut ended!")})}catch(i){return Promise.reject(i)}},e.destroy=function(){var i;d("destroy"),this.pause(),null==(i=this.track)||i.disconnect(),this.$audio=null,r.remove(this.handleMuteAll)},e.processVolume=function(i,e,t,o){var s=this;void 0===t&&(t=1),void 0===o&&(o="none");var a=Math.max(0,Math.min(i,1)),u=Math.max(0,Math.min(e,1));return new Promise(function(i){n.gsap.fromTo(s.$audio,{volume:s._volumeIsInProcess?s.$audio.volume:a},{volume:u,overwrite:!0,ease:o,duration:t,onUpdate:function(){s._volumeIsInProcess=!0,d("this.$audio.volume",s.$audio.volume)},onComplete:function(){s._volumeIsInProcess=!1,i()}})})},i}();i.AudioManager=l,i.useAudio=function(i,e,t){void 0===t&&(t=[]);var o=s.useState(null),n=o[0],a=o[1];return s.useEffect(function(){var t=new l(i,e);return a(t),function(){t.destroy()}},t),n}});
//# sourceMappingURL=index.umd.js.map
{
"name": "@cher-ami/audio-manager",
"description": "A simple web audio manager",
"version": "0.1.2",
"version": "0.1.3",
"author": "cher-ami",
"license": "MIT",
"types": "dist/index.d.ts",
"source": "src/index.ts",
"main": "./dist/index.js",
"exports": {
"require": "./dist/index.cjs",
"default": "./dist/index.modern.js"
},
"main": "./dist/index.cjs",
"module": "./dist/index.module.js",
"unpkg": "./dist/index.umd.js",
"sideEffects": false,

@@ -15,2 +20,3 @@ "repository": {

},
"type": "module",
"keywords": [

@@ -36,3 +42,3 @@ "audio",

"limit": "2 kB",
"path": "dist/index.js"
"path": "dist/index.module.js"
}

@@ -42,3 +48,3 @@ ],

"@wbe/debug": "^1.0.0",
"gsap": "^3.10.3",
"gsap": "^3.11.0",
"@wbe/deferred-promise": "^2.4.0",

@@ -52,13 +58,13 @@ "@zouloux/signal": "^0.2.4"

"devDependencies": {
"microbundle": "^0.14.2",
"@size-limit/file": "^7.0.8",
"@types/node": "^17.0.23",
"@types/react": "^18.0.2",
"@types/react-dom": "^18.0.0",
"@vitejs/plugin-react": "^1.3.0",
"less": "^4.1.2",
"prettier": "^2.6.2",
"typescript": "^4.6.3",
"vite": "^2.9.1"
"microbundle": "^0.15.1",
"@size-limit/file": "^8.0.1",
"@types/node": "^18.7.9",
"@types/react": "^18.0.17",
"@types/react-dom": "^18.0.6",
"@vitejs/plugin-react": "^2.0.1",
"less": "^4.1.3",
"prettier": "^2.7.1",
"typescript": "^4.7.4",
"vite": "^3.0.9"
}
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc