首页
知识
文库
登录
|
注册
首页
最近更新
所有主题
我的主题
我的收藏
首页
·
知识
·
云计算
VB.NET中使用Directsound9之简单播放
佚名
yesky.com
综合
编辑:
dezai
图片来源:网络
关于VB6的爱好者.大家还是尽快放弃VB6吧,我从97年开始用,现在终于也到了.Net了,中间的痛苦可想而知。尤其是服务器编程,.NET会方便很多。客户端随着XP的推广跟windows update的升级,也快了,别到时候别没有准备。
我的学习方法:
看SDK的文档,了解诸多概念,然后看SDK C#的教程(已经习惯了)
准备工作:
VS2003(有2002的,但是不用那个版本)
DXSDK 9.0C 2004 Dec(记住,是for VS2k3的,曾经有过VS2k2的,而且很多地方不通用)
Win2k(这个久不用说了吧)
主要步骤:
1、首先要添加引用.否则直接imports没办法找到 Microsoft.Directx....
2、引用完了,为了方便再imports Microsoft.DirectX.directsound
为了播放一个简单的声音文件进行如下操作:
·创建一个设备,关联到这个窗体
·创建一个缓冲,指定来源(这里用文件)
·播放...
Dim ad As Device '创建设备
Dim Buf As SecondaryBuffer '创建缓冲
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ad = New Device '实力化设备对象
ad.SetCooperativeLevel(Me.Handle, CooperativeLevel.Normal) '关联
Buf = New SecondaryBuffer("G:\MEDIA\WAV\ff9start.wav", ad) '实力化缓冲区
Buf.Play(0, BufferPlayFlags.Looping) '播放,同时指定开始位置跟方式
End Sub
这是一个最基本最简单的例子,目的是了解步骤。
有趣的现象,由于DS关联的是窗体,当窗体失去焦点的时候,他会停止播放 一旦重新获得焦点会继续播放。
很方便吧
但是DS用的是缓冲区的,在切换的时候,会丢失声音,少了那么一点,SDK也提到过,但是我没有认真看(1 感觉问题不大(除非录音) 2 英文的,懒~)
实际上没有必要解决丢失问题,因为对buf描述的时候就有这个选项。
普通的(就是默认的,我用的这种)
Sticky 看原文吧:Buffers with \"sticky\" focus will continue to play if the user switches to another application not using DirectSound. However, if the user switches to another DirectSound application, all normal-focus and sticky-focus buffers in the previous application are muted.";
全局的:Buffers with global focus will continue to play if the user switches focus to another application, even if the new application uses DirectSound. The one exception is if you switch focus to a DirectSound application that uses the DSSCL_WRITEPRIMARY cooperative level. In this case, the global-focus buffers from other applications will not be audible.";
再就是 默认 硬件加速 软件加速 (用默认就好,有硬件就用硬件,否则模拟)
以下是原文:
if (MixHardware)
{
sText = sText + "\n\nWith the hardware mixing flag, the new buffer will be forced to use hardware mixing. If the device does not support hardware mixing or if the required hardware resources are not available, the call to the DirectSound.CreateSoundBuffer method will fail.";
}
else if (MixSoftware)
{
sText = sText + "\n\nWith the software mixing flag, the new buffer will use software mixing, even if hardware resources are available.";
}
else
{
// Default mixing
sText = sText + "\n\nWith default mixing, the new buffer will use hardware mixing if available, otherwise software mixing will be used.";
}
由于内容很简单,没有翻译的必要(主要是因为懒,自己能看懂稍微记录一下就算了)
实际上DirectSound能作的工作很多,包括特效,3D音效跟混音以及声音抓取等。
本文作者:佚名 来源:yesky.com
CIO之家 www.ciozj.com 微信公众号:imciow
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读
看透SAAS企业好坏的16个关键指标
SaaS产品的五类核心指标
云业务成本的组成与管理趋势
也许感兴趣的
.
营销增长:如何从0到1设计并搭建你的会员体系?
.
制造企业MES功能架构及实施规划流程
.
如何做好私域运营
.
数据脱敏技术
.
数据中台建设的目标、流程及四大要点
.
数智时代,业财融合分析平台如何重新定义商业智能
.
企业成本管理痛点分析,如何搭建成本管理体系?
我们推荐的
.
SaaS的关键指标有哪些
.
复杂的云原生体系建设
.
微服务架构设计总结实践
.
SaaS 市场体系搭建和企业营销全漏斗改造
.
SaaS企业如何应对疫情
.
中国SaaS发展史:一半是火焰,一半是海水
.
如何定义一家成熟的SaaS公司?
.
这些核心指标影响SaaS公司估值
主题最新
.
一文搞懂微服务架构演进
.
一文详解微服务架构
.
迄今为止最完整的DDD实践
.
全链路压测自动化实践
.
多维度规划业务架构
.
企业架构之业务架构
.
需求管理完整指南
.
软件安全设计原则
.
应用部署初探:微服务的3大部署模式
看看其它的
.
如何让WinXP系统运行效率更高
.
Win2000操作技巧完全手册(
.
对于Win98系统死机的简单预防
.
打造个性化的WindowsXP声音
.
2003年度十大WEB设计误区
.
ASP中也能解压缩rar文件
.
VB.NET中的TextBox控件详解
.
用VB.NET结合Excel设计统计生产报表
收藏至微信