ITPub博客

首页 > 应用开发 > IT综合 > C#中用API实现MP3等音频文件的播放类之二(转)

C#中用API实现MP3等音频文件的播放类之二(转)

原创 IT综合 作者:BugRobber 时间:2007-07-06 20:28:54 0 删除 编辑
二、用于测试媒体播放类的简单代码:

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Runtime.InteropServices;
using System.Text;
using System.IO ;
using clsMCIPlay;

namespace MCIPlay
{
  ///
  /// Form1 的摘要说明。
  ///

  public class Form1 : System.Windows.Forms.Form
  {
   private System.ComponentModel.IContainer components;
   private System.Windows.Forms.Timer timer1;
   private System.Windows.Forms.Button Play;
   private System.Windows.Forms.Button Stop;
   private System.Windows.Forms.Button Puase;
   private System.Windows.Forms.Label PlayFileName;
   private System.Windows.Forms.Label Duration;
   private System.Windows.Forms.Label CurrentPosition;
   private System.Windows.Forms.OpenFileDialog openFileDialog1;
   private System.Windows.Forms.Button BrowserFile;
   clsMCI mp = new clsMCI();

   public Form1()
   {
    //
    // Windows 窗体设计器支持所必需的
    //
    InitializeComponent();

    //
    // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
    //
   }

   ///
   /// 清理所有正在使用的资源。
   ///

   protected override void Dispose( bool disposing )
   {
    if( disposing )
    {
     if (components != null)
     {
      components.Dispose();
     }
    }
    base.Dispose( disposing );
   }

   #region Windows 窗体设计器生成的代码
   ///
   /// 设计器支持所需的方法 - 不要使用代码编辑器修改
   /// 此方法的内容。
   ///

   private void InitializeComponent()
   {
    this.components = new System.ComponentModel.Container();
    this.Play = new System.Windows.Forms.Button();
    this.PlayFileName = new System.Windows.Forms.Label();
    this.Duration = new System.Windows.Forms.Label();
    this.Stop = new System.Windows.Forms.Button();
    this.Puase = new System.Windows.Forms.Button();
    this.CurrentPosition = new System.Windows.Forms.Label();
    this.timer1 = new System.Windows.Forms.Timer(this.components);
    this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
    this.BrowserFile = new System.Windows.Forms.Button();
    this.SuspendLayout();
    //
    // Play
    //
    this.Play.Location = new System.Drawing.Point(102, 243);
    this.Play.Name = "Play";
    this.Play.Size = new System.Drawing.Size(78, 24);
    this.Play.TabIndex = 0;
    this.Play.Text = "Play";
    this.Play.Click += new System.EventHandler(this.Play_Click);
    //
    // PlayFileName
    //
    this.PlayFileName.AutoSize = true;
    this.PlayFileName.Location = new System.Drawing.Point(12, 15);
    this.PlayFileName.Name = "PlayFileName";
    this.PlayFileName.Size = new System.Drawing.Size(0, 17);
    this.PlayFileName.TabIndex = 1;
    //
    // Duration
    //
    this.Duration.AutoSize = true;
    this.Duration.Location = new System.Drawing.Point(15, 51);
    this.Duration.Name = "Duration";
    this.Duration.Size = new System.Drawing.Size(0, 17);
    this.Duration.TabIndex = 2;
    //
    // Stop
    //
    this.Stop.Location = new System.Drawing.Point(282, 243);
    this.Stop.Name = "Stop";
    this.Stop.Size = new System.Drawing.Size(81, 24);
    this.Stop.TabIndex = 3;
    this.Stop.Text = "Stop";
    this.Stop.Click += new System.EventHandler(this.Stop_Click);
    //
    // Puase
    //
    this.Puase.Location = new System.Drawing.Point(198, 243);
    this.Puase.Name = "Puase";
    this.Puase.Size = new System.Drawing.Size(72, 24);
    this.Puase.TabIndex = 4;
    this.Puase.Text = "Puase";
    this.Puase.Click += new System.EventHandler(this.Puase_Click);
    //
    // CurrentPosition
    //
    this.CurrentPosition.AutoSize = true;
    this.CurrentPosition.Location = new System.Drawing.Point(15, 87);
    this.CurrentPosition.Name = "CurrentPosition";
    this.CurrentPosition.Size = new System.Drawing.Size(0, 17);
    this.CurrentPosition.TabIndex = 5;
    //
    // timer1
    //
    this.timer1.Enabled = true;
    this.timer1.Interval = 1000;
    this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
    //
    // BrowserFile
    //
    this.BrowserFile.Location = new System.Drawing.Point(312, 165);
    this.BrowserFile.Name = "BrowserFile";
    this.BrowserFile.Size = new System.Drawing.Size(87, 24);
    this.BrowserFile.TabIndex = 6;
    this.BrowserFile.Text = "SelectFile";
    this.BrowserFile.Click += new System.EventHandler(this.BrowserFile_Click);
    //
    // Form1
    //
    this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
    this.ClientSize = new System.Drawing.Size(433, 287);
    this.Controls.Add(this.BrowserFile);
    this.Controls.Add(this.CurrentPosition);
    this.Controls.Add(this.Puase);
    this.Controls.Add(this.Stop);
    this.Controls.Add(this.Duration);
    this.Controls.Add(this.PlayFileName);
    this.Controls.Add(this.Play);
    this.Name = "Form1";
    this.Text = "Form1";
    this.ResumeLayout(false);

   }
   #endregion

   ///
   /// 应用程序的主入口点。
   ///

   [STAThread]
   static void Main()
   {
    Application.Run(new Form1());
   }

   //选择MP3文件播放
   private void Play_Click(object sender, System.EventArgs e)
   {
    try
    {
     mp.play();
    }
    catch
    {
     MessageBox.Show("出错错误!");
    }
   }

   //暂停播放
   private void Puase_Click(object sender, System.EventArgs e)
   {
    try
    {
     mp.Puase();
    }
    catch
    {
     MessageBox.Show("出错错误!");
    }

   }

   //停止播放
   private void Stop_Click(object sender, System.EventArgs e)
   {
    try
    {
     mp.StopT();
    }
    catch
    {
     MessageBox.Show("出错错误!");
    }
   }

   //每秒显示一次播放进度
   private void timer1_Tick(object sender, System.EventArgs e)
   {
    CurrentPosition.Text = mp.CurrentPosition.ToString();
   }

   //浏览文件
   private void BrowserFile_Click(object sender, System.EventArgs e)
   {
    try
    {
     openFileDialog1.Filter = "*.mp3|*.mp3";
     openFileDialog1.FileName = "";
     if(openFileDialog1.ShowDialog() == DialogResult.OK)
     {
      mp.FileName = openFileDialog1.FileName ;
      PlayFileName.Text = openFileDialog1.FileName ;
      Duration.Text = mp.Duration.ToString() ;
     }
    }
    catch
    {
     MessageBox.Show("出错错误!");
    }
   }
  }
}

   本程序在.net 2003 、win XP SP1下编译通过。[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8781179/viewspace-924697/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    372
  • 访问量
    200928