Direct sound 播放大文件 有噪音问题(100分)

zj_zyq 2002-10-15 07:51:23
程序实现方法:

线城函数()
{
unsigned char* pa = new unsigned char[length];

pa = GetData();

dsound->filldata();

while (1)
{
if (dsound->isplay())
continus;

dsound->play();

pa = GetData();

dsound->filldata();
}
}

问题:

我每次得到1秒钟的数据,为什么声音会出现“扑哧”的噪音或停顿。
...全文
66 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
huhairui3 2002-10-18
  • 打赏
  • 举报
回复
将dsound->play();放到dsound->filldata();
后面试试。最好采用SoundBuffer对象的QueryInterface接口;
设置声音通报事件,这样可以得到比较精确的音频播放完的时间。
你的程序CPU占用太高,声音容易出现停顿,不过可以把线程优先级提高试试,但不推荐这样做。
cosmosfang 2002-10-16
  • 打赏
  • 举报
回复
说的是,你这个dsound->filldata()是你自己写的函数嘛?
xdspower 2002-10-15
  • 打赏
  • 举报
回复
你没有实现缓冲区的卷动,这样你在两次播放之间就会停下来处理数据然后再播,这就是停顿现象,从有声到完全无声再有声就是“扑哧”
jin_yan 2002-10-15
  • 打赏
  • 举报
回复
我记得DirectSound没有出现你所写的那些函数,你把的原代码也贴出来看看

8,303

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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