需要在 C# 中播放 mp3 和 .wav 文件而不使用 com dll
我需要使用 C# 播放 mp3 和 .wav 等音频文件。我不想使用 com dll,并且需要一些功能,例如设置要播放的文件的当前时间和结束时间。等等。
需要一些相同的示例。
I need to play the audio files like mp3 and .wav using c#. I don't want to use the com dll's and I need some functionality like to set the current time and end time of the file to play. etc.
Need some sample exmaples for the same.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
要使用 C# 播放音频,托管代码有时需要调用非托管 API。 NAudio 提供了 四种不同的 Windows 音频播放 API。 WaveOut 将是最适合您的选择,因为它不是基于 COM 的。
要解码 MP3,您可以选择使用 Windows 附带的编解码器或尝试找到完全托管的 MP3 解码器。 NAudio 为两种不同的 Windows MP3 解码器提供互操作包装器 - Windows XP 及更高版本附带的 Fraunhofer ACM 编解码器和 Windows Vista 及更高版本附带的 DirectX 媒体对象解码器。如果你想要一个完全托管的 MP3 解码器,你可以尝试 NLayer 这是我用 JavaLayer 到 .NET,尽管其公共 API 目前不允许它整齐地插入 NAudio 应用程序。
To play audio using C# at some point the managed code will need to call into unmanaged APIs. NAudio provides wrappers for four different Windows audio playback APIs. WaveOut would be the most appropriate choice for you, since it is not COM based.
To decode MP3, you have a choice of using the codecs that come with Windows or trying to find a fully managed MP3 decoder. NAudio provides interop wrappers for two different Windows MP3 decoders - the Fraunhofer ACM codec that comes with Windows XP and above and the DirectX Media Object decoder that comes with Windows Vista and above. If you want a fully managed MP3 decoder, you can try NLayer which is a port I made of JavaLayer to .NET, although its public API doesn't currently allow it to slot neatly into an NAudio app.