C#定义的MP3播放类实例
作者:令狐不聪
这篇文章主要介绍了C#定义的MP3播放类,实例分析了C#操作多媒体音频文件的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
本文实例讲述了C#定义的MP3播放类。分享给大家供大家参考。具体分析如下:
这里使用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 (); }
希望本文所述对大家的C#程序设计有所帮助。