JOAL學習筆記 第四課 進一步瞭解ALC

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拓展列表中有非常多的表項,畢竟文章是很久之前的了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章