({
  name: 'support-seeking-unbuffered-position',
  description: 'Seeking to unbuffered position with continuous playback after seeking',
  assert: function(finish) {
    var audio = this.audio = new Audio(),
        seekedTime,
        counter = 0,
        result = true;

    audio.addEventListener('seeked', function() {
      if (audio.paused || Math.abs(audio.currentTime - seekedTime) > 100) {
        finish(false);
      }

      audio.addEventListener('timeupdate', function() {
        if (++counter > 15) {
          finish(result);
        } else if (!audio.paused && audio.currentTime > seekedTime) {
          result = true;
        } else {
          result = false;
        }
      }, false);
    }, false);

    audio.addEventListener('loadedmetadata', function() {
      audio.volume = 0;
      audio.play();
      audio.currentTime = seekedTime = AWPY.sound.long.duration * 0.8;
    }, false);

    audio.preload = 'metadata';
    audio.src = AWPY.sound.long.stream_url();
  }
})

@@ -330,33 +330,8 @@
  if 
-(audio.paused %7C%7C Math.abs
 (aud
@@ -345,17 +345,17 @@
 entTime 
--
+%3C
  seekedT
@@ -362,15 +362,8 @@
 ime)
- %3E 100)
  %7B%0A 
@@ -393,16 +393,37 @@
      %7D%0A%0A
+      audio.play();%0A%0A
       au
@@ -498,10 +498,10 @@
 r %3E 
-15
+30
 ) %7B%0A
@@ -769,52 +769,8 @@
 ) %7B%0A
-      audio.volume = 0;%0A      audio.play();%0A
     

Improve support-seeking-unbuffered-position.js