Проверка Javascript AudioContext не работает в Internet Explorer 11

У меня есть это JS код, где я проверяю, если AudioContext определяется, затем установите его, иначе верните undefined:

function audioContextCheck() {
    if (typeof AudioContext !== "undefined") {
        return new AudioContext();
    } else if (typeof webkitAudioContext !== "undefined") {
        return new webkitAudioContext();
    } else if (typeof mozAudioContext !== "undefined") {
        return new mozAudioContext();
    } else {

       // return undefined
       return "undefined"

    }
}

var audioContext = audioContextCheck();
console.log(audioContext)

function audioRecording( e ) {

         try{
            console.log('audioContext is '+ audioContext)
            if (audioContext != "undefined") {
                audioContext.resume().then(() => {
                console.log('Resumed audioContext on end-recording');
                e.classList.remove('recording');
                recording = false;

            });
            }
            else {
                console.log('IE audioContext not supported')
                e.classList.remove('recording');
                recording = false;
                socketio.emit('end-recording');
            }
        }
        catch(error){
            console.log(error)
            console.log('Resumed audioContext on end-recording');
            e.classList.remove('recording');
            recording = false;

        }

    } 
}

Теперь это JS файл загружен из html стр. Но в Internet Explorer 11 всякий раз, когда я загружаю эту страницу, я вижу syntax error на линии audioContext.resume().then(() => {, Я знаю IE не поддерживает AudioContext и именно поэтому я использую audioContextCheck() куда я вернусь undefined если AudioContext не поддерживается, а затем в audioRecording() Я проверяю, если это возможно audioContext не равно undefined затем только выполнить код под ним. Таким образом, для IE он не должен выполнять этот код, но все равно выдает синтаксическую ошибку в строке.

Также у меня есть console.log() Заявление в моем коде, но я не вижу ничего на консоли в IE 11(в инструментах разработчика).

В чем заключается ошибка, которую я здесь делаю, и что было бы более элегантным способом убедиться, что IE не переходит к строке с ошибкой и, следовательно, не выдает ошибку?

0 ответов

Другие вопросы по тегам