播放/停止音乐与猕猴桃类

侯赛因·雷梅赞

我正在尝试执行此操作:

from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.core.audio import SoundLoader,Sound
from kivy.lang import Builder
Builder.load_string('''
<MenuPage>:
    BoxLayout:
        orientation:'vertical'
        Button:
            text:'play'
            on_press:root.plays()
        Button:
            text:'stop'
            on_press:root.stops()
''') 


class Music(Sound):
    def __init__(self):
        self.sound = SoundLoader.load('/home/hosein/Music/Man.mp3')


class MenuPage(Screen):
    def __init__(self):
        self.M = Music()

    def plays(self):
        self.M.play()

    def stops(self):
        self.M.stop()

music = Music()
sm = ScreenManager()
menu = MenuPage(name='menu')
sm.add_widget(menu)


class TestApp(App):
    def build(self):
        return sm




TestApp().run()

https://gist.github.com/daryasary/f69e1d0444ae70ff5296

应该只有两个按钮可以播放或停止播放歌曲。

但这是行不通的。解决办法是什么?

另外,是否有任何方法可以将播放和停止按钮变成一个按钮,第一次按即会播放歌曲,而第二次则将其停止?

侯赛因·雷梅赞

应该是这样的:

from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.core.audio import SoundLoader,Sound
from kivy.lang import Builder
Builder.load_string('''
<MenuPage>:
    BoxLayout:
        orientation:'vertical'
        Button:
            text:'song'
            on_press:root.plays()
''')

class MenuPage(Screen):
    M = SoundLoader.load('/home/hosein/Music/Man.mp3')

    def plays(self):
        if MenuPage.M.state == 'stop':
            MenuPage.M.play()
        else:
            MenuPage.M.stop()


sm = ScreenManager()
menu = MenuPage(name='menu')
sm.add_widget(menu)


class TestApp(App):
    def build(self):
        return sm




TestApp().run()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章