• 歌曲播放界面原理


     环境:

      Visual studio 2012,Sql Server

    1. VS工具栏中添加播放器控件,步骤如下:

      打开工具栏→选择任意控件右击→选中”选择项…”打开→选择”COM组件”→找到”Windows Media Player”勾上复选框→点击确定

    1. 在主界面添加Windows Media Player控件,修改属性名称,至此搭建播放界面完成

    Main:

    打开先前写好的程序至歌曲添加界面(如图):

     

    当点击某一首歌曲时,在DataGirdView控件的CellClick事件中进行添加歌曲到提前定义好的对象数组中,代码如下:

    此处,songtype的判定是因为在已点列表和歌曲列表界面同时共用了一个窗体,若非共用窗体则不需要在此判定,而DGV_list.SelectedRows[0].Cells[“”]则是获取到选中行集合的第一行(即下标为0)的具体列的值,进行String类型的一个转换,最终把得到的每一项的值赋给对象数组中与之对应的项,同时调用之前定义好的方法(如下图),获取到需要播放的歌曲,由于该方法需要得到一个song的对象,因此在调用该方法时需要给他一个对象参数

     

    此时,需要给主界面添加一个Timer控件,在他的Tick事件中来判定song对象是否为空,如果为空则调用Playsong方法(如图)进行播放

     

    下图为调用播放当前歌曲的方法

     

    那么如果当前song对象不为空,则同时判定播放器是否是停止状态,如果停止便立即播放下一首(如图)

     

    在调用MoveNext方法时需要判定下标加一的数组对象是否为空,换句话说就是判定是不是还有下一首歌曲,如有就让数组的索引加一,进行下一首歌曲的播放,在这里需要注意的是,如果已经开始播放下一首歌曲了,那么是不是该把上一首歌曲信息清除呢,因为如果不做清除处理,那么他的对象数组中一直会保留上一首歌曲,也就是”Song==null”这个条件一直为假,则就不会自动播放下一首,所以在此需要把他的Song对象的值强行改为null,这样在Timer控件的自动刷新下,便会自动播放下一首歌曲了

      其实在这个过程中,最主要的便是获取需要播放的歌曲的URL地址,所以在获取DataGirdView控件的值得时候,要同时获取到该歌曲的Url地址,把他存放在对象数组中隐藏起来,在播放当前歌曲的方法中再把它调用出来即可

  • 相关阅读:
    get 传 json 数据
    go text/template html/template invalid memory address or nil pointer dereference
    (转)go语言变参,匿名函数的多种用法
    shell 定义变量 坑
    python3 使用aria2下载的一个脚本
    python3 selenium 超时停止加载,并且捕捉异常, 进行下一步【亲测有效】
    selenium学习笔记——driver.get(url) 页面加载时间太长
    python Selenium chromedriver 自动化超时报错:你需要使用多标签保护罩护体
    selenium等待
    小数据池与代码块
  • 原文地址:https://www.cnblogs.com/BlogHunter-Hu/p/4671461.html
Copyright © 2020-2023  润新知