audiocontext toggle

This commit is contained in:
vapormusic 2021-12-30 11:50:42 +07:00
parent 7072ccc30c
commit a256a72652
5 changed files with 31 additions and 14 deletions

View file

@ -18,9 +18,19 @@ var CiderAudio = {
}
}, 1000);
},
off: function(){
try{
CiderAudio.audioNodes.gainNode.disconnect();
CiderAudio.source.connect(CiderAudio.context.destination);} catch(e){}
},
connectContext: function (mediaElem){
if (!CiderAudio.context){
CiderAudio.context = new (window.AudioContext || window.webkitAudioContext);
}
if (!CiderAudio.source){
CiderAudio.source = CiderAudio.context.createMediaElementSource(mediaElem);
} else {try{CiderAudio.source.disconnect(CiderAudio.context.destination)}catch(e){}}
CiderAudio.audioNodes.gainNode = CiderAudio.context.createGain()
CiderAudio.source.connect(CiderAudio.audioNodes.gainNode);
CiderAudio.audioNodes.gainNode.connect(CiderAudio.context.destination);
@ -30,7 +40,7 @@ var CiderAudio = {
},
normalizerOn: function (){},
normalizerOff: function (){
CiderAudio.audioNodes.gainNode.gain.value = 1;
CiderAudio.audioNodes.gainNode.gain.setTargetAtTime(1, CiderAudio.context.currentTime+ 1, 0.5);
}
}

File diff suppressed because one or more lines are too long

View file

@ -594,7 +594,6 @@
}
</script>
<script src="index.js?v=1"></script>
<script src="/audio/tuna.js?v=1"></script>
<script src="/audio/audio.js?v=1"></script>
</body>
</html>

View file

@ -27,6 +27,16 @@
</div>
<div class="md-option-line">
<div class="md-option-segment">
Enable AudioContext Functionality
<br>
<small>Enabling AudioContext functionality will allow for extended audio features like Audio Normalization , Equalizers and Visualizers, however on some systems this may cause stuttering in audio tracks.</small>
</div>
<div class="md-option-segment md-option-segment_auto">
<input type="checkbox" v-model="app.cfg.advanced.AudioContext" v-on:change="toggleAudioContext" switch/>
</div>
</div>
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext">
<div class="md-option-segment" >
Audio Normalization
</div>
<div class="md-option-segment md-option-segment_auto">
@ -451,16 +461,6 @@
<div class="md-option-header">
<span>Unfinished / Non Functional</span>
</div>
<div class="md-option-line">
<div class="md-option-segment">
Enable AudioContext Functionality
<br>
<small>Enabling AudioContext functionality will allow for extended audio features like Equalizers and Visualizers, however on some systems this may cause stuttering in audio tracks.</small>
</div>
<div class="md-option-segment md-option-segment_auto">
<input type="checkbox" switch/>
</div>
</div>
<div class="md-option-line">
<div class="md-option-segment">
Theme
@ -555,6 +555,15 @@
}
},
methods: {
toggleAudioContext: function(){
if (app.cfg.advanced.AudioContext){
CiderAudio.init();
if (app.cfg.audio.normalization){
CiderAudio.normalizerOn()}
} else {
CiderAudio.off();
}
},
toggleNormalization : function(){
if (app.cfg.audio.normalization){
CiderAudio.normalizerOn()