2008-09-24 80 views
7

Với C#, Làm cách nào để phát (Tạm dừng, Chuyển tiếp ...) một tệp âm thanh (mp3, ogg)? Tệp có thể nằm trên đĩa cứng hoặc trên internet.Cách phát tệp âm thanh

Có thư viện hoặc lớp học nào có thể giúp tôi làm việc dễ dàng không?

+0

Câu hỏi Tốt! Loại điều này là thứ mà rất nhiều người dường như đã cho phép. – theo

+0

@ theo, tôi đồng ý với bạn. Tôi thực sự đang tìm kiếm câu trả lời cho câu hỏi tương tự. – ThN

Trả lời

7

Nếu bạn không nhớ bao gồm Microsoft.VisualBasic.dll trong dự án của bạn, bạn có thể làm theo cách này:

var audio = new Microsoft.VisualBasic.Devices.Audio(); 
audio.Play("some file path"); 

Nếu bạn muốn làm những thứ phức tạp hơn , cách dễ nhất tôi biết là sử dụng Windows Media Player API. Bạn thêm DLL và sau đó làm việc với nó. API là loại clunky, nhưng nó hoạt động; Tôi đã sử dụng nó để làm cho trình bao bọc nhạc của riêng tôi xung quanh Windows Media Player để sử dụng cá nhân. Dưới đây là một số liên kết hữu ích để giúp bạn bắt đầu:

Building a Web Site with ASP .NET 2.0 to Navigate Your Music Library

Windows Media Object Model

Let the Music Play!

EDIT:

Kể từ khi tôi viết bài này, tôi đã tìm thấy một cách dễ dàng hơn, nếu bạn không nhớ bao gồm các lớp WPF trong mã của bạn. WPF (.NET 3.0 và forward) có lớp MediaPlayer là một trình bao bọc xung quanh Windows Media Player. Điều này có nghĩa là bạn không cần phải viết trình bao bọc của riêng mình, điều này thật tuyệt vời, như tôi đã đề cập ở trên, API WMP khá đơn giản và khó sử dụng.

4

Tôi muốn giới thiệu số BASS Library. Nó có thể phát cả tệp nhạc và nội dung phát trực tiếp. Cũng có sẵn trình bao bọc .NET.

+0

Vâng, tôi đã thấy điều đó. Thậm chí có một bài viết Codeproject trên nBass (một lớp bọc của Bass). Thật dễ dàng như thế nào nó được thực hiện, nhưng ông sử dụng một phiên bản cũ của Bass (v1.8), tôi đang tìm phiên bản ông đã sử dụng, hy vọng tôi có thể tải về nó. –

0

Có điều khiển trình phát media - về cơ bản những gì Media Player sử dụng. Bạn có thể đặt nó trong chương trình của bạn và có một API bạn có thể sử dụng để kiểm soát nó. Tôi nghĩ đó là giải pháp nhanh nhất.

2

Alvas.AudioRecordPlayer lớp học với những khả năng:

 public static void TestRecordPlayer() 
     { 
      RecordPlayer rp = new RecordPlayer(); 
      rp.PropertyChanged += new PropertyChangedEventHandler(rp_PropertyChanged); 
      rp.Open(new Mp3Reader(File.OpenRead("in.mp3"))); 
      rp.Play(); 
      rp.Forward(1000); 
      rp.Pause(); 
     } 

     static void rp_PropertyChanged(object sender, PropertyChangedEventArgs e) 
     { 
      switch (e.PropertyName) 
      { 
       case RecordPlayer.StateProperty: 
        RecordPlayer rp = ((RecordPlayer)sender); 
        if (rp.State == DeviceState.Stopped) 
        { 
         rp.Close(); 
        } 
        break; 
      } 
     } 
Các vấn đề liên quan