mirror of
https://github.com/9001/copyparty.git
synced 2026-02-20 09:19:58 +10:00
audioplayer: fix eq/s-s compat
This commit is contained in:
@@ -1731,6 +1731,7 @@ function MPlayer() {
|
||||
r.ftimer = null;
|
||||
r.fade_in = function () {
|
||||
r.nopause();
|
||||
start_actx();
|
||||
r.fvol = 0;
|
||||
r.fdir = 0.025 * r.vol * (CHROME ? 1.5 : 1);
|
||||
if (r.au) {
|
||||
@@ -2836,10 +2837,12 @@ var afilt = (function () {
|
||||
bcfg_set('au_eq', r.eqen = false);
|
||||
bcfg_set('au_drc', r.drcen = false);
|
||||
}
|
||||
else if (v === true && r.drcen && !r.eqen)
|
||||
else if (v === true && (r.drcen || r.ssen) && !r.eqen)
|
||||
bcfg_set('au_eq', r.eqen = true);
|
||||
else if (v === false && !r.eqen)
|
||||
else if (v === false && !r.eqen) {
|
||||
bcfg_set('au_drc', r.drcen = false);
|
||||
bcfg_set('au_ss', r.ssen = false);
|
||||
}
|
||||
|
||||
r.drcn = null;
|
||||
|
||||
@@ -2856,6 +2859,9 @@ var afilt = (function () {
|
||||
au.id = au.id || Date.now();
|
||||
mp.acs = r.acst[au.id] = r.acst[au.id] || actx.createMediaElementSource(au);
|
||||
|
||||
if (r.ssen)
|
||||
add_ss();
|
||||
|
||||
if (r.eqen)
|
||||
add_eq();
|
||||
|
||||
@@ -2871,6 +2877,12 @@ var afilt = (function () {
|
||||
r.filters[r.filters.length - 1] : actx.destination);
|
||||
}
|
||||
|
||||
function add_ss() {
|
||||
r.filters.push(mp.au._gnod = actx.createGain());
|
||||
r.filters.push(mp.au._analyser = actx.createAnalyser());
|
||||
mp.au._analyser.fftSize = 256;
|
||||
}
|
||||
|
||||
function add_eq() {
|
||||
var min, max;
|
||||
min = max = r.gains[0];
|
||||
@@ -10021,28 +10033,13 @@ function skipSilence() {
|
||||
loopInterval: 25
|
||||
};
|
||||
|
||||
if (!ae._gnod)
|
||||
return;
|
||||
|
||||
if (!ae._ssa) {
|
||||
var ctx = new AudioContext();
|
||||
|
||||
var asrc = ctx.createMediaElementSource(ae);
|
||||
var analyser = ctx.createAnalyser();
|
||||
var gnod = ctx.createGain();
|
||||
|
||||
analyser.fftSize = 256;
|
||||
asrc.connect(analyser);
|
||||
analyser.connect(gnod);
|
||||
gnod.connect(ctx.destination);
|
||||
|
||||
ae._analyser = analyser;
|
||||
ae._gnod = gnod;
|
||||
ae._actx = ctx;
|
||||
ae._ssa = true;
|
||||
|
||||
ae.addEventListener('play', function() {
|
||||
if (ctx.state === 'suspended') ctx.resume();
|
||||
startLoop();
|
||||
});
|
||||
|
||||
ae.addEventListener('play', startLoop);
|
||||
ae.addEventListener('pause', stopLoop);
|
||||
ae.addEventListener('ended', stopLoop);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user