diff --git a/qt/aqt/browser.py b/qt/aqt/browser.py index 43a29d447..53d426c85 100644 --- a/qt/aqt/browser.py +++ b/qt/aqt/browser.py @@ -1774,7 +1774,7 @@ where id in %s""" audio = c.answer_av_tags() av_player.play_tags(audio) else: - av_player.maybe_interrupt() + av_player.clear_queue_and_maybe_interrupt() txt = self.mw.prepare_card_text_for_display(txt) txt = gui_hooks.card_will_show( diff --git a/qt/aqt/reviewer.py b/qt/aqt/reviewer.py index b02b96ab5..fa5629e94 100644 --- a/qt/aqt/reviewer.py +++ b/qt/aqt/reviewer.py @@ -191,7 +191,7 @@ The front of this card is empty. Please run Tools>Empty Cards.""" if self.autoplay(c): av_player.play_tags(c.question_av_tags()) else: - av_player.maybe_interrupt() + av_player.clear_queue_and_maybe_interrupt() # render & update bottom q = self._mungeQA(q) @@ -236,7 +236,7 @@ The front of this card is empty. Please run Tools>Empty Cards.""" if self.autoplay(c): av_player.play_tags(c.answer_av_tags()) else: - av_player.maybe_interrupt() + av_player.clear_queue_and_maybe_interrupt() a = self._mungeQA(a) a = gui_hooks.card_will_show(a, c, "reviewAnswer") diff --git a/qt/aqt/sound.py b/qt/aqt/sound.py index 89b77e89a..ecf3f73cf 100644 --- a/qt/aqt/sound.py +++ b/qt/aqt/sound.py @@ -93,15 +93,16 @@ class AVPlayer: def play_tags(self, tags: List[AVTag]) -> None: """Clear the existing queue, then start playing provided tags.""" + self.clear_queue_and_maybe_interrupt() self._enqueued = tags[:] - self.maybe_interrupt() self._play_next_if_idle() def stop_and_clear_queue(self) -> None: self._enqueued = [] self._stop_if_playing() - def maybe_interrupt(self) -> None: + def clear_queue_and_maybe_interrupt(self) -> None: + self._enqueued = [] if self.interrupt_current_audio: self._stop_if_playing()