gpt4 book ai didi

python - kivy中的音频位置没有变化

转载 作者:行者123 更新时间:2023-12-04 07:40:35 25 4
gpt4 key购买 nike

我正在创建一个音乐播放器 kivy 使用 kivy.core.audio.Sounloader 我遇到了一个问题。当用户点击开始按钮时,我希望他们能够滑动 slider 并更改歌曲的位置,但是,该功能不起作用。它也不会引发任何错误,它只是不起作用。我还尝试使用 获取歌曲的位置music_obj.get_pos() 但它总是返回 0。我做了几次搜索,其他人似乎也有这个问题。我该如何解决这个问题?我的代码:

from kivy.app import App
from kivy.core.audio import SoundLoader
from kivy.uix.widget import Widget
from kivy.lang import Builder


Builder.load_string('''
<MyLayout>:
BoxLayout:
orientation: "vertical"
size: root.width, root.height

Label:
id: song_title
text: "Song title!"
text_size: self.size
font_size: 32
valign: "middle"
halign: "center"

Slider:
id: slider
min: 0
max: 1
step: 1
value: 0
on_value: root.change_pos(self.value)

Button:
text: "Animate!"
font_size: 32
on_release: root.start_song()''')


class MyLayout(Widget):
music_file = "pitbull-feat-kesha-pitbull-feat-keshatimber.mp3"
music_obj = None

def start_song(self):
self.music_obj = SoundLoader.load(self.music_file)
if self.music_obj:
print(self.music_obj.source)
print(self.music_obj.length)
self.ids.song_title.text = self.music_obj.source
self.ids.slider.max = self.music_obj.length
self.music_obj.play()

def change_pos(self, value):
if self.music_obj is not None:
self.music_obj.seek(value)


class Awesome(App):
def build(self):
self.title = "Hello!"
return MyLayout()


if __name__ == "__main__":
Awesome().run()

最佳答案

我尝试运行您的代码,只要它正在播放,搜索栏就可以正常工作。一旦音乐停止,搜索栏就会停止工作。如果这是你遇到的问题,我建议你在寻找之前先重新播放音频。

    def change_pos(self, value):
if self.music_obj is not None:
self.music_obj.play()
self.music_obj.seek(value)
顺便说一下,我使用了 Kivy 2.0.0 和 ffpyplayer 4.3.2。

关于python - kivy中的音频位置没有变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67500334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com