2012-03-03 2 views
0

У меня проблема с воспроизведением звука с использованием OpenAL в Java (LWJGL). Что еще хуже, я понятия не имею, что говорит мне ошибка.Ошибка OpenAL WaveData

AL Lib: ReleaseALC: 1 устройство не закрыто

Теперь я уверен, что местоположение файла является правильным, но waveFile возвращается нуль, поэтому ошибка в строке 8; когда он пытается получить данные из waveFile.

FileInputStream fin = null; 
try { 
    fin = new FileInputStream("res/FancyPants.wav"); 
} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} 
WaveData waveFile = WaveData.create(fin); 
AL10.alBufferData(buffer.get(0), waveFile.format, waveFile.data, waveFile.samplerate); 
waveFile.dispose(); 

Большое спасибо.

ответ

2

Попробуйте обернуть FileInputStream в BufferedInputStream. Как это.

FileInputStream fin = null; 
    BufferedInputStream bin = null; 
    try 
    { 
     fin = new FileInputStream("res/FancyPants.wav"); 
     bin = new BufferedInputStream(fin); 
    } 
    catch(FileNotFoundException e) 
    { 
     e.printStackTrace(); 
    } 
    WaveData waveFile = WaveData.create(bin); 
    AL10.alBufferData(buffer.get(0), waveFile.format, waveFile.data, waveFile.samplerate); 

    waveFile.dispose(); 
+0

Это работало как шарм, спасибо большое. Теперь я могу сделать это в одной строке: «WaveData data = WaveData.create (новый BufferedInputStream (новый FileInputStream (« res/FancyPants.wav »)); – Iggy