歌曲播放原理

一开始要有一个Song类,在类外面定义枚举,在里面放四种状态,

为:已播放,未播放,重唱,切歌

在类里把歌曲名称和路径封装成字段

起初每首歌的状态默认为未播放

通过MadeSongPlayed(),MadeSongAgain(),MadeSongCut()这几种方法

可以实现分别将歌曲状态改为已播放,重唱,切歌的功能

当你在歌曲列表页面想要点击播放一首歌的时候

因为现在的歌曲名和歌手只是两个字符串,所以你要先创建一个歌曲对象

此外,还要在PlayList类里写一个方法获取当前播放的歌曲, 既然是获取当前播放的歌曲,返回值肯定是Song类型

因为你不可能只听一首歌并且只能听一遍,所有还要实现自动播放下一首的功能,所以还要有一个方法

public void NextSong()

{

if(SongList[SongIndex]!=null)

{

SongIndex++;

}

}

然后就看FrmPlay里的代码就容易了

每播放一首歌要将它的状态改为已播放

当一首歌播放完之后,播放器停止了 这时候要进行释放 将歌曲再设为null

这样FrmPlay控件就又会走调用GetSong来播放歌曲的代码,循环下去就实现了自动播放下一首的功能

KTV歌曲播放原理的更多相关文章

  1. KTV点歌系统播放原理

    北大青鸟KTV点歌系统播放原理 指导老师--原玉明 1.首先知道有两个类(PlayList   Song) PlayList类中有一方法 public static bool AddSong(Song ...

  2. 【代码笔记】iOS-仿QQ空间,歌曲播放

    一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> #import <AVFoundation/AVFo ...

  3. 小学生之KTV播放原理

    第一步: 创建一个Song类 //歌曲名称 public  string SongName { get; set; } //歌曲路劲 public string SongPath { get; set ...

  4. 网易云歌词解析(配合audio标签实现本地歌曲播放,歌词同步)

    先看下效果 github上做的一个音乐播放器: https://github.com/SorrowX/electron-music 中文歌曲 英文歌曲(如果有翻译的中文给回返回出去) 韩文歌曲 来看下 ...

  5. vue-music 跨域获取QQ音乐歌曲播放源

    这个问题困扰了我很久,一直获取不到正确的播放源,qq对这块限制更加严格了 按照之前老师在视频中的写法,已经不能获取到播放源了 下面来分析一下正确的播放源url:http://dl.stream.qqm ...

  6. 多线程下载网络歌曲&播放歌曲&并用seekbar调节进度&显示歌曲两边的时间

    这里先给一个处理时间格式的代码: /** * 时间的处理 *  * @param time * @return */ public static String getTimeFromInt(int t ...

  7. 歌曲播放页面的数据vuex管理

    1.state.js import {playMode} from '@/common/js/config' const state = { singer:{}, playing:false, ful ...

  8. KTV项目 SQL数据库的应用 结合C#应用窗体

    五道口北大青鸟校区 KTV项目 指导老师:袁玉明 歌曲播放原理 SQL数据库关系图 C#解决方案类图 第一步:创建数据库连接方法和打开方法和关闭方法! public class DBHelper { ...

  9. Swift - 歌曲播放样例(附带播放时间和播放进度)

    使用MPMoviePlayerController我们可以是进行音乐播放,下面是一个播放器样例.同时,播放时还可以显示播放时间和播放进度. 1 2 3 4 5 6 7 8 9 10 11 12 13 ...

随机推荐

  1. VBA 刷新数据透视表

    Sub pjCount() Dim r As Long r = Sheets("Inquery").[A65536].End(xlUp).Row ActiveSheet.Pivot ...

  2. 数据中心网络架构的问题与演进 — 云网融合与 SD-WAN

    目录 文章目录 目录 前文列表 云网融合 云网融合的应用场景 SD-WAN SD-WAN 的应用场景 企业组网互联 SD-EN 数据中心互联 SD-DCI 云间互联 SD-CX 企业用户接入云 数据中 ...

  3. Ubuntu vmware补丁

    获取补丁文件 curl http://pastie.org/pastes/9934018/download -o /tmp/vmnet-3.19.patch 如果无法下载,云盘上取,网址为:http: ...

  4. pod installation failed with react native 0.44

    今天在集成react-native-sqlite-storage组件CocoaPods的时候遇到以下错误,这里记录一下错误解决方法: 报错如下: 以为是我Cocoapods的版本问题,于是更新版本: ...

  5. 第一个React Native项目

    1>下图操作创建第一个React Native项目: 用Xcode运行界面如下: 记住: 在使用项目文件期间,终端记住不要关闭的哟!!! 改变了程序代码,需要刷新运行,使用快捷键: Comman ...

  6. JAVA是否适合非科班者自学入行?石油工程专业从培训到JAVA入门自学亲身经历

    如今的我已经过了三十而立的年纪,虽然在三十岁我没有立下任何事业,相反,还在茫茫苦海中挣扎. 但是我并不是没有收获.当然,曾经在我拥有大好青春年华的时候选择了迷茫,以至于当我有所明悟的时候,却已经错过了 ...

  7. 【React】- 1、React介绍

    React的开发背景 构建数据不断变化的大型应用 大量DOM操作   <----   自动DOM操作 数据变化 逻辑及其复杂   <----   状态对应内容(自动变化) 特点: - 简单 ...

  8. 【并行计算-CUDA开发】CUDA bank conflict in shared memory

    http://hi.baidu.com/pengkuny/item/c8070b388d75d481b611db7a 以前以为 shared memory 是一个万能的 L1 cache,速度很快,只 ...

  9. Java学习笔记-IO

    IO(Input Output)流,用来处理设备之间的数据传输 IO IO概述 Java对数据的操作是通过流的方式 Java用于操作流的对象都在IO包中 流按操作数据分为两种:字节流与字符流 流按流向 ...

  10. 深入理解C语言-深入理解指针

    关于指针,其是C语言的重点,C语言学的好坏,其实就是指针学的好坏.其实指针并不复杂,学习指针,要正确的理解指针. 指针是一种数据类型 指针也是一种变量,占有内存空间,用来保存内存地址 指针就是告诉编译 ...