2010-11-25 9 views
1

So haben wir so etwas wie:Wie kann man ein Audio-Aufnahmegerät mit openAL wählen?

 //... 
// Get list of available Capture Devices 
const ALchar *pDeviceList = alcGetString(NULL, ALC_CAPTURE_DEVICE_SPECIFIER); 
if (pDeviceList) 
{ 
    ALFWprintf("\nAvailable Capture Devices are:-\n"); 

    while (*pDeviceList) 
    { 
     ALFWprintf("%s\n", pDeviceList); 
     pDeviceList += strlen(pDeviceList) + 1; 
    } 
} 

// Get the name of the 'default' capture device 
szDefaultCaptureDevice = alcGetString(NULL, ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER); 
ALFWprintf("\nDefault Capture Device is '%s'\n\n", szDefaultCaptureDevice); 

alGenSources(1, &source); 
alGenBuffers(3, buffers); 

/* Setup some initial silent data to play out of the source */ 
alBufferData(buffers[0], AL_FORMAT_MONO16, data, sizeof(data), 22050); 
alBufferData(buffers[1], AL_FORMAT_MONO16, data, sizeof(data), 22050); 
alBufferData(buffers[2], AL_FORMAT_MONO16, data, sizeof(data), 22050); 
alSourceQueueBuffers(source, 3, buffers); 

/* If you don't need 3D spatialization, this should help processing time */ 
alDistanceModel(AL_NONE); 


// Open the default Capture device to record a 22050Hz 16bit Mono Stream using an internal buffer 
// of BUFFERSIZE Samples (== BUFFERSIZE * 2 bytes) 
pCaptureDevice = alcCaptureOpenDevice(szDefaultCaptureDevice, 22050, AL_FORMAT_MONO16, BUFFERSIZE); 
if (pCaptureDevice) 
{//... 

aber hier nur wir Standardgerät verwenden. Wie kann man einen auswählen und dann benutzen?

Antwort

1

Wenn Sie alle Erfassungsgeräte auflisten, können Sie diese in einem Kombinationsfeld anzeigen lassen, den Benutzer das gewünschte Gerät aufnehmen lassen und seinen Namen im alcCaptureOpenDevice verwenden.

Verwandte Themen