C# AXWindowsMediaPlayer找不到嵌入式资源MP3

C# AXWindowsMediaPlayer找不到嵌入式资源MP3,c#,.net,audio,media,C#,.net,Audio,Media,我有一个嵌入式资源文件(确切地说是MP3),可以播放一个简短的boop。我希望它能方便地传输文件,因为我有更多的文件需要添加 当我尝试播放它时,WMP只是说它找不到文件。 我使用的是axWindowsMediaPlayer1.URL=@“ultraelecguitar.Properties.Resources.pitchedbeep”以访问它。它添加到资源管理器中,并标记为嵌入式资源。当我用目录中的文件运行我的程序时,它运行得很好。当我不这样做时,它根本不起作用。如果您将资源另存为临时文件,则可

我有一个嵌入式资源文件(确切地说是MP3),可以播放一个简短的boop。我希望它能方便地传输文件,因为我有更多的文件需要添加

当我尝试播放它时,WMP只是说它找不到文件。
我使用的是
axWindowsMediaPlayer1.URL=@“ultraelecguitar.Properties.Resources.pitchedbeep”以访问它。它添加到资源管理器中,并标记为嵌入式资源。当我用目录中的文件运行我的程序时,它运行得很好。当我不这样做时,它根本不起作用。

如果您将资源另存为临时文件,则可以将其路径作为url提供

    static void Main(string[] args)
    {
        var wmp = new WMPLib.WindowsMediaPlayer();
        wmp.URL = CreateTempFileFromResource("ConsoleApplication1.mp3.somefile.mp3");
        Console.ReadKey();
    }
    private static string CreateTempFileFromResource(string resourceName)
    {
        var tempFilePath = Path.GetTempFileName() + Path.GetExtension(resourceName);
        using (var resourceStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName))
        using (var tempFileStream = new FileStream(tempFilePath, FileMode.Create))
        {
            resourceStream.CopyTo(tempFileStream);
        }
        return tempFilePath;
    }

若将资源另存为临时文件,那个么可以将其路径作为url提供

    static void Main(string[] args)
    {
        var wmp = new WMPLib.WindowsMediaPlayer();
        wmp.URL = CreateTempFileFromResource("ConsoleApplication1.mp3.somefile.mp3");
        Console.ReadKey();
    }
    private static string CreateTempFileFromResource(string resourceName)
    {
        var tempFilePath = Path.GetTempFileName() + Path.GetExtension(resourceName);
        using (var resourceStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName))
        using (var tempFileStream = new FileStream(tempFilePath, FileMode.Create))
        {
            resourceStream.CopyTo(tempFileStream);
        }
        return tempFilePath;
    }