基本機能 - C#は()単純なローカル音楽プレーヤーを作成します

元の記事の最初の部分に似たこの記事首長、に触発さ:オリジナル表示ポスト、わずかにすべての後に、言及されていないサプリメントいくつか、知識が近視眼。

ページのデザインセクション

ここに画像を挿入説明
オリジナルのペーストと同様、現在の再生区間を示すために、ラベルだけ長い期間と総曲の再生を追加します。窓を追加windowsMediaPlayer制御方法来る:右Toolboxは - [オプション]をクリックします - フォームに決定windowsMediaPlayer--を検索し、チェックするために - COMコンポーネントをクリックしてください。
注:windowsMediaPlayer独自のコントロール・インターフェース・コントロールを直接使用することができます

コードの実装部分

曲の追加1.

まず、我々はいくつかの変数を宣言します。maxは、曲時間の合計長さは、分BAL曲が再生されている長さのパーセンテージとして表さ現在再生中の曲の位置を表します。

        double max, min, bal;                  //为播放进度条提前声明变量

曲にボタンのコードを追加します。

        private void button_Addmusic_Click(object sender, EventArgs e)
        {
            OpenFileDialog open = new OpenFileDialog();       //实例化一个通用对话框
            open.Filter = "音频文件(*.mp3)|*.mp3";            //选择文件格式
            if (open.ShowDialog() == DialogResult.OK)
            {
                //还原最大值最小值及进度条位置
                max = 0.0;
                min = 0.0;
                bal = 0.0;
                trackBar_progress.Value = 0;
                myMediaPlayer.URL = open.FileName;            //添加到播放器组件
                listBox_music.Items.Add(open.FileName);       //将音频文件路径添加到列表框内
                listBox_music.SelectedIndex = listBox_music.Items.Count - 1;    //列表框选中项为添加的歌曲路径
                timer_progress.Enabled = true;                //开始检测进度
            }
        }
2.再生の進行状況

windowsMediaPlayerコントロールはプログレスバーが付属していますが、ここではプログレスバーの変化が時間に依存するので、我々はそう、1000年に1秒に1回トリガーされるイベントをtimer_progressという名前のタイマー制御、Intervalプロパティを追加し、システムからトラックバーコントロールを使用します。ダニがイベントを登録する場合は、次の通り:

        private void timer_progress_Tick(object sender, EventArgs e)
        {
            try
            {
                max = myMediaPlayer.currentMedia.duration;      //获取文件的时间长度
                min = myMediaPlayer.Ctlcontrols.currentPosition;//获取文件的当前播放位置
                bal = min / max;                                //计算百分比
                trackBar_progress.Value = (int)(bal * 100);     //设置滑块位置
                //将时长转化为XX:XX并显示在相应label上
                int intmax = (int)max;
                int intmin = (int)min;
                int intminM = intmin / 60;
                int intminS = intmin % 60;
                int intmaxM = intmax / 60;                      
                int intmaxS = intmax % 60;
                label_time.Text = intminM.ToString() + ":" + intminS.ToString() + "/" + intmaxM.ToString() + ":" + intmaxS.ToString();
                //截取路径的文件名部分显示在“当前歌曲”的label上
                string nowsong = listBox_music.SelectedItem.ToString();
                label_nowsong.Text = nowsong.Substring(nowsong.LastIndexOf("\\") + 1);
            }
            catch (Exception)
            {
                //切换歌曲瞬间可能导致max,min无值,添加try跳转报错但并不对报错进行处理
            }
        }
3.ドラッグプレイ

「プレス一時停止」をプレイする予定ですドラッグを実現するために、2つのイベントが「リリースは、引き続き」。プログレスバーを押すと、一時停止を再生。指定の場所にスライドした後に、ボタンのプログレスバーを解放し、再生は現在のリリース位置から継続します。
「押して一時停止」次のようにトラックバーMouseDownイベントコードがあること:

        private void trackBar_progress_MouseDown(object sender, MouseEventArgs e)
        {
            timer_progress.Enabled = false;     //停止检测播放进度
            myMediaPlayer.Ctlcontrols.pause();  //暂停当前播放文件
        }

トラックバーMouseUpイベントのコードであること「のリリースは、引き続き」次のとおりです。

        private void trackBar_progress_MouseUp(object sender, MouseEventArgs e)
        {
            double newValue = trackBar_progress.Value * 0.1 * 0.1 * max;
            myMediaPlayer.Ctlcontrols.currentPosition = newValue;          //为播放控件赋予新进度
            myMediaPlayer.Ctlcontrols.play();                              //从当前进度开始播放
            timer_progress.Enabled = true;                                 //开始检测播放进度
        }
4.スタート演奏

以下のように、「スタートボタン」という遊びをクリックしてください:

        private void button_Start_Click(object sender, EventArgs e)
        {
            myMediaPlayer.Ctlcontrols.play();         //开始播放
        }

次のようにもちろん、あなたが曲のリストをダブルクリックして、パスを指定することで、曲を再生することができ、コードは次のとおりです。

        private void listBox_music_DoubleClick(object sender, EventArgs e)
        {
            //若点击的歌曲列表有效,为播放控件赋予新路径
            if (listBox_music.SelectedIndex != -1)
            {
                myMediaPlayer.URL = listBox_music.SelectedItem.ToString();
            }
        }
5.一時停止プレイ

以下のように、一時停止に再生されている「一時停止ボタン」をクリックしてください:

        private void button_Stop_Click(object sender, EventArgs e)
        {
            myMediaPlayer.Ctlcontrols.pause();        //暂停播放
        }
6.ストッププレイ

現在のコードを演奏する「停止ボタン」停止をクリックして次のとおりです。

        private void button_End_Click(object sender, EventArgs e)
        {
            myMediaPlayer.Ctlcontrols.stop();         //停止播放
        }

もちろん、ただ近いプログラムは、再生を停止することができます。

ポストスクリプトパーツ

、曲を選択して、基本的に実行されたシンプルな音楽プレーヤーのこの時点でのスケジュール、開始、一時停止、停止の再生を示しています。フォローアップの歌詞表示上では、第二の部分を見ることができますC#同期歌詞表示曲のリストで述べたように、次のオリジナルのポストはすべて、知識の浅いした後、次の時間を開いて、私たちを許してロードされたとき。

公開された10元の記事 ウォン称賛18 ビュー2441

おすすめ

転載: blog.csdn.net/weixin_44122062/article/details/104155655