zoukankan      html  css  js  c++  java
  • 第五篇——Spring音乐播放界面设计(C#)

    由于小组成员已经完成软件的详细设计说明书,在这里只具体说明软件程序的细节编写,以免重复。 

    歌曲的播放采用VS自带的axWindowsMediaPlayer插件,所以程序中涉及到许多该插件的使用。Ctlcontrols属性是AxWindowsMediaPlayer的一个重要属性, 此控件中有许多常用成员。下面是常用的几个,除了4和5在该音乐播放器中不需要用到,其他几个方法均需要。

    (1) 方法play

    用于播放多媒体文件,其格式为:窗体名.控件名.Ctlcontrols.play()

    如: AxWindowsMediaPlayer1.Ctlcontrols.play()

    (2) 方法pause

    用于暂停正在播放的多媒体文件,其格式为:窗体名.控件名.Ctlcontrols.pause()

    如: AxWindowsMediaPlayer1.Ctlcontrols.pause()

    (3) 方法stop

    用于停止正在播放的多媒体文件,其格式为:窗体名.控件名.Ctlcontrols.stop()

    如: AxWindowsMediaPlayer1.Ctlcontrols.stop()

    (4) 方法fastforward

    用于将正在播放的多媒体文件快进,其格式为:窗体名.控件名.Ctlcontrols.fastforward()

    如:AxWindowsMediaPlayer1.Ctlcontrols.forward()

    (5) 方法fastreverse

    用于将正在播放的多媒体文件快退,其格式为:窗体名.控件名.Ctlcontrols.fastreverse()

    如:AxWindowsMediaPlayer1.Ctlcontrols.fastreverse()

    (6) 属性CurrentPosition

    用于获取多媒体文件当前的播放进度,其值是数值类型,使用格式为:窗体名.控件名.Ctlcontrols.currentPosition

    如d1=AxWindowsMediaPlayer1.Ctlcontrols.currentPosition 其中d1 是一个整型变量。

    (7) 属性Duration

    用于获取当前多媒体文件的播放的总时间,其值为数值类型,其使用格式为:窗体名.控件名.currentMedia.duration

    如:d2=AxWindowsMediaPlayer1.currentMedia.duration (其中d2是一个整型变量)。

    controls.currentPositionString:string; 当前进度,字符串格式。如“00:23”

    基本属性 

    URL:String; 指定媒体位置,本机或网络地址

    uiMode:String; 播放器界面模式,可为Full, Mini,None, Invisible

    playState:integer; 播放状态,1=停止,2=暂停,3=播放,6=正在缓冲,9=正在连接,10=准备就绪

    ********************************************************************

    根据Spring音乐播放器的可行性分析和需求分析,确定软件播放界面具体需要实现功能如下:

    1.添加歌曲并播放;

    编写函数,利用URL指定媒体位置,此处媒体位置为本机D盘,根据路径播放歌曲;将歌曲名显示在标题label中;在listBox中插入歌曲名;用一个数组存储每首歌曲的文件信息。

      //播放
            public void play(string namepath)
            {
                timer4.Enabled = false;
                this.axWindowsMediaPlayer1.URL = namepath;
                musicname.Text = this.axWindowsMediaPlayer1.currentMedia.name;//标题显示歌曲名
                this.listBox1.Items.Insert(0, musicname.Text);
                getNum();
                timer3.Enabled = true;
                getmusicTime();
            }

    2.暂停,停止播放;

    使用方法play,pause,stop即可控制暂停和停止播放,进行播放操作的时候,控制计时器。

    //暂停、继续播放
    private void onpause_Click(object sender, EventArgs e)
            {
                if (plays == false)
                {
                    this.axWindowsMediaPlayer1.Ctlcontrols.play();
                    timer3.Enabled = true;
                    plays = true;
                }
                else
                {
                    this.axWindowsMediaPlayer1.Ctlcontrols.pause();
                    timer3.Enabled = false;
                    plays = false;
                }
            }
     //停止、继续播放
    private void onstop_Click(object sender, EventArgs e)
            {
                if (plays == false)
               {
                    this.axWindowsMediaPlayer1.Ctlcontrols.play();
                    timer3.Enabled = true;
                    plays = true;
                }
                else
                {
                    this.axWindowsMediaPlayer1.Ctlcontrols.stop();
                    timer3.Enabled = false;
                    plays = false;
                }
            }

    3.播放上一曲,下一曲;

    将music以数组形式存储,播放的时候按数组名加减播放即可。

     //上一首
            private void previousmusic_Click(object sender, EventArgs e)
            {
                musicNum--;
                try
                {
                    play(names[musicNum]);
                }
                catch (Exception)
                {
                    musicNum += 1;
                }
            }
    
            //下一首
            private void nextmusic_Click(object sender, EventArgs e)
            {
                musicNum++;
                try
                {
                    play(names[musicNum]);
                }
                catch (Exception)
                {
                    musicNum -= 1;
                }
            }

    4.滚动显示歌曲名;

    musicname.Text = this.axWindowsMediaPlayer1.currentMedia.name;// musicname为显示歌曲名的label名;获取歌曲播放时间,根据时间改变歌曲名label显示位置(Location)即可。

    5.生成歌曲列表并自动排序;

    使用this.listBox1.Items.Insert(0, musicname.Text);//在listBox中插入歌曲名;将listBox属性设置为Sort即可自动排序。

    6.可从歌曲列表中播放歌曲;

    在listbox中每首个对应的位置添加按钮或者label隐藏,当点击listbox中不同歌曲时,相当于点击对应的按钮,对按钮_Click进行编程,每次点击就播放对应位置的歌曲,歌曲名的位置根据listbox中的排序位置确定(具体实现仍有待实现)。

  • 相关阅读:
    策略模式Strategy
    flex项目
    模板方法Template Method
    timer与ScheduledExecutorService
    java两个字符串的相似度
    一个简单的webshell
    状态模式State
    Java性能优化
    责任链模式China of Responsibility
    ns2.34下mflood协议的完美移植
  • 原文地址:https://www.cnblogs.com/ningmouming/p/5496126.html
Copyright © 2011-2022 走看看