【问题标题】:Unity crashes when when reading a WMA file with Naudio AudioFileReader使用 Naudio AudioFileReader 读取 WMA 文件时 Unity 崩溃
【发布时间】:2018-12-30 08:17:13
【问题描述】:

我正在使用 NAudio 通过 Unity C# 读取和播放本地音频文件,但只要文件是 WMA 格式,Unity 就会崩溃。

我的代码适用于 Wav 和 Mp3 格式,只是 WMA 不起作用。

我尝试过使用专用的 MediaFoundationReader 和 WmaFileReader 类,也尝试过不同的 WavePlayer,例如 WaveOut 和 DirectSound,但我遇到了同样的问题。

我已经对多个 WMA 文件进行了尝试,这些文件的路径绝对正确。

这是我附加到 Unity 游戏对象的 C# 脚本:

output = new WaveOutEvent();
reader = new AudioFileReader(path); //This is the line that it crashes on
output.PlaybackStopped += PlayBackStopped;
output.Init(reader);
output.Play();

A full example of the code can be found here

A Unity crash dump can be found here

感谢任何人提供的任何帮助,如果您需要更多信息,请告诉我!

【问题讨论】:

  • 您只是想加载 WMA 音频并播放它?
  • 是的,我只想播放 WMA 音频文件
  • 您知道 NAudio 只能在 Windows 上运行吗?你的目标是什么操作系统?

标签: c# unity3d naudio


【解决方案1】:

Unity 支持导入以下音频文件格式:.aif、.wav、.mp3 和 .ogg https://docs.unity3d.com/Manual/AudioFiles.html

【讨论】:

  • 所以NAudio不能通过Unity播放wma文件?我认为 NAudio 包括编解码器等来播放 wma?我是否误解了 NAduio 的工作原理?感谢您对此的帮助。
  • 此外,Unity 崩溃的点不是它尝试播放 wma 文件时,而是 NAudio 尝试读取 wma 文件时: reader = new AudioFileReader(path); //这是它崩溃的行
  • 嗨。我现在看到这个 2021 年 2 月试图将我刚刚保存的 wav 文件(有效、播放等)转换为 mp3。使用 (var reader = new MediaFoundationReader(fileName)) 会导致 Unity 2019.3.0f6 崩溃。你解决了吗? :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-22
相关资源
最近更新 更多