难道用Direct Sound播放.WAV数据时应用程序必须在总最前端且是激活的?我想在最小化时也能出声

chenghl 2004-03-28 11:10:07
我使用DSound写了个播放音频应用程序,最大的困惑就是程序必须总在最前端且必须是活动窗口,最小化或激活其它程序时,声音就出不来,但播放进度没停。MSDN上说在SetCooperativeLevel时提供的窗口句柄须是“the top-level application window handle”的,是这个造成的么?有其它的办法解决吗?我发现Direct Music 就没有这问题,但无法处理要播放的音频数据(如从网上边接收边播放)。愁死我了!
...全文
37 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenghl 2004-03-30
  • 打赏
  • 举报
回复
多谢CoolHg(苦听)和fengge8ylf(第一次真正想有个女朋友),其方法确是正确的。以前没怎么注意那个dwFlags。看来科学是来不得半点马马虎虎的。
fengge8ylf 2004-03-29
  • 打赏
  • 举报
回复
CoolHg(苦听) 的方法是正确的
dreameasy 2004-03-29
  • 打赏
  • 举报
回复
CoolHg 2004-03-29
  • 打赏
  • 举报
回复
在创建DSBUFFERDESC时把DSBCAPS_GLOBALFOCUS加到flags上应该就可以了
shimx 2004-03-29
  • 打赏
  • 举报
回复
将SetCooperativeLevel(hWnd, DSSCL_PRIORITY)中的参数 DSSCL_PRIORITY 改成 DSSCL_NORMAL 你试试,我具体记不起来了,就是修改 这个参数就可以了。
nkwesley 2004-03-29
  • 打赏
  • 举报
回复
SDK里的示例确实是这样的,很好修改的,不过忘了怎么改的了,呵呵
wlpwind 2004-03-28
  • 打赏
  • 举报
回复
没用过dsound,有一些游戏好像是这样的。

应该可以设置一些参数实现;
直接将声音数据传到播放的缓冲区应该可以,不是很清楚,好像见过这方面的资料,如关于混音。
hell190109 2004-03-28
  • 打赏
  • 举报
回复
怎么会有这种情况,关注。

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧