在C#中将CD翻录为mp3 – 第三方组件或api在那里?

我们正在开发一个项目,需要将音频曲目从CD转换为MP3(理想情况下还要从CDDB或类似设备中检索曲目信息)。

更多背景信息:各种音乐标签向我们发送音乐CD,然后我们通过在线传送系统向人们发送。 我们正在考虑自动化将这些CD转换为具有全部跟踪信息的MP3的过程。 我们希望制作一个简单的桌面应用程序,允许编辑人员设置有关我们收到的新音乐的信息。 为了简化流程,我们希望包括音频的翻录和轨道信息的检索。

您可以通过COM interop访问Windows Media Player控件库来完成所有这些操作(例如, IWMPCdromRip接口涵盖CD翻录)。 它不漂亮,并且看起来不是很可控(你给它一个轨道列表来翻录,告诉它撕裂,它撕裂它们并将它们放入WMP库 – 然后你可以自动化并从轨道中取出轨道但它可以端到端地工作,包括查询曲目数据和专辑封面。 快来看看http://msdn.microsoft.com/en-us/library/bb262437(VS.85).aspx吧。

一个快速的谷歌也找到了一篇CodeProject文章的参考文献,其中作者通过插入低级IOCTL API创建了一个CD翻录库,直接与CD驱动器进行交互。 这可能是建立自己的良好起点 – 在http://www.codeproject.com/KB/cs/csharpripper.aspx上找到。

同一作者使用LAME组合了一个C#编码器,尽管你可以直接链接到LAME.EXE,这可能更简单。 请参见http://www.codeproject.com/KB/audio-video/MP3Compressor.aspx 。

查询CDDB(或更可能是FREEDB)并不是火箭科学,它是一个简单的HTTP接口(虽然奇怪的是我找不到Web服务)。 使用WebRequest很容易。

你认为有人会为此建立一个简单的C#库,但这似乎是一个不常见的请求。 也许是一个侧面项目的时间……

要了解如何访问freedb 查找CD,它还会显示如何获取TOC并为光盘构建指纹。 至于直接使用CD的最佳方式 – 谁知道! 微软已经在创建某种多媒体API方面做了如此多的错误开始 – 它可以通过驱动程序IOCTL,directx,MCI或新的DVD刻录API。 就个人而言,我使用MCI – 它的旧版本,但几乎可以与所有内容一起使用并完成我想做的事情。 我也使用LAME作为压缩器,它也工作正常。

也许很少有人知道全球使用的www.exactaudiocopy.de的作者正在向开发人员授权他的软件。 他声称他的软件能够创建始终相同的副本,而其他库则不太准确。 有开发人员许可和再分发许可。 它们并不便宜但是当你想拥有最好的时候,它绝对是一个选择。

我不知道翻录CD。

翻录音频数据后,您可以使用LAME对其进行编码