Windows IDirectSound8::CreateSoundBuffer返回DSERR_BUFFERLOST
IDirectSound8::CreateSoundBuffer返回DSERR_BUFFERLOST意味着什么 根据DSERR_BUFFERLOST,它不是CreateSoundBuffer的有效返回代码 我们的两个用户报告了CreateSoundBuffer返回DSERR_BUFFERLOST(共数百个)的错误。我们已经向数千名用户发送了带有此代码的产品,但没有报告任何问题。两个用户都报告拥有最新的声音驱动程序。一个报告拥有Alienware 17 R4笔记本电脑,另一个报告拥有MSI笔记本电脑 Windows-10上的一个用户报告说,使用Windows-8兼容模式修复了此问题 其他互联网参考包括这一点。一个用户尝试重新启动他们的Windows音频服务,但没有效果。这似乎描述了另一个游戏中的相同问题 以下是该呼叫的其余设置:Windows IDirectSound8::CreateSoundBuffer返回DSERR_BUFFERLOST,windows,audio,directx,wav,directsound,Windows,Audio,Directx,Wav,Directsound,IDirectSound8::CreateSoundBuffer返回DSERR_BUFFERLOST意味着什么 根据DSERR_BUFFERLOST,它不是CreateSoundBuffer的有效返回代码 我们的两个用户报告了CreateSoundBuffer返回DSERR_BUFFERLOST(共数百个)的错误。我们已经向数千名用户发送了带有此代码的产品,但没有报告任何问题。两个用户都报告拥有最新的声音驱动程序。一个报告拥有Alienware 17 R4笔记本电脑,另一个报告拥有MSI笔记本电
WAVEFORMATEX w = {};
w.wFormatTag = WAVE_FORMAT_PCM;
w.nSamplesPerSec = pSoundData->sampleRate;
w.wBitsPerSample = (WORD)pSoundData->bitsPerSample;
w.nChannels = (WORD)pSoundData->numChannels;
w.nBlockAlign = w.nChannels * w.wBitsPerSample / 8;
w.nAvgBytesPerSec = w.nSamplesPerSec * w.nBlockAlign;
w.cbSize = 0;
int bufferSize = pSoundData->decodedSize;
int bufferFlags = DSBCAPS_GETCURRENTPOSITION2 | DSBCAPS_CTRLVOLUME | DSBCAPS_CTRLFREQUENCY | DSBCAPS_CTRLPAN | DSBCAPS_GLOBALFOCUS;
DSBUFFERDESC bufferDesc = { sizeof(DSBUFFERDESC), (DWORD)bufferFlags, (DWORD)bufferSize, 0, &w, DS3DALG_DEFAULT };
LPDIRECTSOUNDBUFFER pBuffer;
HRESULT hr = pSoundInterface->mDevice->CreateSoundBuffer(&bufferDesc, &pBuffer, NULL);
DirectSound文档已经很久没有被编辑过了,但是我可以告诉你,
DSERR\u BUFFERLOST
是一个有效的错误,它有很多方法:GetCurrentPosition
,Play
,停止
,锁定
,解锁
,以及恢复
所有版本的Windows上都有DirectSound,因为Windows Vista根本不“直接”。它使用Windows核心音频(WASAPI)进行输出。获得DSERR\u BUFFERLOST
的主要原因是每当从WASAPI获得“严重错误”时。通常情况下,只有在丢失当前播放设备时才会发生这种情况,但它是通过内部处理来切换设备的,因此这里不应该出现这种情况
如果您能够重新处理此问题,可以尝试启用DirectSound ETW事件以查找此处发生的错误代码
8a93b54b-c75a-49b5-a5be-9060715b1a33 Microsoft-Windows-DirectSound
ae4bd3be-f36f-45b6-8d21-bdd6fb832853 Microsoft-Windows-Audio
否则,它可能是一个驱动程序或硬件错误。DirectSound文档已经很久没有被编辑过了,但是我可以告诉你,
DSERR\u BUFFERLOST
是一个有效的错误,有很多方法:GetCurrentPosition
,play
,Stop
,Lock
,Unlock
,和恢复
所有版本的Windows上都有DirectSound,因为Windows Vista根本不“直接”。它使用Windows核心音频(WASAPI)进行输出。获得DSERR\u BUFFERLOST
的主要原因是每当从WASAPI获得“严重错误”时。通常情况下,只有在丢失当前播放设备时才会发生这种情况,但它是通过内部处理来切换设备的,因此这里不应该出现这种情况
如果您能够重新处理此问题,可以尝试启用DirectSound ETW事件以查找此处发生的错误代码
8a93b54b-c75a-49b5-a5be-9060715b1a33 Microsoft-Windows-DirectSound
ae4bd3be-f36f-45b6-8d21-bdd6fb832853 Microsoft-Windows-Audio
否则,可能是驱动程序或硬件缺陷造成的。复制过程中是否涉及特定版本的操作系统?DirectSound多年来一直是传统产品,很多都是由现代版本的Windows模拟的,因此了解操作系统的版本很重要。笔记本电脑足够现代,如果不是Windows 10,我会感到惊讶,但我已经要求他们确定。注意:此代码在其他Windows 10计算机上成功运行。复制过程中是否涉及特定版本的操作系统?DirectSound多年来一直是传统产品,很多都是由现代版本的Windows模拟的,因此了解操作系统的版本很重要。笔记本电脑足够现代,如果不是Windows 10,我会感到惊讶,但我已经要求他们确定。注意:此代码在其他Windows 10计算机上成功运行。