diff --git a/Gtk4/gtk154_mediaplayer3/src/LyricsParser.cpp b/Gtk4/gtk154_mediaplayer3/src/LyricsParser.cpp index 28aef8c..fdcccf9 100644 --- a/Gtk4/gtk154_mediaplayer3/src/LyricsParser.cpp +++ b/Gtk4/gtk154_mediaplayer3/src/LyricsParser.cpp @@ -272,6 +272,8 @@ static void get_lyrics(gint64 curr_time, gboolean playing, MyMediaPlayer *player // Get lyrics line get_lyrics_line(lyrics_content, lyrics_line, FALSE); + g_print("%s\n", lyrics_line); + // Process lyrics line lyric_line_process(lyrics_line, timestamp_length); } @@ -430,6 +432,8 @@ static void media_play_ended_handler(MyMediaPlayer *player) gtk_media_stream_play(stream); break; case PlayMode::One_Repeat: + // Reload audio + my_media_player_reload_audio(player); // Get media stream to control stream = gtk_video_get_media_stream(GTK_VIDEO( diff --git a/Gtk4/gtk154_mediaplayer3/src/MyMediaPlayer.cpp b/Gtk4/gtk154_mediaplayer3/src/MyMediaPlayer.cpp index ff11fac..c828ab0 100644 --- a/Gtk4/gtk154_mediaplayer3/src/MyMediaPlayer.cpp +++ b/Gtk4/gtk154_mediaplayer3/src/MyMediaPlayer.cpp @@ -535,6 +535,31 @@ void my_media_player_load_random_audio(MyMediaPlayer *player) player->current_audio_index); } +// Reload audio for repeat mode +void my_media_player_reload_audio(MyMediaPlayer *player) +{ + // Clear stream for player + GtkMediaStream *stream = gtk_video_get_media_stream(GTK_VIDEO(player->video)); + if (stream != NULL) + { + gtk_media_file_clear(GTK_MEDIA_FILE(stream)); + // g_object_unref(stream); + } + + // Clear video widget + gtk_video_set_file(GTK_VIDEO(player->video), NULL); + + // Load music at index + // Get item + MyItem *item = MY_ITEM(g_list_model_get_item(G_LIST_MODEL(player->music_store), + player->current_audio_index)); + load_audio(item, player); + + // Update selected item + gtk_single_selection_set_selected(player->music_selection, + player->current_audio_index); +} + // Stop current music static void btnstop_clicked(GtkButton *self, MyMediaPlayer *player) { diff --git a/Gtk4/gtk154_mediaplayer3/src/MyMediaPlayer.h b/Gtk4/gtk154_mediaplayer3/src/MyMediaPlayer.h index 2546729..eb97f61 100644 --- a/Gtk4/gtk154_mediaplayer3/src/MyMediaPlayer.h +++ b/Gtk4/gtk154_mediaplayer3/src/MyMediaPlayer.h @@ -32,4 +32,6 @@ void btnnext_clicked(GtkButton *self, MyMediaPlayer *player); void my_media_player_load_random_audio(MyMediaPlayer *player); +void my_media_player_reload_audio(MyMediaPlayer *player); + MyMediaPlayer *my_media_player_new(GtkApplication *app);