0
J'ai besoin de lire le son en continu avec OpenAL. C'est mon code, mais ça ne marche pas. Ce que je dois faire?Lecture du son en cours de diffusion OpenAL
device = alcOpenDevice(NULL);
//
ofstream file;
file.open("TESTSPEAKER", std::ios_base::binary);
context = alcCreateContext(device, NULL);
alcMakeContextCurrent(context);
// alGetError();
char *alBuffer;
ALenum alFormatBuffer;
ALsizei alFreqBuffer;
long alBufferLen;
ALboolean alLoop;
unsigned int alSource;
unsigned int alSampleSet;
boost::array <char, 882> buf;
while (!ExitKey)
{
boost::system::error_code error;
size_t len = VoiceSocket->read_some(boost::asio::buffer(buf), error);
if (len==0)
{
continue;
}
file.write(buf.data(), 882);
alGenSources(1, &alSource);
alGenBuffers(1, &alSampleSet);
alBufferData(alSource, AL_FORMAT_MONO16, buf.data(), buf.size(), 44100);
alSourcei(alSource, AL_BUFFER, alSampleSet);
//
//alSourcei(alSource, AL_LOOPING, alSampleSet);
alSourcePlay(alSource);
//alSourcePlay(alSource);
}
VoiceSocket->close();
file.close();
Si je vois mon fichier ("TESTSPEAKER"), je regarde mon son. Donc je passe sur le réseau correctement. Mais comment je peux jouer ce son avec openal?
J'ai besoin de jouer tous les 10ms, 882 octets de son (MONO16). Ce son est dans la variable "buf". – EXTRAM