本文整理汇总了C++中AudioManager::getBuffer方法的典型用法代码示例。如果您正苦于以下问题:C++ AudioManager::getBuffer方法的具体用法?C++ AudioManager::getBuffer怎么用?C++ AudioManager::getBuffer使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AudioManager
的用法示例。
在下文中一共展示了AudioManager::getBuffer方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: loadAudio
void FakeAudio::loadAudio()
{
// this might take some time, we should move this to a bg thread
buffer = manager.getBuffer(src);
if (!buffer) {
buffer = new OpenALBuffer(src);
manager.setBuffer(buffer, src);
}
alGenSources(1, &sourceId);
alSourcei(sourceId, AL_BUFFER, buffer->getBufferId());
alSourcei(sourceId, AL_PITCH, 1.0f);
alSourcei(sourceId, AL_GAIN, 1.0f);
loaded = true;
if (autoplay)
play(NULL, 0, NULL);
if (loop)
alSourcei(sourceId, AL_LOOPING, AL_TRUE);
// get the duration
ALint bufferID = buffer->getBufferId(),
bufferSize, frequency, bitsPerSample, channels;
alGetBufferi(bufferID, AL_SIZE, &bufferSize);
alGetBufferi(bufferID, AL_FREQUENCY, &frequency);
alGetBufferi(bufferID, AL_CHANNELS, &channels);
alGetBufferi(bufferID, AL_BITS, &bitsPerSample);
duration = ((float)bufferSize)/(frequency*channels*(bitsPerSample/8));
}
示例2: loadAudio
void FakeAudio::loadAudio()
{
buffer = manager.getBuffer(src);
if (!buffer) {
buffer = new OpenALBuffer(src);
manager.setBuffer(buffer, src);
}
alGenSources(1, &sourceId);
genSource(sourceId, buffer->getBufferId(), loop);
loaded = true;
if (autoplay)
play(NULL, 0, NULL);
updateDuration();
}