admin 管理员组

文章数量: 1184232

目录

一、简单的作品描述

二、实现原理

三、具体实现步骤 

四、Android加载声音

五、实现其余的音符

六、记录并回放音符

七、记录音符及时间

八、块的功能

九、音符的回放

十、播放适当延迟的音符

资源下载


由于瘟疫肆虐,我在家中宅了好几天,简直不能太无聊。一个偶然的机会,我在抖音上面发现了一个类似钢琴的APP,然后就试着用App inventor做一个可以实现音乐功能的软件,暂且可以把它叫做木琴。经过3次的修改,最终成了下面的样子。让我们来一起看看吧!

一、简单的作品描述

基本界面如下图所示:

功能介绍:

 

  • 通过触摸屏幕上的彩色按钮播放八个不同的音符;
  • 按“播放”按钮,回放之前弹奏的音符;
  • 按“重置”按钮清除之前弹过的音符,以便输入新曲。

二、实现原理

  • 使用单一的声音组件来播放不同的音频文件;
  • 使用Clock组件来计算并实现两个音符之间的延时;
  • 在创建一个过程时做判断;
  • 创建能够自我调用的过程;

三、具体实现步骤

记得上次做的是蓝牙相关的实践,用的是汉语的界面,这次尝试用英文试一下!

首先创建前两个键,用按钮来实现:

1. 从面板(palette)的user interface组中拖出一个按钮。

  • BackgroundColor属性:为红色;

  • Text属性:为“C”;

  • Width属性:为“Fill parent”,使其占满屏幕;

  • Height属性:为40像素。

2. 重复上述步骤创建第二个按钮,名为Button2,放在Button1下面。Width及Height属性值同Button1,但BackgroundColor属性设为红色,Text属性设置为“D”。如下图:

3.其他键位的设计完全按照上面的步骤来实现,在此就不一一说明了。

添加其他组件

木琴不能没有声音,所以我创建一个Sound组件,名字为Sound1。MinimumInterval(最小间隔)属性设置为0(默认值为500毫秒)。这可以让我们的演奏要多快有多快,而不必等半秒钟(500毫秒)。

下载1.wav和2.wav,并加载到项目中,注意这里的声音文件必须保持原有文件名。

当某个按钮被点击时,用程序来实现播放声音的行为,即:如果Button1被点击,则播放1.wav,如果Button2被点击,播放2.wav。

若要切换到块编辑器,如下图所示,进行以下设置:

  1. 从Screen1项下的Button1抽屉里拖出Button1.Click块;
  2. 从Sound1抽屉里拖set Sound1.Source块,放置在Button1.Click块中;
  3. 输入“text”来创建一个文本块(而不是从Built-in项下的Text抽屉里拖出,这样更便捷。)设置文本值为“1.wav”,并与Sound1.Source块连接;
  4. 添加Sound1.Play块。

 点击按钮时播放声音

对Button2进行同样设置,如图(只改了文件名),代码几乎完全重复。

重复的代码提示我们最好是创建一个过程。用join块将数字(如1)与文本“.wav”连接起来,创造出正规的文件名(如“1.wav”)。下面是创建这个过程的步骤:

1. 在块编辑器中打开Procedures抽屉,拖出“to procedure”块;

2. 单击procedure将过程名改为playNote;

3. 点击procedure块左上角的蓝色方块呼出内部组件,将一个input x块插入“inputs”块;

4. 将input x块中的x改为number;

5. 将set Sound1.Source to块从Button1.Click事件处理程序

本文标签: 实战 教程 详细 手机 软件