游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1329|回复: 2

问个DirectSound的问题,急

[复制链接]

6

主题

444

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
发表于 2006-9-18 14:05:00 | 显示全部楼层 |阅读模式
简单来说就是这样,streaming和notification的问题
每段要播放的音乐对应一个soundbuffer(SecondBuffer),每个soundbuffer建立一个streaming线程和一个Event,用每个Buffer的notification激发Event,然后在每个线程中用WaitforSingleObject等待Event激发。进行lock、fill、unlock……
单独一个buffer的情况下,没有任何问题。但同时播放多段音乐(自然使用多个buffer)就出问题了。
按理说,既然每个buffer我都建立了一个event,那么自然每个buffer的notification应该激发对应这个buffer的event才对。但是我发现在使用hardware mixing时,任何一个buffer的notification都能激发其余所有buffer的Event。这下就完全乱套了,甚至别的进程(比如使用Directsound做输出引擎的foobar)的buffer notification也会影响到本进程的Event激发,这下我彻底SBL……我还查了一下,确实每个event对应的handle不同……
而且神奇的是:使用software mixing就没有问题……我以为是板载声卡的驱动过渣所致,但换个Audigy2,问题依旧,我就faint了……
高人救我…………救………… [em7]

19

主题

64

帖子

77

积分

注册会员

Rank: 2

积分
77
发表于 2006-9-19 15:44:00 | 显示全部楼层

Re:问个DirectSound的问题,急

directsound steaming buffer不支持硬件混音,也许跟这个有关。

另外,不明白音乐混音出来有啥意义?那不成一段噪音了吗:-)

6

主题

444

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
 楼主| 发表于 2006-9-19 18:25:00 | 显示全部楼层

Re:问个DirectSound的问题,急

敢情是本来就不支持hardware mixing啊,原来如北,Thx
混音的最简单应用就是两段音乐的过渡。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 11:33

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表