2017-06-27 4 views
2

Ich versuche, einen Visualizer für einen Musik-Player zu erstellen, indem ich die native Audio-API verwende. Alles funktioniert gut, außer wenn ich einen Analysator anschließe, hört die Musik auf zu spielen.HTML-Audioanalysator verhindert das Abspielen von Musik

Sehen Sie es hier, laden Sie einfach eine Audiodatei hoch, um zu beginnen.

https://codepen.io/jane-fox/pen/RgjgJN

audioSource = audioCtx.createMediaElementSource(audio); 
audioSource.connect(analyser); 

Kommentieren Sie diese Zeilen, dass die Musik spielt, gut zu sehen, bis der Analysator angeschlossen ist.

Wie kann ich verhindern, dass der Analyzer/die visuellen Effekte die Musik stören?

+0

Sie benötigen audioSouce zum audioCtx.destination zu verbinden. – Kaiido

+0

Danke! Das war die spezielle Sache, die ich vermisste – Jane

Antwort

1

Ich habe einen Analysator nicht allzu langer Zeit gemacht: https://codepen.io/Cooorsin/pen/zKPbEm und http://simple-music-player.corsins.space/

Wenn Sie den gesamten Code des zweiten Lenkers möchte ich es auf GitHub für Sie setzen.

Ich habe den folgenden Code verwendet, um die Audio-initialisieren:

function initAudio(src){ 
    var AudioContext = window.AudioContext || window.webkitAudioContext; 
    audioContext = new AudioContext(); 
    analyser = audioContext.createAnalyser(); 

    //analyser.smoothingTimeConstant = 1; 
    analyser.fftSize = barAmount; 

    audio = new Audio(); 
    audio.src = src; 


    audio.addEventListener('canplay', function(){ 
     sourceNode = audioContext.createMediaElementSource(audio); 
     sourceNode.connect(analyser); 
     sourceNode.connect(audioContext.destination); 
     audio.play(); 
    }); 
} 
+1

Vielen Dank! Mir fehlte die letzte Verbindung zu audioCtx.destination. – Jane

+0

Froh ich könnte helfen :) – Corsin

Verwandte Themen