【发布时间】:2021-03-11 17:41:35
【问题描述】:
问题标题解释了问题。 This 答案在我看来是最好的选择,也是我想做的——播放 .wav 文件。但我无法添加命名空间以使用MediaElement。我想根据满足的条件播放哔声/警报声。
using Windows.Media.Playback;
using Windows.Media.Core;
是否有 .NetStandard2.0 类库替代方案?我想避免“第三方”,额外的 nuget 包。
【问题讨论】:
-
我怀疑
netstandard有什么合适的,因为“播放声音”最终意味着“使用本机api与声音设备交互”。显然,netstandard程序集无法实现此功能——它依赖于平台。MediaElement有什么问题?你的问题被标记为“UWP”,为什么不用呢? -
我的逻辑在我的
netstandard库中,而viewmodel类(uwp)并不总是在满足条件时在内存中进行处理 -
很明显他们可以使用适当的依赖于操作系统的包装器来实现功能,就像所有其他依赖于操作系统的功能已经实现一样(
Process也依赖于平台) .一个独立于平台的声音 API 恰好不是 .NET Standard 或 .NET Core 的一部分。最近的问题似乎是this。 -
在
netstandard程序集中声明某种ISoundService,并在UWP 程序集中实现它。在实现中使用您需要的任何平台相关功能。在运行时注入ISoundService的 UWP 实现。 -
我会调查 NAudio 库:github.com/naudio/NAudio - 我相信它基本上根据实际安装的对象包装了许多不同的 API。
标签: c# uwp .net-standard