sound.seek()没有。什么都没发生。我想做一个简单的mp3player为我的应用程序

2024-05-17 04:04:29 发布

您现在位置:Python中文网/ 问答频道 /正文

sound.seek()没有。什么都没发生。声音位置总是0。我想为我的应用程序做一个简单的mp3播放器。我怎样才能使它正常工作。当我移动一个标签滑块。文字和声音的位置也应该移动。当音乐播放时,滑块光标也应该移动。这是我的密码:

def to_seconds(value):
    a_string = str(int(value // 60))
    b_string = str(int(value % 60))
    if len(a_string) == 1:
        a_string = '0' + a_string
    if len(b_string) == 1:
        b_string = '0' + b_string
    return a_string + ' : ' + b_string


class Player(BoxLayout):
    def __init__(self, **kwargs):
        super(Player, self).__init__(**kwargs)
        self.file = 'music_files/Billie_Eilish_-_Ocean_Eyes.mp3'
        self.play = 'images/play.png'
        self.palki = 'images/palki.png'
        self.cursor = 'images/cursor.png'
        self.sound = SoundLoader.load(self.file)
        print(to_seconds(self.sound.length))
        self.sl = Slider(orientation='horizontal',
                     min=0,
                     max=self.sound.length,
                     step=1,
                     padding=20,
                     background_width=40,
                     value_track=True,
                     value_track_color=(1, .1, .1, 1),
                     value_track_width=(5),
                     cursor_image=(self.cursor),
                     value=self.sound.get_pos()
                     )
        self.sl.bind(value=self.slider_callback)
        self.w1.add_widget(self.sl)

        but1 = Button()
        self.but2 = Button(background_normal=(self.play),
                       background_down=(self.play),
                       on_press=self.play_but_callback
                       )
        but3 = Button()


        self.gl.add_widget(but1)
        self.gl.add_widget(self.but2)
        self.gl.add_widget(but3)


        self.lb = Label(font_size=35,
                    size_hint_x=.85,
                    text=to_seconds(self.sl.value),
                    halign='right',
                    valign='top'
                    )
        self.al.add_widget(self.lb)
        self.sl.value = self.sound.get_pos()
        self.sound.play()

    def slider_callback(self, intance, value):
        print(value)
        if self.sound:
            self.sound.play()
            self.sound.seek(int(value))

        print(self.sound.get_pos())
        self.lb.text = to_seconds(value)

Tags: toselfaddplaystringifvaluedef