2013-03-30 25 views
7

Wymagania:Wieloplatformowe biblioteki audio dla .NET

  • Get surowego wejście z mikrofonu w czasie rzeczywistym
  • Juz że wejście surowy powrotem w czasie rzeczywistym

nie wydaje aby znaleźć wiele informacji na temat Googling. Czy ktoś użył czegoś takiego?

Używam C# i musi działać na systemach Windows, Linux i Mac, dwa ostatnie z Mono.

Być może będę chciał użyć p/invoke, ale nie jestem szczególnie zaznajomiony z natywnym kodem i byłoby ciężko. Jeśli ktoś może zaproponować natywną bibliotekę, dam mu szansę.

+3

założę ten post zostanie zamknięta wkrótce, jak niektórzy faceci w stackoverflow są tendencyjne do Myślę, że taki post jest bezużyteczny i zawsze je zamyka, ale myślę, że to ważne. Dam przypomnienie. – David

+0

C# SDL może działać tak, jak SDL jest przenośny dla systemów Windows i Linux. Nie jestem pewien, czy opakowanie C# działa z mono. http://cs-sdl.sourceforge.net –

+0

Nie widzę tam wsparcia dla mikrofonów. W każdym razie dzięki. –

Odpowiedz

3

ManagedBass jest nowy .NET Wieloplatformowe otoki dla biblioteki un4seen Bass z licencją MIT. To nie tylko opakowanie - ma też obiektywne API. Spójrz na post na blogu this.

Oto przykład plik grać używając otoki API:

using ManagedBass; 

class Program 
{ 
    static void Main() 
    { 
     Bass.Init(); // Initialize with default options. 

     int handle = Bass.CreateStream("YOUR_FILE.mp3"); 

     Bass.ChannelPlay(handle); // Begin Playback. 

     Console.ReadKey(); // Wait till user presses a Key. 

     Bass.ChannelStop(handle); // Stop Playback. 

     Bass.ChannelFree(handle); // Free the Stream. 

     Bass.Free(); // Free the device. 
    } 
} 

tutaj jest taka sama przy użyciu celem API:

using ManagedBass; 

class Program 
{ 
    static void Main() 
    { 
     using (var Player = new MediaPlayer()) // Create a Player. 
     { 
      Player.Load("YOUR_FILE.mp3"); // Load a file. 

      Player.Start(); // Begin Playback. 

      Console.ReadKey(); 
     } 
    } 
} 
+1

Dodałem przykładowy kod dla każdego API – czesio

+0

Niestety, blog jest martwy. Sugeruję Bass.Net, ponieważ nie ma prawie żadnej dokumentacji na ManagedBass i nie byłem w stanie jej uruchomić, z powodu niejasnych zależności. –