Привет, можешь исправить все ошибки в коде:
import flet as ft
import asyncio

url = "https://s134vlx.storage.yandex.net/get-mp3/e64eb251c877d58c8959b75c828df439/000623d442191951/rmusic/U2FsdGVkX1-WpDMzJRSApfuaIQ4NUJu_d-kYFLb2N4fAjf5E_izzfys7n56xIdz-lAFpKgeBB3WmOXiuv-bcND6c87fOA1E2gXgCfiFkqwM/e840a11e07a7e92e596c95e017fa88800f2ed4d80b5453cd5f0c485b09919187"

TestLyric = {
    "00:02.70": "Твои чувства - лёд, но они так холодны",
    "00:06.10": "Разлюби меня и после два и три люби",
    "00:10.21": "У нас с тобой один миг - это целый мир",
    # остальные лирики...
}

def format_time(milliseconds):
    seconds = int(milliseconds / 1000)
    minutes = int(seconds / 60)
    seconds = seconds % 60
    milliseconds = int(milliseconds % 1000 / 10)
    return f"{minutes:02}:{seconds:02}.{milliseconds:02}"

def get_lyric_by_time(time_str):
    lyric = None
    for lyric_time, text in TestLyric.items():
        if time_str >= lyric_time:
            lyric = text
        else:
            break
    return lyric

def main(page: ft.Page):
    audio1 = ft.Audio(
        src=url,
        autoplay=False,
        volume=1,
        balance=0,
        on_loaded=lambda _: print("Loaded"),
    )

    

    progress_bar = ft.ProgressBar(width=300, height=20)
    lyric_text = ft.Text("Lyrics here", size=20, color="black")
    
    async def updateLyrics():
        lastTime = ""
        while True:
            # Получаем текущее время
            current_time_ms = audio1.get_current_position()

            # Форматируем время
            current_time_str = format_time(current_time_ms)
            # Если время изменилось, обновляем текст
            if lastTime != current_time_str:
                lastTime = current_time_str
                lyric = get_lyric_by_time(lastTime)
                print(lyric)
                if lyric:
                    lyric_text.value = lyric
                    await lyric_text.update_async()

            # Пауза для предотвращения перегрузки CPU
            await asyncio.sleep(0.1)  # Увеличен интервал для оптимизации

    async def UpdateProgressBar():
        while True:
            CurrentPositionMS = audio1.get_current_position()
            DurationTimeMS = audio1.get_duration()
            if DurationTimeMS > 0:  # Проверяем, чтобы избежать деления на ноль
                CurrentPosition = CurrentPositionMS / 1000
                DurationTime = DurationTimeMS / 1000
                value = CurrentPosition / DurationTime * 100
                print(value)
                progress_bar.value = value
                await progress_bar.update_async()
            await asyncio.sleep(0.5)

    async def PlayMusic():
        asyncio.create_task(updateLyrics())
        asyncio.create_task(UpdateProgressBar())
        audio1.play()  # Используем асинхронную версию play

    async def PauseMusic():
        audio1.pause()  # Используем асинхронную версию pause

    
    page.add(
        ft.ElevatedButton("Play", on_click=asyncio.run(PlayMusic())),
        ft.ElevatedButton("Pause", on_click=lambda _: asyncio.run(PauseMusic())),
        ft.ElevatedButton("Resume", on_click=lambda _: audio1.resume()),
        progress_bar,
        lyric_text
    )
    page.overlay.append(audio1)

if __name__ == "__main__":
    try:
        asyncio.run(ft.app(main))
    except:
        print("Stoping")