2010-06-16 8 views
13

के साथ ऑडियो रिकॉर्डिंग मैं सी ++ में उपलब्ध विभिन्न ऑडियो पुस्तकालयों की तुलना कर रहा हूं। मैं सोच रहा था, मैं ओपनएएल से शुरू हुआ हूं। क्या कोई उदाहरण प्रोग्राम प्रोग्राम को इंगित कर सकता है कि सी ++ में ओपनएएल का उपयोग करके माइक से कैसे रिकॉर्ड किया जाए।ओपनएएल

अग्रिम धन्यवाद!

उत्तर

7

पिछली बार जब मैंने ओपनल की जांच की तो यह काफी आसान था। आप रिकॉर्डिंग डिवाइस बनाते हैं और रिकॉर्डिंग शुरू करते हैं। फिर आप बस बफर फ़ंक्शन को कॉल करें। यह बफर भरने के लिए पर्याप्त डेटा होने तक प्रतीक्षा करेगा और फिर पर्याप्त डेटा होने पर वापस लौटाएगा।

ओपन एसडीके के साथ आने वाले "कैप्चर" उदाहरण को क्यों न देखें ...?

+1

यह एक फ़ाइल testcapture.c कहा जाता है हो सकता है, आप OpenAL स्रोत कोड देख रहे हैं का उपयोग कर नमूना लाने। –

25

ओपन इनपुट डिवाइस और alcCaptureStart का उपयोग कर रिकॉर्डिंग शुरू और alcCaptureSamples

#include <OpenAL/al.h> 
#include <OpenAL/alc.h> 
#include <iostream> 
using namespace std; 

const int SRATE = 44100; 
const int SSIZE = 1024; 

ALbyte buffer[22050]; 
ALint sample; 

int main(int argc, char *argv[]) { 
    alGetError(); 
    ALCdevice *device = alcCaptureOpenDevice(NULL, SRATE, AL_FORMAT_STEREO16, SSIZE); 
    if (alGetError() != AL_NO_ERROR) { 
     return 0; 
    } 
    alcCaptureStart(device); 

    while (true) { 
     alcGetIntegerv(device, ALC_CAPTURE_SAMPLES, (ALCsizei)sizeof(ALint), &sample); 
     alcCaptureSamples(device, (ALCvoid *)buffer, sample); 

     // ... do something with the buffer 
    } 

    alcCaptureStop(device); 
    alcCaptureCloseDevice(device); 

    return 0; 
} 
संबंधित मुद्दे