1

我试图找到在.NET2.0 下的VB.Net 中播放MP3 文件的最佳方式。我还需要支持 .NET Compact 3.5,可能还有 Mono。我试过 NAudio,我可以在 .NET2.0 中工作(有点),我怀疑它也可以在 .NET Compact 中工作。

有人对我可能实现这一目标的其他方式有任何建议吗?具体来说,我希望将几个 MP3 文件合并到一个 MemoryStream 中并在不写入磁盘的情况下播放它们。我已经完成了加入部分,它正在播放我正在寻求帮助的 MemoryStream。

任何帮助表示赞赏。

谢谢

4

3 回答 3

1

GStreamer是一个不错的选择,它是一个跨平台的多媒体框架。还有一些绑定可以满足您的需求:通过 .NET API:GStreamerSharp访问您需要的信息(视频文件的长度) 。

事实上,我们实际上在Banshee Project中使用了它,这是一个用 C# 编写的媒体播放器(大约一年半前,它是 Ubuntu 中捆绑的默认音乐播放器)。

顺便说一句,GStreamer 以编解码器是插件的方式构建,因此您在它们的内部(即 ffmpeg)之间有一个抽象,其他插件可以根据您的许可/格式需求来实现。

于 2013-01-20T11:05:37.430 回答
0

我完全在 VB.NET 中编写了一个 MP3 解码器和播放器,它唯一的依赖项是SlimDX,它被用作 DirectSound 的包装器。

解码器解码 MP3 文件并将未压缩的音频流写入 DirectSound 缓冲区以进行播放。此外,解码器被编译为 DLL,因此可以在任意数量的项目中轻松重用。

您可以从这篇博文下载源代码:vbNetMP3Player

该项目的目标是 .NET 4.0,但它在 .NET 3.5 上运行得很好,而且可能在 .NET 2.0 上运行。 至于对 Mono 的支持,我还没有测试过,但我不明白为什么它不应该工作。

希望这可以帮助...

于 2013-01-19T20:33:33.057 回答
0

我遇到了同样的问题,并寻找了许多替代方案。然后我找到了 BASS。它非常易于使用,但您几乎可以做任何事情。此外,它的 .NET 包装器称为 BASS .NET 包含非常好的文档和用于 VB 和 C# 的每个函数的示例。他们还有一个非常活跃和支持的论坛。我曾经发现一个bug并在论坛上报告,然后他们在一天之内给了我修复版本...

BASS.NET 包装器的链接

使用 BASS 的项目

文档示例

于 2013-01-19T21:58:39.593 回答