所以,我正在尝试在C#console应用程序中播放mp3文件。
class Program
{
[DllImport("winmm.dll")]
static extern Int32 mciSendString(string command,
StringBuilder buffer, int bufferSize, IntPtr hwndCallback);
static void Main(string[] args)
{
string filePath = "1.mp3";
string command = "open \"" + filePath + "\" type mpegvideo alias MyTag";
Int32 err = mciSendString(command, null, 0, IntPtr.Zero);
command = "play MyTag";
err = mciSendString(command, null, 0, IntPtr.Zero);
Console.ReadLine();
}
}
但是在尝试打开文件时我收到错误266(MCIERR_CANNOT_LOAD_DRIVER
)。 Intersting的事情是,如果我将它放入GUI应用程序(Windows窗体应用程序)的按钮回调中,相同的代码可以正常工作。如果我改变代码省略文件打开它也可以。
string filePath = "1.mp3";
string command = "play " + filePath;
Int32 err = mciSendString(command, null, 0, IntPtr.Zero);
它也运作良好,但我想分开公开行动。
我正在使用Microsoft Visual Studio 2008,.NET 3.5(也在.NET 2.0上测试,结果相同),Windows 7 32位。
任何想法为什么会如此?