Sfoglia il codice sorgente

fix stuttering notes after memory leak fix from #78

some notes were stuttered, e.g. beethoven - geliebte 3rd beat,
see https://github.com/opensheetmusicdisplay/osmd-extended/issues/78
sschmidTU 2 anni fa
parent
commit
929b9c40c3
1 ha cambiato i file con 2 aggiunte e 1 eliminazioni
  1. 2 1
      src/SamplePlayerPatch/lib/player.js

+ 2 - 1
src/SamplePlayerPatch/lib/player.js

@@ -83,7 +83,7 @@ function SamplePlayer (ac, source, options) {
     // cache
     var node
     for (var iterator in tracked) {
-      if (buffer === tracked[iterator].source.buffer) {
+      if (buffer === tracked[iterator].source.buffer && tracked[iterator].startTime + buffer.duration < when) {
         node = resetNode(tracked[iterator], buffer, opts)
       }
     }
@@ -162,6 +162,7 @@ function SamplePlayer (ac, source, options) {
   function track (name, node) {
     node.id = nextId++
     tracked[node.id] = node
+    node.startTime = ac.currentTime
     node.source.onended = function () {
       var now = ac.currentTime
       node.source.disconnect()