今日是:
  小新技术网 -=> 程序开发 -=> VB编程 -=> 正文

VB.NET中使用Directsound9之简单播放

作者:[本站整理] 来源:[本站] 浏览:[] 评论:[]  【字体:

  关于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音效跟混音以及声音抓取等。

下一篇:VB6中使用的错误处理
上一篇:在VB.Net中创建使用控件数组
IP查询、IP签名
打印 】【 收藏 】【 评论 】【 推荐
相关文章 栏目推荐文章 栏目热门文章
 推荐文章 学习,是一条漫长的道路 
 普通文章 用VB跟我学做记事本(很简单哟) 
 普通文章 VB中简单木马程序的编写 
 普通文章 利用VB6.0设计屏幕保护程序 
 普通文章 Jave学习:巧用jabc进行数据库的操.. 
 普通文章 VB能做什么  
 普通文章 用VB学做“黑客”程序 
 普通文章 用VB在窗口中显示动画图标 
 普通文章 浅谈用VB6.0编写“特洛伊木马”程.. 
最新文章 最新推荐文章 热门文章
 普通文章 简历封面 
 普通文章 简历封皮(二) 
 推荐文章 用好Windows共享 确保安全 
 推荐文章 多点出发:消除局域网遗留共享痕迹.. 
 普通文章 只需三步!闪盘立刻变成启动盘 
 普通文章 战无不胜 一目了然看穿局域网 
 普通文章 Win 2000/XP在局域网内批量升级 
 普通文章 黑客经常更改的系统配置文件及注册.. 
 推荐文章 用好Windows共享 确保安全 
 推荐文章 多点出发:消除局域网遗留共享痕迹.. 
 推荐文章 Ghost二十个鲜为人知的实用参数 
 推荐文章 ASP.NET程序中常用的三十三种代码.. 
 推荐文章 黑客利用Ms05002溢出找“肉鸡” 
 推荐文章 C# 3.0语言详解之基本的语言增强 .. 
 推荐文章 Ghost所有运行错误代码完全大揭秘.. 
 推荐文章 利用Java Swing 实现游戏开发 
 推荐文章 秘籍:QQ头像任意换 
 普通文章 提升QQ等级 QQ挂机升级外挂  
 普通文章 QQ100个经典个性签名!可爱经典贴图.. 
 推荐文章 BIOS设置图解教程(多图) 
 普通文章 惊现腾讯QQ刷等级漏洞 
 普通文章 求职简历封皮  
 普通文章 突破在线观看电影 
 普通文章 GIF动画图片制作教程 
点击查看更多评论
笔名:
评论:
[评论将在5分钟内被审核,请耐心等待]
【注】 发表评论必需遵守以下条例:
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
  • 本站大部分为网络转载,如有版权问题,请通知我们,我们立即更正!

设置首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright ©2003-2005 xker.com All rights reserved. 网站合作、广告联系QQ:12231446
小新技术网  冀ICP备05002857号