diff --git a/src/ui/listen/example-song-player.vue b/src/ui/listen/example-song-player.vue index 42289b212..800d5b913 100644 --- a/src/ui/listen/example-song-player.vue +++ b/src/ui/listen/example-song-player.vue @@ -34,6 +34,7 @@ const songRef = ref(null); const abstractPlayerRef = ref>(); + const getOrCreatePlayer = () => abstractPlayerRef.value!.getOrCreatePlayer(); const normalizedSong = computed((): Array>> => props.song.flatMap((part) => { const result = { @@ -66,17 +67,23 @@ const rawPattern = computed(() => songToBeatbox(songParts.value, state.value, playbackSettings.value)); - const playStop = () => { - const p = abstractPlayerRef.value!.getOrCreatePlayer(); + const playPause = () => { + const p = getOrCreatePlayer(); if(!p.playing) { stopAllPlayers(); p.play(); } else { p.stop(); - p.setPosition(0); } }; + const stop = () => { + const p = getOrCreatePlayer(); + if(p.playing) + p.stop(); + p.setPosition(0); + }; + const setPosition = ($event: MouseEvent) => { const length = 4 * getEffectiveSongLength(songParts.value, state.value); const el = songRef.value!; @@ -91,7 +98,7 @@ download({ type: ExportType.MP3, filename: props.tuneName, - player: abstractPlayerRef.value!.getOrCreatePlayer() + player: getOrCreatePlayer() }); }; @@ -116,7 +123,8 @@ />
    -
  • +
  • +