aboutsummaryrefslogtreecommitdiffstats
path: root/src/screens
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/screens/UScreenSing.pas17
-rw-r--r--src/screens/UScreenSong.pas16
2 files changed, 12 insertions, 21 deletions
diff --git a/src/screens/UScreenSing.pas b/src/screens/UScreenSing.pas
index 5f39ec49..5000d096 100644
--- a/src/screens/UScreenSing.pas
+++ b/src/screens/UScreenSing.pas
@@ -564,12 +564,6 @@ begin
LyricsState.TotalTime := AudioPlayback.Length;
LyricsState.UpdateBeats();
- // prepare music
- AudioPlayback.Stop();
- AudioPlayback.Position := CurrentSong.Start;
- // synchronize music to the lyrics
- AudioPlayback.SetSyncSource(LyricsSync);
-
// prepare and start voice-capture
AudioInput.CaptureStart;
@@ -666,7 +660,16 @@ procedure TScreenSing.onShowFinish;
begin
// hide cursor on singscreen show
Display.SetCursor;
-
+
+ // prepare music
+ // Important: AudioPlayback must not be initialized in onShow() as TScreenSong
+ // uses stops AudioPlayback in onHide() which interferes with TScreenSings onShow.
+ AudioPlayback.Open(CurrentSong.Path.Append(CurrentSong.Mp3));
+ AudioPlayback.SetVolume(1.0);
+ AudioPlayback.Position := CurrentSong.Start;
+ // synchronize music to the lyrics
+ AudioPlayback.SetSyncSource(LyricsSync);
+
// start lyrics
LyricsState.Resume();
diff --git a/src/screens/UScreenSong.pas b/src/screens/UScreenSong.pas
index a3c5f36a..34589963 100644
--- a/src/screens/UScreenSong.pas
+++ b/src/screens/UScreenSong.pas
@@ -81,7 +81,6 @@ type
HighSpeed: boolean;
CoverFull: boolean;
CoverTime: real;
- MusicPreviewTimer: PSDL_TimerID;
CoverX: integer;
CoverY: integer;
@@ -1534,19 +1533,11 @@ end;
procedure TScreenSong.OnHide;
begin
- // if preview is not loaded: load musicfile now; not on cat-main!
- if (PreviewOpened <> Interaction) and not CatSongs.Song[Interaction].main then
- AudioPlayback.Open(CatSongs.Song[Interaction].Path.Append(CatSongs.Song[Interaction].Mp3));
-
// turn music volume to 100%
AudioPlayback.SetVolume(1.0);
- // if hide then stop music (for party mode popup on exit)
- if (Display.NextScreen <> @ScreenSing) {and
- (Display.NextScreen <> @ScreenSingModi) }then
- begin
- StopMusicPreview();
- end;
+ // stop preview
+ StopMusicPreview();
end;
procedure TScreenSong.DrawExtensions;
@@ -1766,9 +1757,6 @@ end;
procedure TScreenSong.StopMusicPreview();
begin
- // Cancel pending preview requests
- SDL_RemoveTimer(MusicPreviewTimer);
-
// Stop preview of previous song
AudioPlayback.Stop;
end;