.net “窗户上的NAudio”;";版本

.net “窗户上的NAudio”;";版本,.net,naudio,.net,Naudio,我有Windows 8 KN(N版本没有媒体播放器及其组件) 这没有安装任何ACM解码器,所以我安装了LAME MP3 ACM。(32位和64位) 我通过NAudio演示应用程序检查了它,它就在那里 但是,如果我尝试播放MP3(即使是通过演示应用程序),它会崩溃为“acmnotmable calling AcmStreamOpen” 是否可以在不安装这些windows版本的媒体包的情况下使用NAudio播放音频? NAudio是否仅依赖于ACM编解码器或其中一些windows组件 编辑:安装Wi

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

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

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

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

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

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

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


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


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

要使用任何ACM编解码器,您传入的波形格式必须完全符合编解码器的要求。很可能LAME MP3编解码器使用了与Windows附带的Fraunhofer编解码器不同的结构。您可以使用NAudioDemo应用程序检查输入和输出波形结构,查看ACM页面


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

嗨,马克,我的问题是不能让波形格式与蹩脚的编解码器一起工作。如果我安装了媒体功能包,它将正常工作。但这正是我想要避免的。在我们看来,安装可选的windows更新是不可接受的。如果没有媒体包,ACM和DMO都不能作为帧解压缩器工作。至于NLayer:我尝试过一些文件在NLayer中播放时会出现故障(读取超过流的末尾),因为我不知道如何修复这些错误,所以我决定避免它。嗨,马克,我的问题不是让波形格式与蹩脚的编解码器一起工作。如果我安装了媒体功能包,它将正常工作。但这正是我想要避免的。在我们看来,安装可选的windows更新是不可接受的。如果没有媒体包,ACM和DMO都不能作为帧解压缩器工作。至于NLayer:我尝试过一些文件在NLayer中播放时会出现故障(读过流的末尾),因为我不知道如何修复这些错误,所以我决定避免它。