Domanda

Sto cercando un cross-platform (.Net e Mono su Windows, MacOSX e Linux) modo per decodificare wav, mp3 o ogg tali che posso poi giocare i flussi decodificati attraverso DirectSound o OpenAL, se lo desideri.

Una soluzione che sia in grado di decodificare mp3 o ogg sarebbe sufficiente - decodifica entrambi non è necessaria. Se (o un'altra soluzione) in grado di decodificare wav così, che sarebbe l'ideale, ma non è strettamente necessario, in quanto ho potuto potenzialmente convertire i file WAV in MP3 o ogg.

Una soluzione in grado di decodificare solo i file wav è solo una soluzione parziale, ma mi prendo quello che posso ottenere. ; -)

Ecco quello che ho già guardato:

  • DirectSound e ALUT sia il supporto decodifica WAV, ma ALUT è stato sconsigliato.
  • ffmpeg sarà decodificare qualsiasi cosa, ma non sembra avere una versione stabile comune attraverso le piattaforme?
  • Non ho provato csvorbis ancora, ma è molto vecchio e non sono sicuro di quello che il suo stato attuale.

Siete più che benvenuti a cercare di pursuade me che una di queste soluzioni di cui sopra è in realtà l'opzione migliore.

Grazie.

È stato utile?

Soluzione

Per il semplice supporto per i file WAV si può guardare l'implementazione di mono in MCS / classe / System / System.Media / AudioData.cs ( http://anonsvn.mono-project.com/viewvc/trunk/mcs/class/System/System.Media/ ) .

Per la decodifica dei file audio ogg si può guardare il modulo csvorbis server sn di mono: http://anonsvn.mono-project.com/viewvc/trunk/csvorbis/

Altri suggerimenti

Non hai menzionato il tipo di licenza che stai cercando. Ho avuto ottimi risultati con FMOD , che è disponibile gratuitamente per uso non commerciale progetti. Si svolge una diversa varietà di formati, tra cui ogg e mp3, e ha una vasta API per controllare come giocarle. E 'cross-platform, come si richiede.

FMOD rivolge giochi in larga misura; Non sarei sorpreso se già dotato di ottime funzionalità 3D (anche se non so per certo).

Come si può dire che sono un bel ventilatore, che è in gran parte perché è stato sorprendentemente indolore per ottenere un progetto vuoto C # per riprodurre un file OGG per la prima volta.

Si dovrebbe essere in grado di riprodurre i file wav torna direttamente con System.Media.SoundPlayer. Non sono sicuro se questo aiuta il vostro caso d'uso.

Ho lavorato con ffmpeg e finora mi piace. Sì ci sono alcuni problemi in tutta release, ma è il più efficiente di tutti.

Per rispondere in parte alla mia domanda, si scopre che è abbastanza facile da scrivere il proprio WAV caricatore. Ho usato questo articolo che descrive il formato di file wav:

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

come sempre, fmod è la vostra risposta ... non esitate a ottenere la soluzione a tutti i vostri problemi su http://www.fmod.org /index.php/download#FMODExProgrammersAPI

https://sites.google.com/site/cobnut3d/

SlimDX.DirectSound -. È un esempio di codice per C #

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top