自制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.重复上边的步骤就可以了

最新文章

  1. Fig 应用编排
  2. OpenMP编程总结表
  3. Tomcat的目录结构、处理流程、主配置文件(server.xml)释义
  4. Repeater展示表格
  5. NSString Byte NSData 字节(字符)字符串
  6. VC++ 工程添加 Unicode Debug和Unicode Release编译支持
  7. Maven依赖范围及依赖传递
  8. sysfs实例
  9. 动手写一个快速集成网易新闻,腾讯视频,头条首页的ScrollPageView,显示滚动视图
  10. socket (转,吴秦,http://www.cnblogs.com/skynet/archive/2010/12/12/1903949.html)
  11. AT NEW 和 AT END OF 的用法
  12. BZOJ 3473: 字符串 [广义后缀自动机]
  13. Java拦截器的实现原理
  14. leetcode 189 旋转数组
  15. SpringBoot文件上传下载
  16. MySQL yum 在线与本地包方式安装
  17. A股时间窗口
  18. L2-027. 名人堂与代金券
  19. AJAX--总结
  20. C 语言 register 关键字

热门文章

  1. Ubuntu 桌面歌词
  2. SDH,WDM, OTN, MSTP,Ethernet, PTN, IP RAN
  3. poj 1106 Transmitters (枚举+叉积运用)
  4. android进程间通信:使用AIDL
  5. 广州Uber优步司机奖励政策(1月25日~1月31日)
  6. java.lang.ClassCastException: Ljava.lang.Object; cannot be cast to com.entity.Advertisem异常
  7. 【Android - 框架】之XBanner的使用
  8. 网络子系统43_ip选项预处理
  9. Oracle 学习笔记 11 -- 视图 (VIEW)
  10. const char*, char const* and char *const 分类: C/C++ OpenCV 2014-11-08 18:10 114人阅读 评论(0) 收藏