如何在.NET Core中使用OpenAL?

时间:2017-08-15 18:02:42

标签: c# .net-core openal

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

int handle = AL.GenBuffer();

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

2 个答案:

答案 0 :(得分:0)

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

Playing sounds on Console - C#

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

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();  
    } 
}
}

答案 1 :(得分:0)

我明白了。事实证明OpenTK.NETCore包并没有OpenAL,只有SDK。相反,它会查找已安装在计算机上的内容。我使用the installer,并想象我需要在使用我的应用程序的每台机器上安装它