如何在.NET Core中使用OpenAL?

问题描述:

我试图从一个.NET Core控制台应用程序播放一个wav文件(不,我不使用控制台哔声。奇怪的要求,我知道。)。我想我可以用OpenAL做到这一点。我能够读取文件中的罚款,但后来当我试图打它,它在第一行失败:如何在.NET Core中使用OpenAL?

int handle = AL.GenBuffer(); 

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

我想通了。事实证明,OpenTK.NETCore包不包含OpenAL,仅包含SDK。相反,它会查找它已经安装在机器上。我使用了the installer,想象一下我需要将它安装在使用我的应用程序的每台机器上。

不使用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

我不认为您可以使用.NET Core中的SoundPlayer。 – tyjkenn