本文整理汇总了C++中audio_format::frequency方法的典型用法代码示例。如果您正苦于以下问题:C++ audio_format::frequency方法的具体用法?C++ audio_format::frequency怎么用?C++ audio_format::frequency使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类audio_format
的用法示例。
在下文中一共展示了audio_format::frequency方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: create_buffer
// directsound_audio_stream::create_buffer()
void directsound_audio_stream::create_buffer(directsound_instance& instance, audio_format const& format) {
WAVEFORMATEX waveFormat;
waveFormat.wFormatTag = WAVE_FORMAT_PCM;
waveFormat.nChannels = format.channels();
waveFormat.nSamplesPerSec = format.frequency();
waveFormat.nAvgBytesPerSec = format.bytes_per_second();
waveFormat.nBlockAlign = static_cast<WORD>(format.bytes_per_frame());
waveFormat.wBitsPerSample = format.bits_per_sample();
waveFormat.cbSize = 0;
DSBUFFERDESC bufferDesc;
bufferDesc.dwSize = sizeof(DSBUFFERDESC);
bufferDesc.dwFlags = DSBCAPS_GLOBALFOCUS | DSBCAPS_GETCURRENTPOSITION2;
bufferDesc.dwReserved = 0;
bufferDesc.dwBufferBytes = static_cast<DWORD>( BufferSize_seconds.count() * format.bytes_per_second() );
bufferDesc.guid3DAlgorithm = DS3DALG_DEFAULT;
bufferDesc.lpwfxFormat = &waveFormat;
LPDIRECTSOUNDBUFFER ptr = nullptr;
if( FAILED(instance.ptr()->CreateSoundBuffer(&bufferDesc, &ptr, nullptr)) ) {
throw directsound_exception{};
}
ptr->SetFormat(&waveFormat);
_buffer = buffer_ptr{ ptr };
clear_entire_buffer();
_state = audio_stream_state::ready;
}