private void interruptPlayback(PlayerState st) {
    if (state == st) return;

    PlayerThread th = currentPlayerThread.get();
    if (th != null) {
      if (th.isAlive()) th.die(st);
      else if (currentPlayerThread.compareAndSet(th, null)) setStateNotify(st);
    } else setStateNotify(st);
  }