gpt4 book ai didi

c++ - WinCe PlaySound 不是每次都有效

转载 作者:太空宇宙 更新时间:2023-11-04 12:53:14 24 4
gpt4 key购买 nike

我的设备 WinCE 5.0 有问题。我需要从资源播放声音。

BOOL PlayResource (int lpName) 
{
BOOL bRtn;
LPTSTR lpRes;
HANDLE hResInfo, hRes;
HINSTANCE hInst = AfxGetInstanceHandle();

// Find the wave resource.
hResInfo = FindResource (hInst, MAKEINTRESOURCE(lpName), L"WAVE");

if (hResInfo == NULL)
{
filePlay = false;
return FALSE;
}
// Load the wave resource.
hRes = LoadResource (hInst, HRSRC(hResInfo));

if (hRes == NULL)
{
filePlay = false;
return FALSE;
}
// Lock the wave resource and play it.
lpRes = (LPTSTR)LockResource (hRes);

if (lpRes != NULL)
{
bRtn = PlaySound(lpRes,GetModuleHandle(NULL), SND_MEMORY | SND_SYNC | SND_NODEFAULT);
DWORD err = GetLastError();
Logger::getInstance().log(Logger::LOG_INFO, "PlaySound return: %d error: %d", bRtn, err);
}
else
bRtn = 0;

filePlay = false;
return bRtn;
}

PlaySound 并非每次都有效。 bRtn 每次都返回1,但每次都不播放声音。GetLastError() 一直获取代码 120

最佳答案

改变

bRtn = PlaySound(lpRes,GetModuleHandle(NULL), SND_MEMORY | SND_SYNC  | SND_NODEFAULT);

要么

bRtn = PlaySound(lpRes, NULL, SND_MEMORY | SND_SYNC  | SND_NODEFAULT);

或到

bRtn = PlaySound(MAKEINTRESOURCE(lpName), hInst, SND_RESOURCE | SND_SYNC  | SND_NODEFAULT);

在最后一种情况下,您甚至不需要在调用 PlaySound 之前将声音加载到内存中。

关于c++ - WinCe PlaySound 不是每次都有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47924758/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com