mirror of https://github.com/nealey/vail.git
Volume adjustment
This commit is contained in:
parent
f2302bff2a
commit
58b6f896d5
|
@ -0,0 +1,53 @@
|
||||||
|
/**
|
||||||
|
* @file Provides some base audio tools.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compute the special "Audio Context" time
|
||||||
|
*
|
||||||
|
* This is is a duration from now, in seconds.
|
||||||
|
*
|
||||||
|
* @param {AudioContext} context
|
||||||
|
* @param {Date} when Date to compute
|
||||||
|
* @returns audiocontext time
|
||||||
|
*/
|
||||||
|
function AudioContextTime(context, when) {
|
||||||
|
if (!when) return 0
|
||||||
|
let acOffset = Date.now() - (context.currentTime * Second)
|
||||||
|
return Math.max(when - acOffset, 0) / Second
|
||||||
|
}
|
||||||
|
|
||||||
|
class AudioSource {
|
||||||
|
/**
|
||||||
|
* A generic audio source
|
||||||
|
*
|
||||||
|
* @param {AudioContext} context
|
||||||
|
*/
|
||||||
|
constructor(context) {
|
||||||
|
this.context = context
|
||||||
|
this.masterGain = new GainNode(this.context)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Connect to an audio node
|
||||||
|
*
|
||||||
|
* @param {AudioNode} destinationNode
|
||||||
|
*/
|
||||||
|
connect(destinationNode) {
|
||||||
|
this.masterGain.connect(destinationNode)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the master gain for this audio source.
|
||||||
|
*
|
||||||
|
* @param {Number} value New gain value
|
||||||
|
*/
|
||||||
|
SetGain(value) {
|
||||||
|
this.masterGain.gain.value = value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export {
|
||||||
|
AudioContextTime,
|
||||||
|
AudioSource,
|
||||||
|
}
|
Loading…
Reference in New Issue