近期有读者询问如何制作出滑动琴键连续发出声音的程序,他尝试用一排按钮充当琴键,但每次滑动只能触发一个按钮的点击事件,因此也只能发出一个声音。我提示他用画布替代按钮,他希望给予更具体的提示,于是我索性自己做了一段试验性的程序,在这里与大家分享。

首先创建一个项目,命名为“画布版九键琴”,添加三个组件:画布、音效播放器、计时器,它们的属性设置如图1所示。然后上传10个音频文件,从1.ogg到10.ogg。

图1 项目中的组件及属性设置

下面编写程序。首先在屏幕初始化事件中绘制琴键。当画布被按压时,启动计时器,当画布被释放时,停止计时。然后编写画布的拖动事件处理程序,将事件中的参数“当前x坐标”传递给全局变量x。最后在计时器的计时事件中,利用全局变量x计算出对应的音节,设置音效播放器的源文件属性,并播放相应的音节。代码如图2所示。

图2 项目中的全部程序

程序的测试结果如下面的视频,视频是屏幕录制的结果,无法展现手指滑过的场景。

从视频的效果看,声音的播放还不够连续,改进的思路是调整音效播放器的最小间隔与计时器的计时间隔,如果这两个组件的时间属性设置恰当的话,播放效果也许会得到改进。

另,本项目中的素材可在公众号菜单“编程教学--图书资料”中找到(听音练耳)。也可直接访问以下链接:https://pan.baidu.com/s/1boRZ7sF 。

python 画布包括不了全部组件?_试验程序:画布版九键琴相关推荐

  1. Python简单实现数据降噪滤波处理_滢泷版

    Python简单实现数据降噪.滤波处理_滢泷版 由于项目需要对数据进行降噪滤波处理,又要尽可能保证变化特征不失真. 我在网上搜索了一下Python的方库,没找到. 我安装了scipy 之后找不到spl ...

  2. python中使用什么命令安装组件_在离线环境下安装python组件

    在一些项目中,我们会不可避免地使用到python组件,而生产环境大多数服务器是没有办法直接联网下载python的包的.当然,有的小伙伴会很聪明地把这个包的whl下载下来到服务器上去执行,但是会得到这样 ...

  3. python中使用什么命令安装组件_对Python开发环境在线安装Jupyter组件时,以下哪些指令是符合语法规范的:_________...

    低应变检测时,空心桩的激振点位置与传感器位置宜在(),且与桩中心形成夹角宜为(). 简述数字式仪表的特点. 根据<通信局(站)防雷与接地工程设计规范>,接地线布防时应尽量短直,对于长的线可 ...

  4. 直角三角形的边角关系_华师大版九年级第四章解直角三角形,知识点讲解加经典例题分析...

    1.射影定理 (1)射影定理: ①直角三角形中,斜边上的高是两直角边在斜边上射影的比例中项. ②每一条直角边是这条直角边在斜边上的射影和斜边的比例中项. (2) Rt△ABC中,∠BAC=90∘,AD ...

  5. 苹果4如何添加时间插件_苹果手机如何添加九键或26键输入法?iPhone怎样快速切换输入法?...

    苹果手机用户到今天来说还是有很多的.对于输入法的选择,有人喜欢九宫格,有人喜欢26键,也有喜欢手写输入,也有些喜欢笔画输入.五笔输入法的.你喜欢哪种输入法呢?你知道怎样添加苹果手机的输入法吗?如何快速 ...

  6. 谷粒商城三阶段课件_苏科版初中物理九年级上册二、变阻器公开课优质课课件教案视频...

    课题: 14.2变阻器 教学目标: 1.知道滑动变阻器的构造及工作原理. 2.能画出滑动变阻器的结构示意图和符号. 3.会正确连接和使用滑动变阻器. 4.了解生活中变阻器的一些应用. 教学重点.难点: ...

  7. 下列数据类型中python不支持的是_ 下列选项中 ,Python 不支持的数据类型有 ( ) 。_学小易找答案...

    [单选题] 下列标识符中 , 合法的是 ( ) . [简答题]说明轴承代号7204AC表达的含义. [判断题]type() 函数可以查看变量的数据类型. ( ) [名词解释]限界 [单选题]体育教学 ...

  8. python全栈和java全栈_全栈和python的区别

    首先我们来e68a84e8a2ad62616964757a686964616f31333366303138看看Python在公司的一些基础应用: 1.验证算法:就是对公司一些常见设计算法或者公式的验证 ...

  9. python常用的表达式有关系表达式_数学关系式 表示成正确的 Python表达式为_________。_学小易找答案...

    [单选题]下列选项中,不属于 Python特点的是_______. [判断题]在经济计量分析中,模型参数一旦被估计出来,就可直接运用于实际的计量经济分析. [多选题]计量经济模型的应用在于( ) [填 ...

最新文章

  1. 深度优先搜索算法在RPG游戏迷宫中的应用
  2. 昨天晚上,亲眼目睹了我一哥们的崩溃,被空降90后上司鄙视,说他这种人在公司......
  3. 基准分类模型、分类应用(多分类数字识别、疾病预测、欺诈检测)、监督学习总结
  4. 列表导航栏实例(01)
  5. 北京理工大学 python专题课程-Python语言程序设计
  6. 计算机视觉编程——图像搜索
  7. 1122 Hamiltonian Cycle (25 分)【难度: 一般 / 知识点: 模拟 哈密顿回路】
  8. 【TensorFlow】TensorFlow是什么?
  9. Qt文档阅读笔记-QSet官方解析及实例
  10. 开发环境ubuntu16.04常用工具和设置(git、ssh、python、sh、java、Maven、mysql、postgresql)
  11. linux系统 qq安装教程,在Linux环境下安装QQ教程
  12. html前端几种加密方式的整理,前端js几种加密/解密方法
  13. C语言打印输出图形(初版)
  14. 深度学习(三)theano入门学习
  15. Windows+Ubuntu双系统如何彻底删除Ubuntu操作系统
  16. 浏览器端反爬虫特征收集之字体检测
  17. Porting:telnet远程登录开发板、制作并烧写cramfs和ext4和ramdisk三种格式根文件系统镜像
  18. 7z压缩 lzma流式压缩、解压缩的实现 C语言
  19. 两行数据进行对比-python
  20. ch不是小写英文字母的c语言代码,函数fun的功能是进行字母转换。若形参ch中是小写英文字母,则转换成对应的大写英文字母;若ch中是大写英文字母,则...

热门文章

  1. java单例模式的应用_java单例模式的简单应用例子
  2. oracle定时删库,Oracle数据库如何定期正确删除archivelog文件
  3. Linux6.5图形模式安装,CentOS 6.5弹性云服务器如何安装图形化界面
  4. mysql递归查询之后的排序问题_MySQL递归排序查询+树节点生成
  5. 区别 和esc 打印指令tsc_复印机和打印机仅仅是功能上的区别?
  6. cudamemcpy运行速度很慢_只要设置好这几个选项,让你的 PS CC 2019 运行如飞
  7. 『设计模式』适配器模式(Adapter)
  8. C++获取当前系统时间并格式化输出
  9. python模拟登陆
  10. [图神经网络] 图节点Node表示---GAT