社区
C++ Builder
帖子详情
用waveOut进行放音的问题
xxgclj
2008-12-10 11:56:49
我用采集卡将声音采集到电脑缓冲中,用waveOut函数进行放音,各段数据之间总是能感受到小的停顿,不是那么连贯,请问如何解决?我用两缓冲轮流放也不行啊。
...全文
568
5
打赏
收藏
用waveOut进行放音的问题
我用采集卡将声音采集到电脑缓冲中,用waveOut函数进行放音,各段数据之间总是能感受到小的停顿,不是那么连贯,请问如何解决?我用两缓冲轮流放也不行啊。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
greenspan
2008-12-23
打赏
举报
回复
hi
wenyongjie
2008-12-15
打赏
举报
回复
MARK
blackboycpp
2008-12-11
打赏
举报
回复
还有一点东西, 都是google的, 希望有帮助.
Waveout 是在32位的Windows上的一种老旧且过时,用来播放数字音讯的应用程序接口(ApplicationProgramming Interface,简称API)。旧的Windows操作系统(如Win9x WinNT4)在 Waveout的完成度很高(因为 waveout 是针对这些操作系统设计的),如果你想获得最好的效能,你应该在这些操作系统上使用 Waveout输出。然而Waveout的功能有所局限,它无法支持「混和多重音讯流」的功能。这显示在Win2k/XP下的Waveout,只是为了旧的软件的兼容性所提供的,也因此Win2k/XP下 Waveout的完成度很糟,它没有使用任何的硬件加速功能,所有的混音动作都是用软件来执行
(因此当CPU的使用率很高时,常常会发生类似CD跳针的断音现象)。
Directsound 是种较新、较现代化的声音播放 API,都已经内建在最近的32位Windows操作系统中。 Directsound支持混和多重音讯流、独立的音量控制、硬件加速层及硬件仿真层(如果某些功能硬件无法支持 ,可以用软件来仿真,因此程序设计师无须担心他们的新l33t 码无法在旧的声霸卡16上运作)。一般来说,只要你的操作系统安装了适当的声卡驱动程序及最新的 DirectX,Direstsound都应该可以运作的很好(除了WinNT4以外)。在Win2k/XP下,Directsound 比 waveout更好,因为在这些操作系统里,Directsound 的完成度相对的比 waveout 来的更高(比 waveout占用较少的CPU资源,自由度较高,且不会有 Waveout 常见的小毛病)。Directsound原本是被设计来让游戏利用系统的硬件加速功能,而无须直接接触低阶的硬件函数(就如同 DirectX 其它的组件)。
blackboycpp
2008-12-11
打赏
举报
回复
ave out标准的称呼应该是 Multimedia Extensions(MME,多媒体扩展),早在Windows 3.1时代就出现了,它在Win 9X和NT 4.0中已经非常完善了,Wave out可以在这些操作系统上获得最好的效果。不过,Wave out毕竟非常老旧了,它的局限很多:声音输出的延时较长,没有任何硬件加速功能,混音是靠软件来完成的,在CPU占用率很高的时候,甚至会发生声音不连续的现象。Win 2000/XP提供的Wave out输出的目的只是为了和旧的软硬件兼容,所以,在这些操作系统下的录音和播放软件中应该避免使用Wave out。
xxgclj
2008-12-11
打赏
举报
回复
没人做过吗?
C++ 使用
wav
eOut实现声音播放
在Windows上实现声音播放比较简单的方法是使用winmm,其中的
wav
eOut模块就可以打开声音设备,播放PCM数据。本文将介绍
wav
eOut声音播放的具体实现,其实现相较于
wav
eIn的采集简单很多,不需要通过开启子线程避免死锁,对于消息也只需要监听WOM_DONE。本资源为文章附件资源,原文链接:https://blog.csdn.net/u013113678/article/details/122478895
用
wav
eOut
进行
声音播放的C++类
一个封装好的c++类,在windows环境下直接调用
wav
eOut相关操作
进行
wav
e原始声音的播放。接口简单,只需持续不断的将数据通过相应接口写入,即可实现声音播放。
OMNeT++ 车联网仿真框架Veins精讲
车辆通信网络仿真框架Veins(Vehicles in Network Simulation)是非常成熟且广泛使用的框架,Veins基于OMNeT++离散事件仿真平台而开发,Veins框架中的协议被被IEEE
WAV
E、ETSI ITS-G5、 ARIB T-109标准组织所使用。通过本课程基于OMNeT++的Veins框架的学习,可以掌握Veins的基本知识、协议、算法、框架、机制以及Veins的仿真实现。
用
wav
eOut底层函数直接播放
WAV
E文件示例
wav
eplayer.
用
wav
eOut底层函数直接播放
WAV
E文件示例
wav
eplayer.rar,看看吧,挺好的!!
wav
eout播放pcm.zip
使用
wav
eout播放PCM,代码里面的解码部分可以去掉,直接用pcm数据传参即可使用,调用流程为先调用Init,SetShowSound,然后调用sounddisplay即可播放,释放请记得调用Uninit释放资源和buffer
C++ Builder
13,825
社区成员
102,678
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章