首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 如何利用DirectSound的流缓冲实现实时接收音频数据 [已结帖,结帖人:xiansheng00]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xiansheng00
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-08-19 11:57:02 楼主
    各位大侠!
      小弟最近在做关于DirectSound,现在我想实现一个接口给别人用,如果我不用DirectSound里的事件机制,而采用GetCurrentPosition函数获得写数据的指针。但我在本机上试验了一下,如果读的数据过大,就会覆盖掉之前载入缓冲区的数据。如果自己维护一个写的指针(每次Lock的时候把dwOffset值记下来)就不会产生覆盖的情况,但是要把数据塞给DirectSound的缓冲区不是由我控制(何时塞我并不知道,因为我没负责网络那边的情况。并且我只能提供诸如:SendSoundData给负责接收网络数据的伙伴调用)。还有就是我不能再另外开辟缓冲区,只能用DirectSound的缓冲区(要求这样做)。考虑到从网络上接收到的数据量可能很大。我调用Lock函数的时候有可能会返回两个地址来接收数据,假设数据过大,第二个地址从缓冲区的开始位置填写数据,那么之前没播放的数据有可能会被新来的数据覆盖掉。
      还有个问题是如果要采用流缓冲模式的话,要用到DSBPLAY_LOOPING指定它循环播放,但数据来的比较晚,那有从头播放以前的数据,这在视频会议里是不能出现的。
    不知各位有什么好的办法?
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • SoftSoftSoft2008
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 13:56:381楼 得分:10
    看一看 DirectX 里面的例子啊。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xiansheng00
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 18:04:572楼 得分:0
    DirectX里面的例子都是基于与本地的WAVE文件,我的需求是播放网络传送过来的数据。这些数据还要考虑网络阻塞。来慢了要考虑缓冲区里面之前已经播放的数据的清空
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • firebolt2002
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 23:45:143楼 得分:90
    如果考虑网络阻塞的情况,你可以直接操作dsound的主缓冲区,有数据就直接播放,网络阻塞就写入静音数据。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • asddg67
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 09:11:054楼 得分:0
    Sample tool
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kaitijunzi
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 17:01:075楼 得分:0
    用DirectSound的朋友!请教一个问题,用DirectSound编写的录音程序,能实现4声道录音吗?
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved