示例#1
0
void OpenALRenderer::queueFrame(const AudioFrame& frame)
{
    assert(frame.getFrameData());
    alBufferData(m_AudioBuffers[m_CurrentBuffer], m_AudioFormat, frame.getFrameData(), frame.getDataSize(), m_Frequency);
    alSourceQueueBuffers(m_AudioSource, 1, &m_AudioBuffers[m_CurrentBuffer]);
    m_PtsQueue.push_back(frame.getPts());

    play();

    ++m_CurrentBuffer;
    m_CurrentBuffer %= NUM_BUFFERS;

    assert(alGetError() == AL_NO_ERROR);
}