2011-11-09 17 views
5

Buscando cualquier biblioteca de sonido simple para reproducir en Windows que no sea GPL o LGPL. Es decir, el software en sí no es Y cualquier biblioteca que utiliza no es GPL/LGPL.Biblioteca de sonido C++ multiplataforma que no es GPL/LGPL?

He estado buscando durante mucho tiempo y todo lo que parece prometedor (Allegro, SFML, etc.) resulta tener algún código GPL o LGPL en él. No estoy tratando de iniciar un debate sobre licencias, es solo mi preferencia, así que cualquiera que conozca algo simple, por favor avíseme.

No necesariamente estoy buscando una solución multiplataforma, pero tampoco quiero confiar en los métodos integrados de Windows como PlaySound ... :). ¡Cualquier ayuda sería muy apreciada!

P.S. Para que quede claro lo que quiero decir con simple, esta es la mayor funcionalidad que necesito:

  1. Proporcione el nombre del archivo o datos en la memoria a una función de reproducción.
  2. Si es posible, defina la devolución de llamada para cuando finalice el sonido.
+7

¿Cuál es el problema con LGPL? No impone restricciones a su código siempre que solo lo vincule (IIRC). – eudoxos

+7

Como dije, es más una cuestión de preferencia y no quiero entrar a debatir estas cosas, pero supongo que solo diré que hay algunos pasajes poco claros en la licencia completa si la lees. Ejemplo, hay una fraseología como, si su programa se vuelve "dependiente" de "tipos" dentro de la biblioteca, incluso cuando se vincula dinámicamente, su código debe convertirse en LGPL también. He invertido aproximadamente 6 meses de mi vida en escribir un motor de juego multiplataforma y realmente me gustaría no regalar 6 meses de mi vida de forma gratuita, incluso si las posibilidades son extremadamente pequeñas. :) –

+0

Si no necesita plataforma cruzada, ¿por qué no está dispuesto a utilizar algo como DirectSound? Eso no tiene sentido. –

Respuesta

2

libsoundio es el nivel un poco más bajo que lo que está pidiendo, pero es robusto y MIT licencia.

1

IrrKLang no es GPL (Es un producto comercial):

irrKlang es un alto nivel de 2D y 3D multiplataforma (Windows, Mac OS X, Linux) y el motor de sonido biblioteca de audio .. . se puede acceder a través de una API extremadamente simple.

Ya lo he usado y es bastante directo.

+0

Gracias por la sugerencia, planeo producir un juego comercial y en este momento estoy en la dieta mr.noodles, por lo que desembolsar efectivo para una licencia en este momento no es necesariamente una opción. jajaja: D –

+2

Espera, ¿entonces necesitas un sistema de sonido que no sea LGPL/GPL Y debe ser gratis para uso comercial? Es un conjunto bastante extraño de restricciones, debe decirse: va a ser muy difícil encontrar bibliotecas de audio con licencias de FLOSS que no sean LGPL/GPL –

5

PortAudio es una biblioteca de sonidos de bajo nivel (en C), que utiliza el equivalente de una licencia MIT

1

BASS es "libre para uso no comercial" sin nombrar a una licencia de terceros (que tiene el mismo aspecto la licencia de MIT para mí, pero IANAL), y siempre he disfrutado trabajar con su API de C.

Su precio para las licencias comerciales por producto es bastante razonable, también.

2

Después de hacer un poco más de excavar alrededor, me las arreglé para encontrar un par de bibliotecas que son adecuados:

Cinder
http://libcinder.org/

Ejemplo de uso (Audio):

audio::SourceRef mAudioSource; 
mAudioSource = audio::load(loadResource(MY_RESOURCE)); 
audio::Output::play(mAudioSource); 

TempAU
http://www.tempau.com/

Sound sound("somefile.mp3"); // Create sound object 
sound.play();    // Play it! 

La fuente para TempAU aún no se ha publicado, ya que es completamente nueva. He visto algunos comentarios en foros por parte del desarrollador y él planea lanzarlos en un futuro cercano, según tengo entendido. TempAU ahora usa libs que son LGPL, así que no voy a usarlo, pero pensé que lo mencionaría de todos modos, ya que una vez que salga la fuente, estoy seguro de que sería trivial vincular el soporte ogg o algo abierto. .

Cinder está licenciado bajo una licencia BSD modificada, por lo que prácticamente el único requisito de licencia es que incluya una copia de la licencia en cualquier lugar (Léame, lo que sea) al distribuir con su fuente o binarios. Como ya escribí la gran mayoría de la funcionalidad en cinder, voy a quitar la parte de audio y la incorporé a su propia lib. Gracias de nuevo, ¡espero que esto sea útil!

Editar
Una última cosa, que tropezó con estas dos bibliotecas de esta excelente lista de bibliotecas. La lista proporciona una breve descripción de la funcionalidad dentro de cada lib, junto con la licencia bajo la que se publica la biblioteca.

http://content.gpwiki.org/index.php/Libraries

Editar ... otra vez
SDL, a partir de versión alemana 1.3+ es zlib licensed.

Una última edición ...
He estado hablando con el desarrollador de TempAU y él ha liberado el código fuente de código de Google bajo la nueva licencia BSD.

http://code.google.com/p/tempau/

3

http://aumiks.googlecode.com

aumiks::Lib aumiksLibrary(100, aumiks::STEREO_16_44100); 
ting::Ref<aumiks::WavSound> snd = aumiks::WavSound::LoadWAV("sample.wav"); 
ting::Ref<aumiks::Channel> ch = snd->Play(); 
+0

Marcando su respuesta como correcta porque prefiero usar solo un sonido biblioteca que una biblioteca completa solo para la parte de audio, como estaba haciendo con SDL. ¡Gracias por unirse al desbordamiento de pila para publicar esta respuesta! –

Cuestiones relacionadas