 
 
需要启用 Windows Media Player 功能,否则会提示【System.Runtime.InteropServices.COMException:“没有注册类】操作步骤:控制面板>>程序>>启用或者关闭windows 功能>>选中 媒体功能>>Windows Media Player,点击确定即可
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Runtime.InteropServices;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace mcirecordDome{  public partial class Form1 : Form  {    int sum=0;    [DllImport("winmm.dll", EntryPoint = "mciSendString", CharSet = CharSet.Auto)]    public static extern int mciSendString(     string lpstrCommand,     string lpstrReturnString,     int uReturnLength,     int hwndCallback    );     public Form1()    {      InitializeComponent();    }    List<string> listSong = new List<string>();    //开始录音    private void button1_Click(object sender, EventArgs e)    {      mciSendString("set wave bitpersample 8", "", 0, 0);      mciSendString("set wave samplespersec 20000", "", 0, 0);      mciSendString("set wave channels 2", "", 0, 0);      mciSendString("set wave format tag pcm", "", 0, 0);      mciSendString("open new type WAVEAudio alias movie", "", 0, 0);      this.timer1.Start();      mciSendString("record movie", "", 0, 0);    }    //暂停录音    private void button2_Click(object sender, EventArgs e)    {      mciSendString("stop movie", "", 0, 0);      //mciSendString("save movie 1.wav", "", 0, 0);      this.timer1.Stop();    }    //保存录音    private void button4_Click(object sender, EventArgs e)    {      //按日期保存文件      string file = "save movie"  " "  DateTime.Now.ToString("yyyyMMddhhmmss")  ".wav";      mciSendString(file, "", 0, 0);      currentCount = 0;      mciSendString("close movie", "", 0, 0);    }    public int currentCount = 0;    //显示录制时间    private void timer1_Tick(object sender, EventArgs e)    {      currentCount = 1;      this.label1.Text = currentCount.ToString().Trim();    }    //private AxWMPLib.AxWindowsMediaPlayer sndPlay;          //sndPlay.URL=@"F:\360MoveData\Users\Administrator\Desktop\mcirecordDome\mcirecordDome\bin\Debug\20195803035848.wav";    //选择文件    private void button3_Click(object sender, EventArgs e)    {      OpenFileDialog ofd = new OpenFileDialog();      ofd.Title = "请选择文件";      ofd.Multiselect = true;      ofd.InitialDirectory = @"D:\queena.pan\桌面\record\wav";      ofd.Filter = "音乐文件|*.wav|mp3文件|*.mp3|所有文件|*.*";      ofd.ShowDialog();      //获得我们在文件夹中选择所有文件的全路径      string[] path = ofd.FileNames;      for (int i = 0; i < path.Length; i )      {        //将音乐文件的文件名加载到ListBox中        listBox1.Items.Add(Path.GetFileName(path[i]));        //将音乐文件的全路径存储到泛型集合中        listSong.Add(path[i]);      }    }    private void axWindowsMediaPlayer1_Enter(object sender, EventArgs e)    {    }    //播放暂停    private void button7_Click(object sender, EventArgs e)    {      if (button7.Text == "播放")      {        axWindowsMediaPlayer1.URL = listSong[listBox1.SelectedIndex];        axWindowsMediaPlayer1.Ctlcontrols.play();        button7.Text = "暂停";      }      else      {        axWindowsMediaPlayer1.Ctlcontrols.pause();        button7.Text = "播放";      }    }    //上一首    private void button5_Click(object sender, EventArgs e)    {      // 获得当前选中歌曲的索引      int index = listBox1.SelectedIndex;      index--;      if (index < 0)      {        index = listBox1.Items.Count - 1;      }      //将重新改变后的索引重新的赋值给当前选中项      listBox1.SelectedIndex = index;      axWindowsMediaPlayer1.URL = listSong[index];      axWindowsMediaPlayer1.Ctlcontrols.play();    }    //下一首    private void button6_Click(object sender, EventArgs e)    {      int index = listBox1.SelectedIndex;      index ;      if (index == listBox1.Items.Count)      {        index = 0;      }      listBox1.SelectedIndex = index;      axWindowsMediaPlayer1.URL = listSong[index];      axWindowsMediaPlayer1.Ctlcontrols.play();    }  }}

 
  
					
				
评论