c# - AXWindowsMediaPlayer找不到嵌入式资源MP3

标签 c# .net audio media

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

当我尝试播放时,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;
    }

关于c# - AXWindowsMediaPlayer找不到嵌入式资源MP3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36485822/

相关文章:

c# - 从 user32.dll EnumDisplayDevices 取回坏字符串

c# - 启用 bool 值并在 View 中输入文本,然后传回 Controller - MVC

c# - 什么是类型参数命名准则?

c# - 在文本框失败时以红色突出显示的位置实现验证

.net - 从 Exchange 检索电子邮件,按收到的日期时间排序

C# padLeft,不添加填充

c# - 如何将发件人地址设置为其他gmail中的任何电子邮件(通过Gmail在.NET中发送电子邮件)?

audio - 跨站点 swf 加载和播放 mp3

c# - 按单词拆分音频文件

c++ - Qt:在 linux 上无法播放