VICIUS
26-04-2006, 12:58
Abbiamo ricevuto già due bug report su questo problema.
OS: Linux
Version: 2.6.16.9
Architecture: i386
 
VM Vendor: Sun Microsystems Inc.
Version: 1.5.0_06
 
Class Path:
.;/usr/lib/j2sdk1.5-sun/jre/lib:bin/:bin/release:bin/debug:lib/jar/jinput.jar:lib/jar/lwjgl_devil.jar:lib/jar/lwjgl.jar:lib/jar/lwjgl_util.jar:lib/jar/jogg-0.0.7.jar:lib/jar/jorbis-0.0.15.jar:lib/jar/trb.jar
JNI Library Path: lib/linux/
 
Exception: class it.diamonds.engine.audio.SoundException
Message: Unable to initializing Audio System: org.lwjgl.LWJGLException: Could
not open ALC device
Display Adapter Driver: null null
 
Stacktrace:
it.diamonds.engine.audio.SoundException: Unable to initializing Audio System:
org.lwjgl.LWJGLException: Could not open ALC device
at it.diamonds.engine.audio.Audio.<init>(Audio.java:53)
at it.diamonds.engine.audio.Audio.create(Audio.java:131)
at it.diamonds.GameLoop.create(GameLoop.java:107)
at it.diamonds.Game.setUpGame(Game.java:42)
at it.diamonds.Game.create(Game.java:141)
at it.diamonds.Game.main(Game.java:68)
Il problema è semplice. OpenAL usa di default solo il vecchio OSS che non supporta più stream contemporanei quindi prima di far partire il gioco si deve chiudere qualsiasi cosa provi solo anche ad accedere la scheda audio.
Chiedere all'utente di configurare openal lo escluderei. Richiede la conoscenza di un linguaggio di programmazione funzionale per scrivere il file di conf ( :mbe: )
Soluzione provvisoria. Lanciare java tramite aoss che intercetta le chiamate e le redirige ad alsa. In questo caso dobbiamo usare un .sh a parte perché jstub non è personalizzabile. Su alcune configurazioni aoss non è presente. Inoltre l'emulazione non è perfetta al 100% sul portatile su cui ho provato il suono andava leggermente più veloce del normale.
Soluzione definitiva. Capire come usare ALSA dal codice. Insomma qualcosa tipo if(linux) openal.setdriver(ALSA) else openal.setdriver(quellochevuoitu). Il problema è che la documentazione di OpenAL e Lwjgl è pari allo zero assoluto quindi non ho idea di dove mettere le mani.
come vogliamo comportarci ?
OS: Linux
Version: 2.6.16.9
Architecture: i386
VM Vendor: Sun Microsystems Inc.
Version: 1.5.0_06
Class Path:
.;/usr/lib/j2sdk1.5-sun/jre/lib:bin/:bin/release:bin/debug:lib/jar/jinput.jar:lib/jar/lwjgl_devil.jar:lib/jar/lwjgl.jar:lib/jar/lwjgl_util.jar:lib/jar/jogg-0.0.7.jar:lib/jar/jorbis-0.0.15.jar:lib/jar/trb.jar
JNI Library Path: lib/linux/
Exception: class it.diamonds.engine.audio.SoundException
Message: Unable to initializing Audio System: org.lwjgl.LWJGLException: Could
not open ALC device
Display Adapter Driver: null null
Stacktrace:
it.diamonds.engine.audio.SoundException: Unable to initializing Audio System:
org.lwjgl.LWJGLException: Could not open ALC device
at it.diamonds.engine.audio.Audio.<init>(Audio.java:53)
at it.diamonds.engine.audio.Audio.create(Audio.java:131)
at it.diamonds.GameLoop.create(GameLoop.java:107)
at it.diamonds.Game.setUpGame(Game.java:42)
at it.diamonds.Game.create(Game.java:141)
at it.diamonds.Game.main(Game.java:68)
Il problema è semplice. OpenAL usa di default solo il vecchio OSS che non supporta più stream contemporanei quindi prima di far partire il gioco si deve chiudere qualsiasi cosa provi solo anche ad accedere la scheda audio.
Chiedere all'utente di configurare openal lo escluderei. Richiede la conoscenza di un linguaggio di programmazione funzionale per scrivere il file di conf ( :mbe: )
Soluzione provvisoria. Lanciare java tramite aoss che intercetta le chiamate e le redirige ad alsa. In questo caso dobbiamo usare un .sh a parte perché jstub non è personalizzabile. Su alcune configurazioni aoss non è presente. Inoltre l'emulazione non è perfetta al 100% sul portatile su cui ho provato il suono andava leggermente più veloce del normale.
Soluzione definitiva. Capire come usare ALSA dal codice. Insomma qualcosa tipo if(linux) openal.setdriver(ALSA) else openal.setdriver(quellochevuoitu). Il problema è che la documentazione di OpenAL e Lwjgl è pari allo zero assoluto quindi non ho idea di dove mettere le mani.
come vogliamo comportarci ?