【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

浙公网安备 33010602011771号