如何在.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();
}
}
}
我不认为您可以使用.NET Core中的SoundPlayer。 – tyjkenn