在C#中使用winmm.dll播放mp3文件在GUI应用程序中运行良好,但在cosnsole应用程序中不起作用

时间:2013-12-27 09:03:11

标签: c# winapi mp3

所以,我正在尝试在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位。

任何想法为什么会如此?

0 个答案:

没有答案