使用time.localtime()时时间显示不正确

问题描述 投票:0回答:1

下午好! 我开始开发mp3播放器,在使用time.localtime时遇到时间显示不正确的问题。

我将播放歌曲的当前时间放入 current_time 变量中,并将歌曲的总持续时间放入 Song_duration 变量中。

current_time = time.strftime('%H:%M:%S', time.localtime(self.player.position() / 1000))
print(time.localtime(self.player.position() / 1000))
song_duration = time.strftime('%H:%M:%S', time.localtime(self.player.duration() / 1000))
print(time.localtime(self.player.duration() / 1000))
self.ui.start_lbl.setText(f"{current_time}")
self.ui.end_lbl.setText(f"{song_duration}")

问题是当前时间和剩余时间显示不正确——即从某个地方多花了两个小时(尽管歌曲有 4 分钟长)。

我仔细检查了:time.localtime 实际上将 tm_hour 设置为“2”,尽管分钟和秒计算正确(计算基于玩家的位置)。

以下是玩家自己声明的代码:

self.player = QMediaPlayer()
self.audio_output = QAudioOutput()
self.player.setAudioOutput(self.audio_output)

我对处理音频文件这一主题还不熟悉,所以请告诉我需要修复哪些问题。

我试图了解到底哪里做错了。播放器设置本身显然是正确的:歌曲播放正确,并且两种情况下的分钟和秒(当前时间和总时间)都正确显示。

python time pyside6 qmediaplayer
1个回答
0
投票
def format_duration(milliseconds):
    # Convert milliseconds to seconds
    total_seconds = int(milliseconds / 1000)
    hours = total_seconds // 3600
    minutes = (total_seconds % 3600) // 60
    seconds = total_seconds % 60

    # Format time as HH:MM:SS
    return f"{hours:02}:{minutes:02}:{seconds:02}"

# Use the format_duration function to format the current time and song duration
current_time = format_duration(self.player.position())
song_duration = format_duration(self.player.duration())

self.ui.start_lbl.setText(current_time)
self.ui.end_lbl.setText(song_duration)
© www.soinside.com 2019 - 2024. All rights reserved.