2008-10-08 18 views
6

Chúng tôi đang làm việc trên một dự án yêu cầu trích xuất các bản âm thanh từ CD sang MP3 (lý tưởng là cũng lấy thông tin bản nhạc từ CDDB hoặc tương tự).Trích xuất một đĩa CD sang mp3 trong C# - thành phần của bên thứ ba hoặc api không?

Thông tin cơ bản khác: Các nhãn nhạc khác nhau gửi cho chúng tôi các bản nhạc mà chúng tôi cung cấp cho mọi người qua hệ thống phân phối trực tuyến. Chúng tôi đang xem xét quá trình tự động chuyển đổi các đĩa CD đó thành MP3 với thông tin bản nhạc đầy đủ nếu có thể. Chúng tôi muốn tạo ra một ứng dụng máy tính để bàn đơn giản cho phép một thành viên của ban biên tập thiết lập thông tin về âm nhạc mới mà chúng tôi nhận được. Để sắp xếp hợp lý quy trình, chúng tôi muốn bao gồm trích xuất âm thanh và truy xuất thông tin bản nhạc.

Trả lời

0

Tôi không biết cách trích xuất CD.

Một khi bạn có dữ liệu âm thanh xé bạn có thể mã hóa nó bằng cách sử LAME

+0

Mã hóa không thực sự là vấn đề quá nhiều, chúng tôi đã làm điều đó một chút - đó là quá trình trích xuất. Nhưng nhờ phản hồi :) –

8

Bạn có thể làm tất cả điều này thông qua truy cập vào thư viện điều khiển Windows Media Player thông qua COM interop (giao diện IWMPCdromRip bao gồm đĩa CD ripping, ví dụ) . Nó không đẹp và không trông rất dễ kiểm soát (bạn cho nó một danh sách các bài hát để trích xuất, bảo nó rip, nó tách chúng ra và đặt chúng vào thư viện WMP - sau đó bạn có thể tự động hóa và lấy các bài hát ra khỏi) nhưng nó sẽ hoạt động từ đầu đến cuối bao gồm cả dữ liệu theo dõi truy vấn và ảnh bìa album. Hãy xem http://msdn.microsoft.com/en-us/library/bb262437(VS.85).aspx để bắt đầu. Một nhanh chóng Google cũng tìm thấy một tham chiếu đến một bài viết CodeProject nơi các tác giả đã tạo ra một thư viện trích xuất đĩa CD bằng cách interop vào các API IOCTL mức thấp, tương tác với ổ đĩa CD trực tiếp. Đây có thể là điểm khởi đầu tốt để bạn xây dựng - hãy tìm hiểu tại số http://www.codeproject.com/KB/cs/csharpripper.aspx.

Cùng một tác giả đã kết hợp bộ mã hóa C# bằng LAME, mặc dù bạn chỉ có thể chuỗi thành LAME.EXE, điều này có thể đơn giản hơn. Xem http://www.codeproject.com/KB/audio-video/MP3Compressor.aspx.

Truy vấn CDDB (hoặc nhiều khả năng là FREEDB) không phải là khoa học tên lửa, đó là giao diện HTTP đơn giản-ish (mặc dù tò mò không có dịch vụ web mà tôi có thể tìm thấy). Dễ dàng thực hiện với một số WebRequest.

Bạn nghĩ rằng ai đó sẽ kết hợp một thư viện C# đơn giản cho điều này ngay bây giờ nhưng có vẻ như đây là một yêu cầu không phổ biến. Có lẽ thời gian cho một dự án phụ ...

+0

Trong khi các công cụ CDDB/FREEDB là đơn giản, nếu chúng được nhận đĩa từ các nghệ sĩ để xem xét, chúng có lẽ không có trong cơ sở dữ liệu. –

0

Để xem cách truy cập freedb Find the CD, nó cũng cho biết cách truy cập TOC và tạo bản in ngón tay cho đĩa. Cách tốt nhất để làm việc với đĩa CD trực tiếp - ai biết được! Microsoft đã làm rất nhiều sai lầm bắt đầu vào việc tạo ra một số loại API đa phương tiện là một mớ hỗn độn hoàn chỉnh - Bạn có thể đi qua IOCTL, directx, MCI hoặc API ghi đĩa DVD mới. Cá nhân tôi sử dụng MCI - cũ của nó, nhưng làm việc với gần như tất cả mọi thứ và làm những gì tôi muốn làm. Tôi cũng sử dụng LAME như một máy nén và nó cũng hoạt động tốt.

0

Có lẽ ít người biết tác giả của thế giới đã sử dụng www.exactaudiocopy.de đang cấp phép phần mềm của mình cho nhà phát triển. Ông tuyên bố rằng phần mềm của ông có thể tạo ra cùng một bản sao trong khi các thư viện khác kém chính xác hơn. Có giấy phép nhà phát triển và giấy phép phân phối lại. Họ không phải là giá rẻ nhưng khi bạn muốn có tốt nhất có, nó là một lựa chọn tuyệt đối.

+0

Chào mừng bạn đến với SO! Câu trả lời của bạn có vẻ hơi giống một quảng cáo theo ý kiến ​​của tôi. Câu hỏi không phải là về việc phần mềm trích xuất nào là công việc chính xác nhất.Tuy nhiên, vì người dùng đã yêu cầu nội dung của bên thứ ba, câu trả lời của bạn cung cấp một số nội dung người dùng đã yêu cầu. – DWright

Các vấn đề liên quan