代码之家  ›  专栏  ›  技术社区  ›  Marino Å imić

Windows“N”版本上的NAudio

  •  1
  • Marino Å imić  · 技术社区  · 11 年前

    我有Windows 8 KN(N个版本没有媒体播放器及其组件)。

    这没有安装任何ACM解码器,所以我安装了LAME MP3 ACM。(32位和64位)

    我通过NAudio演示应用程序查看了它,它就在那里。

    但如果我尝试播放MP3(即使是通过演示应用程序),它会崩溃,并显示“AcmNotPossible calling AcmStreamOpen”。

    是否可以在不安装这些版本的windows的媒体包的情况下使用NAudio播放音频? NAudio是否仅依赖ACM编解码器或其中一些windows组件?

    编辑:安装Windows6.2-KB2703761-x64(适用于Windows 8的N和KN版本的媒体功能包)后,NAudio即可工作。

    所以我的问题是:“有没有一种方法可以用NAudio和.NET播放MP3,而不需要安装它?”。

    screenshots

    1 回复  |  直到 11 年前
        1
  •  1
  •   Mark Heath    11 年前

    要使用任何ACM编解码器,传入的WAVEFORMATEX必须与编解码器所需的完全匹配。LAME MP3编解码器可能使用了与Windows附带的Fraunhofer编解码器不同的结构。您可以在ACM页面上使用NAudioDemo应用程序检查输入和输出波形结构。

    MP3FileReader允许一个可插入的MP3帧解压缩器,因此如果是DirectX媒体对象MP3解码器,您可以设置MP3FileReader将其与构造函数一起使用,该构造函数使用函数来构建IMp3FrameDecompressor。如果这不起作用,您可以实现自己的IMp3FrameDecompressor函数,该函数使用您喜欢的任何编解码器,甚至是完全管理的编解码器(例如使用 NLayer ). 最终,如果你根本不想依赖机器上安装的编解码器,这可能是你最好的选择。