You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-10 13:00:37 +00:00
[HTML5] Use browser mix rate by default on the Web.
Browsers doesn't really like forcing the mix rate, e.g. Firefox does not
allow input (microphone) if the mix rate is not the default one, Chrom*
will exhibit worse performances, etc.
(cherry picked from commit b800438efb)
This commit is contained in:
committed by
Rémi Verschelde
parent
e34c09a705
commit
41b1f2a7f9
@@ -37,10 +37,14 @@ const GodotAudio = {
|
||||
interval: 0,
|
||||
|
||||
init: function (mix_rate, latency, onstatechange, onlatencyupdate) {
|
||||
const ctx = new (window.AudioContext || window.webkitAudioContext)({
|
||||
sampleRate: mix_rate,
|
||||
// latencyHint: latency / 1000 // Do not specify, leave 'interactive' for good performance.
|
||||
});
|
||||
const opts = {};
|
||||
// If mix_rate is 0, let the browser choose.
|
||||
if (mix_rate) {
|
||||
opts['sampleRate'] = mix_rate;
|
||||
}
|
||||
// Do not specify, leave 'interactive' for good performance.
|
||||
// opts['latencyHint'] = latency / 1000;
|
||||
const ctx = new (window.AudioContext || window.webkitAudioContext)(opts);
|
||||
GodotAudio.ctx = ctx;
|
||||
ctx.onstatechange = function () {
|
||||
let state = 0;
|
||||
@@ -159,7 +163,10 @@ const GodotAudio = {
|
||||
godot_audio_init: function (p_mix_rate, p_latency, p_state_change, p_latency_update) {
|
||||
const statechange = GodotRuntime.get_func(p_state_change);
|
||||
const latencyupdate = GodotRuntime.get_func(p_latency_update);
|
||||
return GodotAudio.init(p_mix_rate, p_latency, statechange, latencyupdate);
|
||||
const mix_rate = GodotRuntime.getHeapValue(p_mix_rate, 'i32');
|
||||
const channels = GodotAudio.init(mix_rate, p_latency, statechange, latencyupdate);
|
||||
GodotRuntime.setHeapValue(p_mix_rate, GodotAudio.ctx.sampleRate, 'i32');
|
||||
return channels;
|
||||
},
|
||||
|
||||
godot_audio_resume__sig: 'v',
|
||||
|
||||
Reference in New Issue
Block a user