audioplayer: fix s-s crash on folder change

This commit is contained in:
ed 2026-02-17 18:54:00 +00:00
parent d68028890d
commit f1a433a617

View file

@ -2888,9 +2888,9 @@ var afilt = (function () {
} }
function add_ss() { function add_ss() {
r.filters.push(mp.ssg = actx.createGain()); r.filters.push(afilt.ssg = actx.createGain());
r.filters.push(mp.ssa = actx.createAnalyser()); r.filters.push(afilt.ssa = actx.createAnalyser());
mp.ssa.fftSize = 256; afilt.ssa.fftSize = 256;
} }
function add_eq() { function add_eq() {
@ -10035,7 +10035,7 @@ var mpss = (function() {
var r = {}, config, ssint, npaint = 0; var r = {}, config, ssint, npaint = 0;
r.load = function () { r.load = function () {
if (!mp || !mp.ssg) if (!afilt.ssg)
return false; return false;
config = { config = {
@ -10058,7 +10058,7 @@ var mpss = (function() {
clearInterval(ssint); clearInterval(ssint);
ssint = null; ssint = null;
if (!mp) return; if (!mp) return;
if (mp.ssg) mp.ssg.gain.value = 1.0; if (afilt.ssg) afilt.ssg.gain.value = 1.0;
if (mp.au && mp.au._ss) mp.au.playbackRate = 1.0; if (mp.au && mp.au._ss) mp.au.playbackRate = 1.0;
if (mp.au2 && mp.au2._ss) mp.au2.playbackRate = 1.0; if (mp.au2 && mp.au2._ss) mp.au2.playbackRate = 1.0;
}; };
@ -10067,6 +10067,7 @@ var mpss = (function() {
var ae = mp.au; var ae = mp.au;
ae._ss = true; ae._ss = true;
var gain = afilt.ssg.gain;
var duration = ae.duration || 0; var duration = ae.duration || 0;
var slimit = duration * (config.sthresh / 100); var slimit = duration * (config.sthresh / 100);
@ -10078,7 +10079,7 @@ var mpss = (function() {
var is_silent = false; var is_silent = false;
if (in_limits) { if (in_limits) {
var analyser = mp.ssa; var analyser = afilt.ssa;
var da = new Uint8Array(analyser.frequencyBinCount); var da = new Uint8Array(analyser.frequencyBinCount);
analyser.getByteFrequencyData(da); analyser.getByteFrequencyData(da);
@ -10103,12 +10104,12 @@ var mpss = (function() {
if (Math.abs(ae.playbackRate - tspeed) > 0.01) { if (Math.abs(ae.playbackRate - tspeed) > 0.01) {
ae.playbackRate += (tspeed - ae.playbackRate) * config.rspeed; ae.playbackRate += (tspeed - ae.playbackRate) * config.rspeed;
} }
if (Math.abs(mp.ssg.gain.value - tvol) > 0.01) { if (Math.abs(gain.value - tvol) > 0.01) {
mp.ssg.gain.value += (tvol - mp.ssg.gain.value) * config.rspeed; gain.value += (tvol - gain.value) * config.rspeed;
} }
} else { } else {
ae.playbackRate = 1.0; ae.playbackRate = 1.0;
mp.ssg.gain.value = 1.0; gain.value = 1.0;
} }
} }