|
D Paste by bmeck
Description: openal recording problem
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | //Setup Recording Device auto captureDevice = alcCaptureOpenDevice( deviceName /*Just get first one*/, 240 /*Frequency*/, AL_FORMAT_STEREO16, 102400 /*102400 * 4 byte buffer minimum*/ ); //Capture! alcCaptureStart(captureDevice); int frameCount; do { alcGetIntegerv(captureDevice,ALC_CAPTURE_SAMPLES,1,&frameCount); } //10 Seconds at least while(frameCount <= 2400); //Stop since we are done alcCaptureStop(captureDevice); //Setup Buffer size = cast(uint)frameCount * 4; void[] buff = new void[frameCount * 4]; alcCaptureSamples(captureDevice,buff.ptr,frameCount); //Close Recording Device alcCaptureCloseDevice(captureDevice); // Initialize Open AL auto outdevice = alcOpenDevice(null); // open default device if (outdevice != null) { auto context=alcCreateContext(outdevice,null); // create context if (outdevice != null) { alcMakeContextCurrent(context); // set active context } } |