从.net代码播放MP3

时间:2009-05-26 19:44:56

标签: .net audio mp3

我将于本周六(2009年5月30日)结婚。我们很穷。因此,我希望我的朋友不要雇用DJ,而是从笔记本电脑中播放mp3播放列表,以便通过PA系统播放。

嗯,我对某些软件的愿景非常适合。这是愿景: alt text

我希望这样做,以便我的朋友不能搞砸了,我认为如果我的愿景成为现实,那么就不会搞砸了。

现在编程问题?我如何从.net代码播放mp3?我目前正在尝试使用NAudio,但我不知道是否可以让它淡入/淡出文件。

那里有没有其他可以帮助我的免费图书馆?感谢您的任何意见。时间至关重要。

人!

专注于编程问题!如果我将来需要处理音频,你的答案可能是我命运的关键。

9 个答案:

答案 0 :(得分:11)

您所描述的内容听起来像iTunes和Windows Media Player等功能程序已有多年,我建议只使用这两个程序中的一个。但是,如果您确实想从.NET播放MP3,Google搜索就会发现这一点:http://www.codeproject.com/KB/audio-video/mp3player.aspx而且:http://www.codeproject.com/KB/audio-video/ManWMF.aspx

另外,如果你的婚礼是4天,这可能不是最好的主意。我不会浪费你的时间来写一个媒体播放器。如果您希望它被抛光和防止傻瓜,请使用iTunes。如果你想写一个媒体播放器,请在婚礼结束后进行。

答案 1 :(得分:7)

到目前为止,最简单,最简单的解决方案是使用 Windows Media Player COM控件This page提供了开始使用此方法的良好指南。只需用计时器调节音量就可以产生淡入/淡出效果。

如果你想完全控制播放,那么总会有DirectShow.NET选项,虽然这对你来说可能有点过分。更重要的是,除非您已经拥有非托管DirectShow API的一些经验,否则使用它会非常痛苦。但是,正如我所说,如果可能的话,我会尽量远离这个。

编辑:我现在也意识到Microsoft.Xna.Framework.Media命名空间可以为您的任务提供一个很好的托管解决方案。它当然应该提供比WMP控制更多的控制(并且纯粹是.NET而不是COM,作为奖励)。唯一的缺点是它需要引用XNA Framework 3.0。

答案 2 :(得分:3)

下载MediaMonkey。在婚礼前一周,你有更好的事情要做,而不是写另一个MP3播放器。 MediaMonkey甚至还具有锁定系统的DJ模式,以便您的访客无法更改播放列表。

答案 3 :(得分:1)

正如我之前所说,

  

“关于图书馆有很多很好的建议来帮助播放音频,这就是我真正想要的。我真的不打算尝试编写这个程序。感谢你的回复。”

对于那些好奇的人:对于我的婚礼,我使用了Winamp 5.whatever和保存的播放列表用于婚礼的不同部分,并在文件名前加上01,02,...所以它们会按顺序出现在文件系统。

为了规范化音频我下载了一个名为RockSteady的插件,效果很好。对于停止/暂停/在歌曲之间淡入,在选项 - >中;偏好 - >插件 - >输出 - > Nullsoft DirectSound输出配置 - >衰落选项卡我将“歌曲结尾”设置为6000毫秒,将“暂停/停止”设置为15000毫秒。然后在另一个选项卡上,我选中了“Logarithmic Fades”复选框。

这些设置使音频听起来更美观,更专业。

答案 4 :(得分:0)

你正在重新发明轮子。如果“时间至关重要”,只需为您的朋友创建播放列表文件,并将它们全部放在同一目录中。标记他们00 - Prelude,01 - 游行等

有关详细信息,请参阅this article on the M3U format。您可以列出要以此文本格式播放的文件。或者只使用winamp或Windows Media Player等媒体播放器来创建播放列表文件。

答案 5 :(得分:0)

我同意这里的大多数其他人。我认为你应该尝试通过使用另一个已经构建的免费选项(如itunes,Winamp或WMP)来解决问题。如果你真的想学习新的东西,那么只有在你不会承受太大压力才能使它成功时,这样做才是为了好玩。

如果您真的想要完成这一点,我认为http://code.google.com/p/ffmpeg-sharp/应该做你想做的事。

答案 6 :(得分:0)

真的很有趣,但在我看来,你应该使用已经存在的解决方案。

但是,您可以查看以下链接:

Windows媒体播放器com控件也应该是个不错的选择。

PS:我不知道我是否可以在答案中包含一个问题,但你是如何制作这个图形的?

答案 7 :(得分:0)

我同意其他人的意见,制作几个播放列表,然后只使用Windows媒体播放器加载/播放它们。

答案 8 :(得分:0)

我包装了mp3解码器库并使其可供.net开发人员使用。你可以在这里找到它:

http://sourceforge.net/projects/mpg123net/

包括将mp3文件转换为PCM并读取ID3标签的示例。

你需要像waveOut包装器这样的东西,我知道它存在,你去了!