如何在 .NET Core 中使用 OpenAL?

How can I use OpenAL in .NET Core?

我正在尝试从 .NET Core 控制台应用程序播放 wav 文件(不,我没有使用控制台蜂鸣声。奇怪的要求,我知道。)。我想我可以使用 OpenAL 来做到这一点。我能够很好地读取该文件,但是当我尝试播放它时,它在第一行就失败了:

int handle = AL.GenBuffer();

我得到异常:InvalidOperationException: Could not load openal32.dll。我正在使用 OpenTK.NETCore NuGet 包。我错过了什么吗?

不使用 OpenAL,但可以在此处找到在控制台应用程序中播放 wav 文件的替代解决方案:

Playing sounds on Console - C#

将声音文件添加到您的解决方案后,link 中的建议代码为:

using System.Reflection;
using System.IO;
using System.Resources;
using System.Media;
using System.Diagnostics;



namespace Yournamespace
{
public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }

    private void Form2_Load(object sender, EventArgs e)
    {
        Assembly assembly;
        Stream soundStream;
        SoundPlayer sp;
        assembly = Assembly.GetExecutingAssembly();
        sp = new SoundPlayer(assembly.GetManifestResourceStream
            ("Yournamespace.Dreamer.wav"));
        sp.Play();  
    } 
}
}

我明白了。事实证明 OpenTK.NETCore 包没有随 OpenAL 一起提供,只有 SDK。相反,它会查找已经安装在机器上的它。我使用了 the installer,想象一下我需要在每台使用我的应用程序的机器上安装它