Я пишу музыкальный проигрыватель для моей оценки.И в настоящее время мне нужно сделать так, чтобы треки воспроизводились по порядку.
В настоящее время бит, который воспроизводит музыку, выглядит следующим образом:
repeat
//Other code that's related to responding to user input
while i < trackCount - 1 do
begin
if not MusicPlaying() then
begin
PlayMusic(trackName, 1);
trackNumber := trackNumber + 1;
i := i + 1;
end;
end;
until WindowCloseRequested();
По сути, он говорит: «Пока списокеще не закончено, если музыка не воспроизводится, затем воспроизведите дорожку и увеличьте i
, чтобы следующая дорожка могла быть воспроизведена после ее завершения ".По-видимому, это привело к сбою программы или, по крайней мере, к такому выводу.Я не мог взаимодействовать с программой после того, как нажал кнопку воспроизведения, но музыка все еще играла по порядку, что говорило мне, что логика работает отлично.После этого программа вернулась в нормальное состояние, но вернулась в то же состояние, когда я снова попытался воспроизвести список.Означает ли это, что это плохой код, и я должен попытаться придумать другой путь?Или есть что-то, чего я не знал о наличии цикла внутри цикла?