【c#】源码 winform版播放mp3实例,支持本地文件和URL链接

需要DLL:Interop.QuartzTypeLib.dll

  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Data;
  5 using System.Drawing;
  6 using System.Text;
  7 using System.Windows.Forms;
  8 
  9 namespace demo_media
 10 {
 11     public partial class Form1 : Form
 12     {
 13         private xqMedia.Audio ad = null;
 14         
 15         public Form1()
 16         {
 17             InitializeComponent();
 18         }
 19 
 20         private void Form1_FormClosing(object sender, FormClosingEventArgs e)
 21         {
 22             if (ad != null)
 23                 ad.CloseMedia();
 24         }
 25 
 26         private void Form1_Load(object sender, EventArgs e)
 27         {
 28             ad = new xqMedia.Audio();
 29             updateToolBar();
 30             updateSum();
 31         }
 32 
 33         private void updateToolBar()
 34         {
 35             trackBar2.Enabled = trackBar1.Enabled = true;
 36             switch (ad.MediaStatus)
 37             {
 38                 case 0:
 39                     trackBar2.Enabled = trackBar1.Enabled = false;
 40                     tsbPlay.Enabled = false;
 41                     tsbPause.Enabled = false;
 42                     tsbStop.Enabled = false;
 43                     break;
 44                 case 1:
 45                     tsbPlay.Enabled = true;
 46                     tsbPause.Enabled = false;
 47                     tsbStop.Enabled = false;
 48                     break;
 49                 case 2:
 50                     tsbPlay.Enabled = true;
 51                     tsbPause.Enabled = false;
 52                     tsbStop.Enabled = true;
 53                     break;
 54                 case 3:
 55                     tsbPlay.Enabled = false;
 56                     tsbPause.Enabled = true;
 57                     tsbStop.Enabled = true;
 58                     break;
 59             }
 60             trackBar2.Value = ad.MediaVol;
 61         }
 62 
 63         private void updateSum()
 64         {
 65             lbSum.Text = string.Format("{0} / {1}", ad.MediaCurPos2, ad.MediaDuration2);
 66             trackBar1.Value = ad.MediaCurPos;
 67         }
 68 
 69         private void timer1_Tick(object sender, EventArgs e)
 70         {
 71             if (ad.MediaStatus == 3)
 72                 updateSum();
 73             else if (ad.MediaStatus == 1)
 74             {
 75                 updateToolBar();
 76                 updateSum();
 77             }
 78         }
 79 
 80         private void tsbOpen_Click(object sender, EventArgs e)
 81         {
 82             OpenFileDialog ofd = new OpenFileDialog();
 83             ofd.Filter = "All Files|*.*";
 84             if (ofd.ShowDialog() != DialogResult.OK) 
 85                 return;
 86             ad.RenderMedia(ofd.FileName, true);
 87             trackBar1.Maximum = ad.MediaDuration;
 88             updateToolBar();
 89         }
 90 
 91         private void tsbPlay_Click(object sender, EventArgs e)
 92         {
 93             ad.Play();
 94             updateToolBar();
 95         }
 96 
 97         private void tsbPause_Click(object sender, EventArgs e)
 98         {
 99             ad.Pause();
100             updateToolBar();
101         }
102 
103         private void tsbStop_Click(object sender, EventArgs e)
104         {
105             ad.Stop();
106             updateToolBar();
107         }
108 
109         private void trackBar1_Scroll(object sender, EventArgs e)
110         {
111             ad.Seek(trackBar1.Value);
112         }
113 
114         private void trackBar2_Scroll(object sender, EventArgs e)
115         {
116             ad.MediaVol = trackBar2.Value;
117         }
118     }
119 }

源码下载:https://www.lanzous.com/i23qp1c

posted @ 2018-10-23 08:58  Healer_007  阅读(126)  评论(0)    收藏  举报