Audiocontext have no effect

We would like to change volume for channels, but AudioContext just not works in firefox.. Edge, Chrome etc., are ok. Using last standard of code, AudioContext should be compatible. Had someone same problem with this interface?

Showed code is extracted from large file, so there are some things that are not necesarry. Be lenient please, I am amateur. (amateur with translator :D)

function player_ngx_audio_graph()
{
    this.context = null;
    this.source  = null;
    this.graph_inst = player_ngx_audio_graph_inst;
    this.graph_free = player_ngx_audio_graph_free;
    this.ch_volume_set = player_ngx_audio_graph_ch_volume_set;
    this.ch_volume_set_ok = function() { return Boolean(this.context); }
    this.ch_repro_set_ok = function() { return Boolean(this.context); }
    this.ch_ams = [];
    this.ch_ams[0] = null;
    this.ch_ams[1] = null;
    this.ch_ams_proc = [];
    this.ch_ams_set    = player_ngx_audio_graph_ch_ams_set;
    this.ch_ams_set_ok = function() { return Boolean(this.context); }
}

function player_ngx_audio_graph_inst()
{
    try {
        player_log_fn(arguments);
        if (!window.AudioContext)
             window.AudioContext = (window.webkitAudioContext || window.AudioContext);
        if (!window.player_nge_maapi_context)
             window.player_nge_maapi_context = new window.AudioContext;
        this.context = window.player_nge_maapi_context;
        this.merge = this.context.createChannelMerger(2);
        this.merge.connect(this.context.destination);
        this.gain0 = this.context.createGain();
        this.gain1 = this.context.createGain();
        this.gain0.connect(this.merge, 0, 0);
        this.gain1.connect(this.merge, 0, 1);
        this.gain1.gain.value = 1.0;
        this.gain0.gain.value = 1.0;
        this.split = this.context.createChannelSplitter(2);
        this.split.connect(this.gain0, 0);
        this.split.connect(this.gain1, 1);
        this.ch_repro_set(0, 1);
        this.ch_repro_set(1, 2);
        this.split.channelCountMode = 'explicit';
        this.split.channelCount = 2;
        this.source = this.context.createMediaElementSource(this.media);
        this.source.connect(this.split);
        // CHROME-140605-01:
        this.z_gain = this.context.createGain();
        this.z_gain.gain.value = 0;
        this.source.connect(this.z_gain);
        this.z_gain.connect(this.context.destination);
        // CHROME-140605-01 END
    } catch (e) {

        player_log('Web Audio API not supported by this browser.');
    }
}

function player_ngx_audio_graph_ch_volume_set(i, v) /* v=0..1 */
{
    player_log_fn(arguments);
    var gainX = ((i == 0)
     ? this.gain0
     : this.gain1);
    gainX.gain.value = 2 * v;
}