实例教程-Python与Kivy联合开发Android程序及与硬件交互2

<<实例2:DIY自己的简易钢琴!>>

在Ubuntu中创建一个文件夹,命名为pka02,在pka02文件夹中创建一个名称为main.py的Python文件,写入代码如下:

#-*-coding:utf-8-*-

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.floatlayout import FloatLayout

Builder.load_file('audio.kv')     

class myLayout(FloatLayout):
    pass

class pkaApp02(App):
    def build(self):
        return myLayout()

if __name__=='__main__':
    pkaApp02().run()

以上这段代码几乎与实例1中main.py中的代码相同,只是文件名、类名做了稍稍改动,这只是代码的一种书写风格。这种风格比较简明易读。当然还有很多书写的方式,如把KV文件写入代码块中等,后边我们会讲解。

在pka02文件夹中创建一个名称为mylayout.kv的Kivy文件,写入代码如下:

#-*-coding:utf-8-*-
#:import audiokey audiokey   
:
    AnchorLayout:
        anchor_x:'left'
        anchor_y:'top'
        GridLayout:
            DiyKey:    #定义琴键1,在audiokey.py文件中定义了DiyKey类
                id:diyKey1
                width:80
                height:100
                font_name:'simhei.ttf'
                text:'A'
                pos:0,400
                filename:'1.wav'
                on_press:self.play_note(1)
            DiyKey:    #定义琴键2
                id:diyKey2
                width:80
                height:100
                font_name:'simhei.ttf'
                text:'B'
                pos:100,400
                filename:'2.wav'
                on_press:self.play_note(1)
            DiyKey:    #定义琴键3
                id:diyKey3
                width:80
                height:100
                font_name:'simhei.ttf'
                text:'C'
                pos:200,400
                filename:'3.wav'
                on_press:self.play_note(1)
            DiyKey:    #定义琴键4
                id:diyKey4
                width:80
                height:100
                font_name:'simhei.ttf'
                text:'D'
                pos:300,400
                filename:'4.wav'
                on_press:self.play_note(1)
            DiyKey:    #定义琴键5
                id:diyKey5
                width:80
                height:100
                font_name:'simhei.ttf'
                text:'E'
                pos:400,400
                filename:'5.wav'
                on_press:self.play_note(1)
            DiyKey:    #定义琴键6
                id:diyKey6
                width:80
                height:100
                font_name:'simhei.ttf'
                text:'F'
                pos:500,400
                filename:'6.wav'
                on_press:self.play_note(1)
            DiyKey:    #定义琴键7
                id:diyKey7
                width:80
                height:100
                font_name:'simhei.ttf'
                text:'G'
                pos:600,400
                filename:'7.wav'
                on_press:self.play_note(1)
        

在pka02文件夹中创建一个名称为audiokey.py的Python文件,写入代码如下:

#-*-coding:utf-8-*-

from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.core.audio import SoundLoader
from kivy.properties import StringProperty

class DiyKey(Button):    #定义琴键类
    filename=StringProperty(None)    #定义一个字符串属性
    def __init__(self,**kwargs):
        super(DiyKey,self).__init__(**kwargs)
        
    def play_note(self,pit):
        self.sound = SoundLoader.load(self.filename)
        self.sound.pitch=pit    #指定音高,以后会用到
        #print(self.sound.source)
        #print(self.sound.length)
        #print(self.sound.pitch)
        self.sound.play()

在网上下载A、B、C、D、E、F、G键对应的.wav音频文件,重命名为1.wav、2.wav、3.wav、4.wav、5.wav、6.wav、7.wav,并将重命名后的文件拷贝到我们的项目文件夹中。

上诉文件创建好后,就可在Ubuntu中打开命令行,并使用cd命令进入到pka02文件夹,然后使用python main.py命令运行程序,结果如下图:

实例教程-Python与Kivy联合开发Android程序及与硬件交互2_第1张图片

你可能感兴趣的:(实例教程-Python与Kivy联合开发Android程序及与硬件交互2)