KTV2
自制KTV点歌系统经验
重唱与切歌
1.重唱
这个简单,会了播放,就会了这个;
我们用的数组下标来确定播放歌曲,自然如果下标没变的话,那播放的就还是这首了。所以只要确定了要执行的命令是重唱就行了。
那么问题来了,如何确定执行的命令是什么。
Song类:
我们可以自定义一个Song歌曲类,用来封装歌曲的姓名,路径,状态。
姓名:歌曲名
路径:用于播放
状态:确定执行的命令
在定义一个枚举来确定状态的取值范围
已播,未播,重唱,切歌
前边的所有Song类的对象的模板都是这个类的实例
这样只要在播放窗口的Tick事件中加个if判断来确定当前播放歌曲的状态是否为重唱,如是:
让当前播放歌曲为空,这样因为播放不为停止所以不会进入下一首的if判定,而因为歌曲为空,
一秒后Tick事件再次触发时,歌曲为空,就再次得到核心类的正在播放歌曲,而因为没有进入下一首的if
判定所以播放歌曲下标不变,自然播放的还是当前播放的歌曲。
2.切歌
同理与重唱,只要用歌曲的状态知道了要执行的是切歌命令,在播放窗体做出相应的判断就行了。
那切歌需要执行的操作有那些哪?
其实只有一个,那就是覆盖。
既然我们用的是数组,那只要让数组的下标的位置发生变化既循环让数组的下标i+1项把值赋给数组下标i项不就可以(当然要注意下标越界和空值等问题)当然要改变播放歌曲的状态为切歌。
播放类里,如播放歌曲的状态为切歌 那把播放歌曲的值赋为null(空)
我们伟大的Tick事件在漫偶长的1秒后从新触发时歌曲为null
得到核心类的正在播放歌曲,因为切歌是已循环覆盖了数组的值,所以自然就没有了已被切掉的歌曲。
2.2如要切指定的歌曲那?
同理,只要得到要切歌的歌曲在数组里的下标,然后同上操作。
1.首先既然要选就得有已点歌曲列表。如用ListView控件表示
2.得到所选的歌曲的下标,用SelectedItems得到
3.重复上边的步骤就可以了
KTV2的更多相关文章
- python全栈开发 * 线程锁 Thread 模块 其他 * 180730
一,线程Thread模块1.效率更高(相对于进程) import time from multiprocessing import Process from threading import Thre ...
- Badboy - variable setter
参考: http://leafwf.blog.51cto.com/872759/1117646 http://www.51testing.com/html/00/130600-1367743.html ...
随机推荐
- vijosP1779国王游戏
题目:https://vijos.org/p/1779 题解:忽然想起来我好像还没写过高精度除以单精度,于是拿这题练练手...没想到1A了... 代码: #include<cstdio> ...
- BZOJ1617: [Usaco2008 Mar]River Crossing渡河问题
1617: [Usaco2008 Mar]River Crossing渡河问题 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 654 Solved: 4 ...
- 【EJS】
// 用=号输出,就会被escapge转义编码 <%= VARIABLE_NAME %> // 用“-”输出原始内容, 不会被escape <%- VARIABLE_NAME %&g ...
- SWMM[Storm Water Management Model]模型代码编译调试环境设置
1. 下载计算引擎源代码后解压, 目前最新版本5-0-022. 其中包含源文件和工程文件,选择vc2005_con.在源代码目录下创建VC2005_CON目录拷贝VC2005-CON.VCPROJ 放 ...
- Google财经
本博文的主要内容有 .Google财经的介绍 .市场 .新闻 .投资组合新闻 .投资组合 1.Google财经的介绍 https://zh.wikipedia.org/wiki/Goog ...
- Apache-POI操作Excel的一些小技巧
Apache-POI操作Excel将合并后的单元格全部填充为相同数据的一个实例. private static void fillMergedRegion(final Sheet sheet) { f ...
- Vim 程序编辑器 经常使用操作
按下 i 进入编辑模式 wq! 强制保存并退出 q! 不保存,强制退出 !有强制的意思 方向键位: k h j l Ctrl + f 向下移动一页 Ctrl + b 向上移动一页 0 一行的开头 ...
- GDB调试总结__1
该博客旨在分享IT技术心得和实际工作中遇到问题的解决方法,下面是新浪博客地址http://blog.sina.com.cn/qianyumolu,则为分享经济.行业趋势.心灵文章等,有兴趣的朋友能够踩 ...
- 字符串匹配之KMP---全力解析
近日,一同学面试被问到字符串匹配算法,结果因为他使用了暴力法,直接就跪了(如今想想这种面试官真的是不合格的,陈皓的一篇文章说的非常好,点击阅读).字符串匹配方法大概有:BF(暴力破解法), 简化版的B ...
- 关于ajaxfileupload.js一些问题和上传图片就立即显示图片功能
ajaxfileupload.js是上传文件的一个插件,最近碰到的一个问题是在谷歌浏览器上传文件之后,原文本框中的文件名称消失,网上搜了好长时间也没有十分满意的答案.无刷新上传文件我想到的只有ajax ...