JOAL学习笔记
先是例行的连续代码页,由于本节并没有提供实例,所以提供一个简单的测试程序。
import com.jogamp.openal.ALC;
import com.jogamp.openal.ALCcontext;
import com.jogamp.openal.ALCdevice;
import com.jogamp.openal.ALFactory;
public class AlcTest {
public static void main(String[] args) {
ALC alc = ALFactory.getALC();
//String deviceName = "DirectSound";
String deviceName = null;
ALCdevice device = alc.alcOpenDevice(deviceName);
ALCcontext context = alc.alcCreateContext(device, null);
alc.alcMakeContextCurrent(context);
System.out.println(alc.alcGetString(device, ALC.ALC_DEFAULT_DEVICE_SPECIFIER));
System.out.println(alc.alcGetString(device, ALC.ALC_DEVICE_SPECIFIER));
System.out.println(alc.alcGetString(device, ALC.ALC_EXTENSIONS));
alc.alcMakeContextCurrent(null);
alc.alcDestroyContext(context);
alc.alcCloseDevice(device);
}
}
之后是一些值得注意的问题
笔者调试的结果与教程有些出入。
不知道是不是由于前一阵折腾ASIO驱动弄的,使用DirectSound3D会找不到设备。使用null后运行结果如下:
OpenAL Soft
OpenAL Soft
ALC_ENUMERATE_ALL_EXT ALC_ENUMERATION_EXT ALC_EXT_CAPTURE ALC_EXT_DEDICATED ALC_EXT_disconnect ALC_EXT_EFX ALC_EXT_thread_local_context ALC_SOFT_loopback
可以看到,Alc拓展列表中有非常多的表项,毕竟文章是很久之前的了。