while(1) { alGetSourcei(s_Wavfile.source, AL_BUFFERS_PROCESSED, &s_Wavfile.val);//val值为排队的buffer个数 if(s_Wavfile.val > 0) break; j++; } while(s_Wavfile.val--) { alSourceUnqueueBuffers(s_Wavfile.source, 1, &s_Wavfile.buffer); alBufferData(s_Wavfile.buffer, s_Wavfile.format, out, frame_shift * 2 * 2, s_Wavfile.frequency); alSourceQueueBuffers(s_Wavfile.source, 1, &s_Wavfile.buffer); } alGetSourcei(s_Wavfile.source, AL_SOURCE_STATE, &s_Wavfile.val); if(s_Wavfile.val != AL_PLAYING) { Write_Log(LOG_TYPE_ERROR, "state not playing...\n"); alSourcePlay(s_Wavfile.source); } out是你的一帧数据流
2,542
社区成员
20,281
社区内容
加载中
试试用AI创作助手写篇文章吧