如何在 .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,想象一下我需要在每台使用我的应用程序的机器上安装它
我正在尝试从 .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,想象一下我需要在每台使用我的应用程序的机器上安装它