【问题标题】:How to get the position of music in pygame that is playing?如何获得正在播放的pygame中音乐的位置?
【发布时间】:2019-09-21 16:47:24
【问题描述】:

我想播放音乐并在音乐播放时的几秒或几分钟内获得它的位置。我使用了 pygame.mixer.music.get_pos() 但代码不起作用。

def f5secforward():
    print(pygame.mixer.music.get_pos())
    pygame.mixer.music.play(0,pygame.mixer.music.get_pos()//1000+5)
    print(pygame.mixer.music.get_pos())

第一个“get_pos”有效,但在我用 pygame.mixer.music.play(loop,time) 更改歌曲的当前位置后,它会将 get_pos 的值分配给 0

我进行了更多搜索,我刚刚发现 get_pos() 并没有在播放音乐的地方获取它只是获取 Python 混音器忙碌的时间。 有什么解决办法吗?

【问题讨论】:

  • 我认为这是唯一的方法

标签: python


【解决方案1】:

如果你将第一个 get_pos 存储为一个整数(比如“oldsongtime”),然后添加第二个 get_pos 产生的时间(在你的函数中它将接近 0)和你添加的时间(5000)你应该找对时间。

我之所以这么说是因为当我尝试创建自己的快进功能时,轨道有时会向前跳得比应有的要远得多。可能与我的 pre_init 没有使用默认频率有关(在我使用的所有 PC 上 44,100 Hz 太慢了)。

def f5secforward():
    oldsongtime = pygame.mixer.music.get_pos()
    change = 5000
    print(oldsongtime)
    pygame.mixer.music.play(0, (oldsongtime+change)/5000)
    addedtime = pygame.mixer.music.get_pos()
    print(addedtime)
    currenttime = oldsongtime+change+addedtime

    return currenttime

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-27
    • 1970-01-01
    • 2013-11-09
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-06
    相关资源
    最近更新 更多