1
0
Fork 0
mirror of https://github.com/FrankerFaceZ/FrankerFaceZ.git synced 2025-06-28 05:15:54 +00:00
* Fixed: Attempt to resume a suspended audio context before giving up.
This commit is contained in:
SirStendec 2022-04-25 15:01:40 -04:00
parent 3291b95e55
commit 4b5827f98b
2 changed files with 22 additions and 4 deletions

View file

@ -1,7 +1,7 @@
{ {
"name": "frankerfacez", "name": "frankerfacez",
"author": "Dan Salvato LLC", "author": "Dan Salvato LLC",
"version": "4.33.2", "version": "4.33.3",
"description": "FrankerFaceZ is a Twitch enhancement suite.", "description": "FrankerFaceZ is a Twitch enhancement suite.",
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",

View file

@ -1533,18 +1533,36 @@ export default class PlayerBase extends Module {
return true; return true;
} }
createCompressor(inst, video) { createCompressor(inst, video, _cmp) {
if ( ! this.canCompress(inst) ) if ( ! this.canCompress(inst) )
return; return;
let comp = video._ffz_compressor; let comp = video._ffz_compressor;
if ( ! comp ) { if ( ! comp ) {
const ctx = new AudioContext(); const ctx = _cmp || new AudioContext();
if ( ! IS_FIREFOX && ctx.state === 'suspended' ) { if ( ! IS_FIREFOX && ctx.state === 'suspended' ) {
let timer;
const evt = () => {
clearTimeout(timer);
ctx.removeEventListener('statechange', evt);
if (ctx.state === 'suspended') {
this.log.info('Aborting due to browser auto-play policy.'); this.log.info('Aborting due to browser auto-play policy.');
return; return;
} }
this.createCompressor(inst, video, comp);
}
this.log.info('Attempting to resume suspended AudioContext.');
timer = setTimeout(evt, 100);
try {
ctx.addEventListener('statechange', evt);
ctx.resume();
} catch(err) { }
return;
}
video._ffz_context = ctx; video._ffz_context = ctx;
let src; let src;
try { try {