2009-04-10 79 views
5

Tôi đang tìm một nền tảng (.Net và Mono trên Windows, MacOSX và Linux) để giải mã các tệp wav, mp3 hoặc ogg sao cho sau đó tôi có thể phát các luồng đã giải mã thông qua DirectSound hoặc OpenAL như mong muốn.Cách giải mã wav, mp3 và/hoặc ogg trong .Net/Mono?

Một giải pháp có thể giải mã hoặc là mp3 hoặc ogg sẽ đủ - giải mã cả hai đều không cần thiết. Nếu nó (hoặc một giải pháp khác) có thể giải mã wav, điều đó sẽ là lý tưởng, nhưng không cần thiết vì tôi có khả năng chuyển đổi các tệp wav thành mp3 hoặc ogg.

Một giải pháp chỉ có thể giải mã các tệp wav chỉ là một giải pháp một phần, nhưng tôi sẽ lấy những gì tôi có thể nhận được. ;-)

Dưới đây là những gì tôi đã nhìn:

  • DirectSound và Alut cả hỗ trợ WAV, nhưng Alut đã bị phản đối.
  • ffmpeg sẽ giải mã mọi thứ, nhưng dường như không có bản phát hành ổn định phổ biến trên các nền tảng?
  • Tôi chưa thử csvorbis, nhưng nó rất cũ và tôi không chắc chắn trạng thái hiện tại của nó là gì.

Bạn được chào đón nhiều hơn để cố gắng theo đuổi tôi rằng một trong những giải pháp trên thực sự là lựa chọn tốt nhất.

Cảm ơn.

Trả lời

0

Tôi đã làm việc với ffmpeg và cho đến nay tôi thích nó. Yea có vài vấn đề trong các bản phát hành, nhưng nó là hiệu quả nhất của tất cả.

+0

Làm cách nào để phân phối lại ffmpeg trên nhiều nền tảng? Cụ thể, có dễ dàng phân phối Windows/Mac/Linux nhị phân tương thích với Tao.Ffmpeg hoặc một số trình bao bọc Net khác không? –

+0

nên khá dễ dàng..Quản lý sử dụng nó cho tất cả chuyển mã phương tiện truyền thông của họ cho xbox –

1

Bạn sẽ có thể phát lại trực tiếp các tệp .wav bằng System.Media.SoundPlayer. Không chắc chắn nếu điều đó giúp trường hợp sử dụng của bạn.

+0

Thật không may tôi không nghĩ như vậy. Tôi cần dạng sóng thô để tôi có thể truyền nó sang DirectSound/OpenAl để thực hiện hiệu ứng âm thanh 3D. –

+0

Một vấn đề khác với nó là SoundPlayer không chơi tốt đẹp với GC và bạn cần thêm hack (http://www.codeproject.com/KB/audio-video/soundplayerbug.aspx) –

0

Để trả lời một phần câu hỏi của riêng tôi, nó chỉ ra rằng nó là khá dễ dàng để viết loader WAV riêng bạn. Tôi đã sử dụng bài viết này mô tả các định dạng file wav:

http://www.sonicspot.com/guide/wavefiles.html

4

Bạn đã không đề cập đến các loại giấy phép bạn đang tìm kiếm. Tôi đã có kết quả xuất sắc với FMOD, có sẵn miễn phí cho các dự án phi thương mại. Nó chơi nhiều định dạng đa dạng, bao gồm ogg và mp3, và có một API mở rộng để kiểm soát cách chơi chúng. Đó là nền tảng chéo, giống như bạn yêu cầu.

FMOD nhắm mục tiêu trò chơi đến một mức độ lớn; Tôi sẽ không ngạc nhiên nếu nó đã đi kèm với các tính năng 3D tuyệt vời (mặc dù tôi không biết chắc chắn).

Như bạn có thể nói tôi khá là một fan hâm mộ, mà chủ yếu là vì nó là đáng ngạc nhiên không đau để có được một dự án C# trống để chơi một tập tin OGG lần đầu tiên.

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