C#实现一个MP3播放类

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用

C#定义的一个MP3播放类,将Mp3文件作为资源文件包含到项目中,就可以播放mp3了

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Runtime.InteropServices;
  
namespace Mp3Tool
{
    public Class MP3Player
    {
  
        [DllImport ("winmm.dll")]
        static extern Int32 mciSendString (String command,StringBuilder buffer, Int32 bufferSize, IntPtr hwndCallback);
  
        /// <summary>
        /// temporary repository of music files
        /// </ summary>
        private String m_musicPath = "";
  
        /// <summary>
        /// parent window handle
        /// </ summary>
        private IntPtr m_Handle;
  
        /// <summary>
        /// Create Mp3 player class
        /// </ summary>
        /// <PARAM name="music">embedded music file</ param>
        /// <PARAM name="path">temporary music file path</ param>
        /// <PARAM name="Handle">parent window handle</ param>
        public MP3Player (Byte [] Music, String path, IntPtr Handle)
        {
            try
            {
                m_Handle = Handle;
                m_musicPath = Path.Combine (path, "temp.mp3");
                FileStream fs = new FileStream (m_musicPath, FileMode.Create);
                fs.Write (Music, 0, music.Length);
                fs.Close ();
            }
            catch (Exception)
            {
  
            }
        }
  
        /// <summary>
        /// Create Mp3 player class
        /// </ summary>
        /// <PARAM name="musicPath">to play the mp3 file path</ param>
        /// <PARAM name="Handle">parent window handle</ param>
        public MP3Player(String musicPath, IntPtr Handle)
        {
            m_musicPath = musicPath;
            m_Handle = Handle;
        }
  
        public MP3Player(Byte [] Music, IntPtr Handle) : this(Music, @"C:\Windows\",Handle)
        {
  
        }
  
        public void Open (String path)
        {
            IF (path ! = "")
            {
                try
                {
                    mciSendString ("Open " + path + " alias Media", null, 0, m_Handle);
                    mciSendString ("play Media", null, 0, m_Handle);
                }
                catch (Exception)
                {
  
                }
            }
        }
  
        public void Open()
        {
            Open (m_musicPath);
        }
  
        void CloseMedia()
    {
            try
            {
                mciSendString ("Close ALL", null, 0, m_Handle);
            }
            catch (Exception)
            {
            }
        }
  
    }
}
 

调用方法
private void Main()
(
   / /load music
   MP3Player MP3 = new MP3Player (Properties.Resources.music, Handle);
  
  / /music start playing
   mp3.Open ();
)

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇: linux shell 备份mysql 数据库

下一篇:一个自定义的C#数据库操作基础类 SqlHelper