2016-05-08 1 views
0

J'essaie de jouer des sons et de visualiser la fréquence (via D3.js) lorsque je suis en train de planer un élément. Le problème est que je reçois cette erreur lorsque je saute d'un élément à l'autre:Erreur AudioContext multiple lors de la lecture des sons sur l'état de l'élément stationnaire de l'élément

main.js:94 Uncaught NotSupportedError: Failed to construct 'AudioContext': The number of hardware contexts provided (6) is greater than or equal to the maximum bound (6) 

Voici mon code:

$('.item').on('mouseenter', function(){ 
    itemId = $(this).attr('data-id'); 
    $(itemId).trigger("play"); 

    var audioCtx = new (window.AudioContext || window.webkitAudioContext)(); 
    var audioElement = document.getElementById(itemId); 
    var audioSrc = audioCtx.createMediaElementSource(audioElement); 
    var analyser = audioCtx.createAnalyser(); 

    // Bind our analyser to the media element source. 
    audioSrc.connect(analyser); 
    audioSrc.connect(audioCtx.destination); 

    var frequencyData = new Uint8Array(50); 

    //D3.JS Stuffs here 
}); 
$('.item').on('mouseleave', function(){ 
    itemId = $(this).attr('data-id'); 

    $('#' + coverId).trigger("pause"); 
}); 

J'ai essayé beaucoup de choses, mais rien ne fonctionne, toute aide être très très apprécié! Merci!

Répondre

0

AudioContext doit être unique. Essayez de ne le déclarer qu'une seule fois, en dehors de votre fonction mouseenter.

+0

Déjà essayé mais il lance une erreur sur le createMediaElementSource() et dit que l'élément HTML est déjà borné: / – user990463