2016-04-14 10 views
6

Avevo visto in diverse esercitazioni persone che utilizzavano .disconnect() dopo un .stop() in Nodi degli oscillatori.Devo disconnettere un Oscillator AudioNode dopo averlo interrotto?

Per quanto ne so, un Oscillator Node è monouso, quindi quando si ferma e viene gettato via, non viene disconnesso anche lui?

Sono in grado di capire qualcosa di sbagliato? Perché devo usare .disconnect() dopo un .stop()?

risposta

3

Secondo il W3C Specification:

Quando un AudioNode non ha riferimenti che saranno cancellati. Prima che sia cancellato, si disconnetterà da qualsiasi altro AudioNode a cui è connesso .

Così, quando un AudioNode ottenere fermato e riferimenti sono di sinistra si disconnette per sé e non è quindi necessaria per chiamare in modo esplicito disconnect() dopo stop().

4

Non è necessario scollegare l'oscillatore dopo l'arresto(). Infatti, dopo aver pianificato i tempi di inizio e fine dell'oscillatore, dovresti essere in grado di rilasciare il riferimento all'oscillatore immediatamente e l'oscillatore dovrebbe ancora suonare. Dopo l'arresto, dovrebbe automaticamente disconnettersi.

Ovviamente potrebbero esserci dei bug nell'implementazione che rendono la disconnessione giusta. Ma questo è un bug.

Problemi correlati