directx8中文教程_13_声音和音乐
- 格式:docx
- 大小:22.03 KB
- 文档页数:8
Vista 8数字调音台系统用户操作手册第一章1 综述 (2)1.1 操作原理 (2)1.1.1 Vistonics®触摸控制屏 (3)1.1.2 Momentary/Latching Key Activation按键瞬时/长时锁定功能 (6)1.1.3 Ganging联动 (7)1.2 The Graphic Controller 图形界面控制软件(GC) (8)1.2.1 GC控制软件示例 (9)1.3 Channels通道、Routing路由、Buses母线 (12)1.4 Processing Blocks处理模块 (13)1.5 Monitoring and Communication监听和通讯 (13)1.6 Static Automation Functions静态自动化 (15)1 综述1.1 操作原理在Studer Vista 8数字调音台的操作上,以下三个特性是贯穿始终的:Vistonics® 触摸控制屏Momentary/Latching Key Activation 按键瞬时/长时锁定功能Ganging 联动这些操作特性将在以下章节详细说明。
它们之间可以随意相互配合使用,除非这些配合在实际中并没有真正用途。
对于音频工程师来说,在日常生活中使用这些操作理念能够大大提高操作速度和便捷性。
1.1.1 Vistonics® 触摸控制屏Vistonics® 触摸控制屏利用人体工程学,将各种控制功能用不同颜色或形状表示。
特定的音频处理功能总是与同一种颜色相关联,而一种特定参数则总是用同一种图标或图形来显示——类似于模拟调音台,甚至比模拟调音台更加直观。
Vistonics® 技术使操作者的视线和控制位置保持一致,因此,它不会发生操作者一边观看数值、一边寻找控制键的现象,这样就可以在每天几百次地操作中节省点滴的时间和精力!设计者花费了很多精力来让这些操作上的关联清晰而易于识别。
Samplitude V8 professional教程(初级篇)如题,所谓初级篇,就是让一些喜欢录音速成的朋友尽快学会使用Samplitude V8 professional简单录音和混缩。
本帖子不会涉及VST/DirectX 之类的外部效果器的使用,不会牵涉音轨编组(BUS),不涉及听湿录干的软件监听,不会涉及总输出挂载效果,但是涉及AUX辅助音轨(废话,不写这个,还发这个帖子干嘛?),请新手不必担心,也请高手不必拍砖.... (以后定有进阶教学)这里,将使用“刘凤明汉化”版本的Samplitude V8 professional 作为讲解。
如果不幸找不到Samplitude V8 professional,使用Samplitude V7.22 professional汉化版也可以(在“天天精品软件园”下载),方法基本相同。
本帖子废话不多(撒谎),废图不少,欢迎观看。
图片全部引用优友像册,感谢X-论坛的Speed大师指引道路,小弟严重感激不能自拔~先废话废话Adobe Audition 1.5,原身就是大家常说的酷儿编辑破落(不是Qoo,而是CoolEditPro2.**),这玩意录音编辑混缩样样健全是不可多得的好材料但是混音手法实在有些死板而且总线结构不太好用更不可理解的是居然没有辅助音轨......(老毛病又犯了)先看看两张图:如果看得懂上面两图最好,如果看不懂,也没关系,反正以后还要讲...现在,就以一个歌曲录音,开始三霹雳突德之路吧:安装这个软件(由于涉及到危机板拳问题***,安装步骤略,如需要详情,请PM我,或者请各位大鱼大虾泥鳅甲鱼乌贼螃蟹互相转告相关**的方法)全部讲解,几乎全部都是图片,按顺序看完,也差不多了解基础了~如图:(如果图很小,点它用另外窗口打开就可以了)第一步:设置您的声卡驱动,民用声卡,就用WDM,专业声卡,可以选择ASIO。
创新SB Audigy1/2用户,如果想用ASIO,可以直接是用,也可以安装K*驱动第二步:设定VST插件目录(不管是否用上,但是还得先设置)第三步:新建一个多轨工程,这个非常重要,请注意采样频率的选择,图片里已经写的非常清楚了。
数码播放器DX-D85说明书
数码播放器DX-D85说明书有以下步骤:
1、所谓数码播放器DX-D85其实是指PMP,就是便携式媒体播放器,是个统称。
包括我们常说的MP3、MP4、车载播放器、收音机等多种样式。
2、首先,我们来说一下最简单的MP3播放器的使用方法。
把MP3通过数据线或直接插入到电脑的usb接口。
3、电脑中会出现可移动硬盘,双击打开就是一个磁盘。
如果双击不能打开,则把MP3格式化为FAT32。
4、把MP3音乐拖入这个磁盘。
如果有歌词文件,一般是lrc 格式,可以一并拖入,有歌词显示的就会显示。
注意,歌词与歌曲必须同名。
5、MP3的操作,停止、播放、上一曲、下一曲、音量等都有相应的按键,对着相应的按键按下即可。
选项和菜单则一般在menu 或m键打开显示。
6、此外,有的MP3需要使用内存卡将播放内容使用MP3播放出来。
遇到这种的MP3,我们首先要准备一张内存卡。
7、将内存卡插入电脑,将想要听的内容由电脑导入内存卡,方法与直接插入MP3一样。
然后,将带有播放内容的内存卡插入MP3即可进行操作。
DirectX 8 教程著 Andy Pike译 Aman JIANG 第一章: 准备就绪What you will need(你需要什么)∙DirectX 8.0 SDK (可以从/directx下载)∙VC6(SP5)/∙Windows 程序设计经验∙通晓 C++ 和OOPIntroduction(序)(原著的话)欢迎阅读本DX教程。
本教程至少能帮你入门、使你了解怎样用DX8 来开发Windows游戏。
我写这个教程的原由有二:首先,当出现DX时,我还是一个初学者。
所以,我想边学习边写一个教程来锻炼自己。
其次,对初学者来说,DX SDK 并不是很有帮助。
而且,网上也没有什么像样的Dx8教程。
另外,就像上面我提到的,我也是个初学者,所以,如果你发现教程中有什么地方不对,请给我写信:webmaster@。
译者言我也是一名初学者,所以,有言在先:如果你读英文能如履平地,建议你还是去读原著。
此教程很适合入门,等你入门以后,你会发现,其实一切并没有想象的那样复杂。
这是个不错的Dx8教程,我会尽最大努力把它翻译好。
注:我并没有完全按照原著来译,不适之处,请多包涵。
嗯,你应该弄到教程附带的源代码,没有那个可不行!可以到去下载。
欢迎指出我的错误,或与我联系,我的Email:Chaoyu_JIANG@ or Aman_JIANG@ , QQ:15852673。
COMWhat is COM? COM 是什么呢?COM 就是 Component Object Model, 组件对象模型。
COM 接口和C++的抽象类相似(但不一样),就像抽象类没有与之相关的实际代码一样,COM描述了一套符号和语法而非实现过程。
你也可以把 COM 对象就想象成一套为某个主题而设计的一整套库函数。
DX 就提供了一套完整的设计3D游戏的库。
最棒的就是,使用DX时,你不必去直接接触硬件,而由DX帮你代理了。
这使得一些事情变得简单了。
使用 COM 时应该注意,必须在程序结束前释放所有的 COM 对象(或接口)。
使用入门感谢您选择Creative Sound BlasterAxx SBX8-采用强劲的SB-Axx1声音和语音处理器的新一代Sound Blaster®。
它具有音箱和麦克风功能,可满足聆听和会议需求。
SBX8(SB1380)型号设计在不影响您的音频体验的前提下提高了便携性并降低了能耗。
Sound BlasterAxx SBX8在单个塔式结构中融入了左右两个喇叭单元。
此系统具有以下功能:l小巧和高便携造型使其成为笔记本电脑的理想搭配l高品质音频®8、Windows7、Windows Vista®和Mac®OS。
l无缝兼容多种操作系统,包括Windowsl低功耗放大器技术保证了低能耗以及环保l具有多种音箱增强效果和配置的专门软件l Sound BlasterAxx Pro Studio(SBX Pro Studio™)音频增强l高质量内置麦克风以及CrystalVoice™技术包装清单Sound BlasterAxx SBX8包装盒内附带以下配件l Sound BlasterAxx SBX8l微型USB连接线系统需求l Intel®Core™2Duo处理器2.2GHz、AMD®Athlon™64x2双核或同等的处理器l以下任意一种操作系统:Microsoft®Windows864-bit或32-bit、Windows764-bit或32-bit、Windows Vista64-bit或32-bit、Macintosh OS10.5或以上l自备电源USB2.0端口注册您的产品注册您的产品,获得最贴心的服务和产品支持。
您可以在安装时注册产品,也可以访问/register进行注册。
请注意,无论您注册产品与否,都将享有保修服务。
更多帮助请访问,获取有关Sound Blaster的最新资讯和产品信息。
该网站还有关于购物、技术支持和软件更新方面的信息。
Flash 8教程简介Flash 8是一款由Adobe公司开发的多媒体软件,用来创建丰富的互动式动画、游戏和应用程序。
本教程旨在帮助初学者快速入门Flash 8,了解其基本功能和使用方法。
目录1.Flash 8的介绍2.安装与配置3.Flash 8的主要功能4.制作动画5.创建交互式场景6.开发游戏7.提高Flash 8技能的其他资源1. Flash 8的介绍Flash 8是一种基于矢量图形的动画编辑器,它使用时间轴的概念来组织动画和交互元素。
Flash 8支持多种文件格式,可以在各种平台和浏览器上播放。
它还提供了丰富的工具和功能,使用户能够创建令人惊叹的动画效果。
2. 安装与配置在开始使用Flash 8之前,您需要先下载并安装软件。
请确保您的计算机系统满足最低系统要求,并且您具有管理员权限。
安装完成后,您可以根据需要配置软件的首选项和界面布局。
3. Flash 8的主要功能Flash 8拥有许多强大的功能,包括:•时间轴和图层管理:通过时间轴可以控制动画元素的运动和变化。
图层管理功能使您能够对不同元素进行分层处理,使动画更加有序和可控。
•动画效果和变换:Flash 8提供了各种内置的动画效果和变换工具,使您能够轻松创建各种吸引人的动画效果。
•多媒体支持:Flash 8支持导入和使用多种媒体文件,如音频、视频和图像,以丰富动画和交互体验。
•ActionScript编程:Flash 8内置了ActionScript编程语言,使设计师和开发者能够创建交互式和动态的Flash内容。
•发布和导出:Flash 8允许您将制作完成的动画导出为SWF文件,可以方便地在网页上嵌入和播放。
4. 制作动画制作动画是Flash 8的一项主要功能。
以下是创建动画的基本步骤:1.创建画布:打开Flash 8并新建一个文档,可以设置画布的尺寸和背景颜色。
2.绘制形状:使用绘图工具在画布上创建形状和图形。
3.设置关键帧:通过在时间轴上设置关键帧,可以定义动画中的不同帧的内容和属性。
安全事项为了你的安全,请在操作本设备前,彻底地阅读本手册。
本定位仪专供经过有关培训的熟练汽车技术人员使用。
本节和整个手册中介绍的安全信息提示操作员,使用本产品进行车轮定位时,应极其小心。
修理车辆的程序、技术、工具和零件变化多端,以及工作人员的个人技术各有不同。
由于车辆应用和产品的潜在用途繁杂广泛,制造商不可能预计到每一种情况,一一提供忠告或安全信息。
汽车技术人员有责任了解要调整的车辆。
必须使用正确的修理方法和以合适的可以接受的不危及自身安全、工作区域内其他人的安全或修理的车辆或设备的方式进行车轮定位。
我们假定,使用定位仪前,操作员对所修理的车辆系统有彻底的理解。
此外,我们还假定,他对定位架或提升机构的操作和安全特性有透彻的了解,并具备进行车轮定位的必要手动和电动工具。
使用你的维修站设备时,应始终采取基本的安全预防措施,包括:1. 阅读所有的指示。
2. 接触发烫零件时,必须小心避免灼伤。
3. 未经合格的修理人员检查前,不得操作电力线受损伤的或设备坠落过或损坏的设备。
4. 不得将线悬架放在桌、凳或柜台的边缘上,或与烫的歧管或运动的风扇叶片接触。
5. 如果需要接长电线的话,应使用电流额定值等于或大于设备的额定值的电线。
额定值低于设备的电线可能过热。
走线应小心,使得不会绊人或拉动。
6. 设备不使用时,应将设备从电气插座上拔掉。
将插头从插座上拔出时,决不可以拉线。
抓住插头将它拉开。
7. 待设备完全冷却后,再放到一边去。
存放是将电线松弛地绕在设备上。
8. 为了减少火灾危险,请勿在敞开的易燃液体,如汽油容器附近操作设备。
9. 进行内燃机操作时,应提供充分的通风。
10. 注意头发、松散的服装、手指和身体各部分远离运动部件。
11. 为了减少触电危险,不得在潮湿的表面上使用,或接触雨水。
12. 只可按照本手册中的描述使用。
只应使用制造商推荐的附件。
13. 始终佩带安全镜。
日常目镜的镜头只能抗冲击。
它们不是安全镜。
重要!! 保存好这些指示请勿遗失!!安全指示重要!! 请保存这些指示。
DirectX中文手册Microsoft老王翻译Alpha整理alpha_nuaa@目录第一章DirectX基础(初级篇)第一节什么是DirectX一、什么是DirectX ?二、DirectX的组成部分三、关于DirectDraw四、为什么要使用DirectDraw?五、DirectX5.0的新特性?六、什么是部件对象模型(COM)七、自我检测第二节如何安装和使用DirectX一、编译库和运行库二、安装VC++ 5.0三、安装DirectX5.0 的SDK四、DirectX 5.0 的文件说明五、卸载DirectX第三节一个DirectDraw入门程序一、一个小测验二、牛刀小试三、分析代码1)程序结构2)定义和创建DirectDraw对象3)设置控制级和显示模式4)创建主页面5)输出文字6)释放对象7)主窗口类型四、小结第四节DirectDraw图形编程基础知识一、像素和分辨率二、RGB色彩三、设备无关位图(DIB)四、位深度(Bit depth)五、抖动处理(Dithering)六、调色板(Palette)七、GDI与DirectDraw八、位块传送(Blit)九、翻页(Page flipping)十、矩形(Rectangle)十一、精灵动画(Sprite animation)十二、关键色(Color Key)十三、补丁(Patching)十四、范围检查与碰撞检测第二章DirectDraw核心(高级篇)第一节、DirectDraw架构一、DirectDraw结构概览二、DirectDraw对象类型三、硬件抽象层(HAL)四、软件仿真层(HEL)五、系统集成第二节、控制级第三节显示模式一、关于显示模式二、测定支持的显示模式三、设置显示模式四、恢复显示模式五、Mode X和Mode 13显示模式六、对高分辨率和真彩色的支持第四节DirectDraw对象一、什么是DirectDraw对象?二、IDirectDraw2接口的新特性?三、单进程的多DirectDraw对象四、使用CoCreateInstance创建DirectDraw对象第五节页面一、页面的基本概念1)什么是页面2)页面接口3)宽度和宽距4)关键色5)像素格式二、创建页面1)创建主页面2)创建离屏页面3)创建复杂页面和换页链4)创建超宽页面三、换页四、页面丢失五、释放页面六、更新页面属性七、直接访问帧缓存八、使用非本地视频RAM页面九、色彩和格式转换十、覆盖页面1)覆盖页面概览2)DDCAPS的重要成员和标志3)源和目标矩形4)边界和大小限制5)最小和最大缩放系数6)覆盖页面关键色7)覆盖页面的定位8)创建覆盖页面9)覆盖页面的Z轴次序10)覆盖页面的换页十一、Blit到多窗口第六节调色板一、什么是调色板?二、调色板的种类三、对非主页面设置调色板四、共享调色板五、调色板动画第七节裁减器一、什么是“裁减器(Clipper)”对象二、裁减清单(Clip list)三、共享DirectDrawClipper对象四、独立的DirectDrawClipper对象五、用CoCreateInstance创建DirectDrawClipper对象六、对系统鼠标使用裁减器七、对多窗口使用Clipper第八节多显示器系统一、在多显示器系统中列举显示设备二、焦点窗口和设备窗口三、设置焦点窗口和设备窗口四、缺省设备窗口五、多显示器系统中的显示设备与加速特性第九节、高级DirectDraw主题一、对Mode 13的支持1)关于Mode 132)设置Mode 133)Mode 13与页面特性4)使用Mode 13模式二、从DMA中获益1)关于DMA设备支持2)对DMA支持的检测3)典型的DMA方案4)利用DMA三、在窗口模式下使用调色板1)窗口模式的调色板入口类型2)在窗口模式下创建调色板3)在窗口模式下设置调色板入口四、获得换页和Blit操作的状态五、使用Blit进行单色填充六、测定显示硬件的能力七、在视频RAM中储存位图八、Triple Buffering(三缓冲)九、DirectDraw应用程序和窗口风格十、将真彩色匹配到帧缓冲区的色彩空间第一章DirectX基础(初级篇)第一节什么是DirectX?一、什么是DirectX微软的DirectX软件开发工具包(SDK)提供了一套优秀的应用程序编程接口(APIs),这个编程接口可以提供给你开发高质量、实时的应用程序所需要的各种资源。
转DirectSound入门基础介绍和环境的配置摘要:DirectSound编程的入门介绍,通过实例讲解了如何利用DirectSound最基本的功能:播放音频,并提供了DirectSound播放音频文件的两种方式:静态缓存和流缓存。
关键词:DirectSound、流缓存、静态缓存、wave文件播放一、配置DirectSound的开发环境在进行DirectSound开发之前,一定要设置好开发环境,否则编译时会提示很多东西都找不到定义,DirectSound的开发环境很好设置,简单的说就是包含一些头文件,将lib文件添加要工程中。
仅仅包含dsound.h肯定是不够的,一般来说,在工程中包含下面两个文件就够了。
#include <mmsystem.h>#include <dsound.h>如果还想使用Dsound的API的话,那么你就要在vc开发环境中添加Dsound..lib库,如果程序还提示有很多的外部链接找不到,那么建议将下面的库都添加到你的工程中comctl32.lib dxerr9.lib winmm. lib dsound.lib dxguid.lib odbc32.libodbccp32.lib。
开发环境配置好了,就可以在工程中任意使用DirectSound提供的接口和函数了。
下面简单介绍DirectSound开发中要用到的对象。
二、 DirectSound几个对象首先了解一下DirectSound中常用的几个对象, DirectSound其实很简单,主要有下面常用的几个对象。
首先,要创建一个设备对象,然后通过设备对象创建缓冲区对象。
辅助缓冲区由应用程序创建和管理,DirectSound会自动地创建和管理主缓冲区,一般来说,应用程序即使没有获取这个主缓冲区对象的接口也可以播放音频数据,但是,如果应用程序要想得到IDirectSoun d3DListener8接口,就必须要自己创建一个主缓冲区。
directx8DirectX 8: A Comprehensive OverviewIntroductionDirectX 8 is a multimedia application programming interface (API) developed by Microsoft. It offers powerful features for graphics rendering, audio playback, and input handling, making it a crucial component for game development and multimedia applications. In this document, we will explore the various components of DirectX 8 and how they contribute to the overall functionality and performance of applications.1. DirectX 8 ArchitectureDirectX 8 consists of several components that work together to provide a seamless multimedia experience. These components include DirectDraw for 2D graphics rendering, Direct3D for 3D graphics rendering, DirectSound for audio playback, DirectInput for input handling, and DirectPlay for network communication. Each component is designed to handle specific tasks and can be used individually or incombination with other components to create sophisticated applications.2. DirectDraw: 2D Graphics RenderingDirectDraw is designed for efficient 2D graphics rendering. It provides a wide range of features including hardware acceleration, double buffering, and support for multiple display devices. With DirectDraw, developers can create visually stunning 2D graphics, implement smooth animations, and handle multiple resolutions and color depths.3. Direct3D: 3D Graphics RenderingDirect3D is a powerful component of DirectX 8 that enables developers to create immersive 3D graphics. It supports hardware acceleration, texture mapping, lighting effects, and vertex transformations, among other advanced features. With Direct3D, developers can create realistic environments, implement complex shading techniques, and achieve high-performance rendering for demanding applications.4. DirectSound: Audio PlaybackDirectSound provides audio playback capabilities for DirectX 8 applications. It offers features such as 3D sound positioning, hardware acceleration, and support for various audio formats. With DirectSound, developers can create immersive audio experiences, implement realistic sound effects, and handle multiple audio streams simultaneously.5. DirectInput: Input HandlingDirectInput allows developers to handle input from various devices such as keyboards, mice, joysticks, and gamepads. It offers features like input buffering, device enumeration, and force feedback support. With DirectInput, developers can create responsive and customizable input systems, implement complex control schemes, and support a wide range of input devices.6. DirectPlay: Network CommunicationDirectPlay is a networking component of DirectX 8 that enables multiplayer gaming and network communication. It provides features such as connection management, data synchronization, and secure communication. With DirectPlay, developers can create multiplayer games, implement onlinematchmaking systems, and build applications that require real-time data exchange over a network.7. Compatibility and PortabilityDirectX 8 is designed to be backward compatible with previous versions of DirectX, allowing developers to easily migrate their existing applications to the latest version. Moreover, DirectX 8 is cross-platform compatible, providing a consistent development experience across different operating systems, including Windows and Xbox.8. Performance ConsiderationsDirectX 8 offers both hardware and software rendering options, allowing developers to optimize their applications for different target systems. Hardware acceleration can significantly enhance rendering performance by offloading graphics calculations to the GPU, whereas software rendering ensures compatibility on systems without dedicated graphics hardware. Developers should carefully consider performance trade-offs and target system capabilities when choosing between hardware and software rendering.ConclusionDirectX 8 is a powerful multimedia API that provides a comprehensive set of tools for graphics rendering, audio playback, input handling, and network communication. Its components, including DirectDraw, Direct3D, DirectSound, DirectInput, and DirectPlay, offer developers immense flexibility and control over their applications. By leveraging the features provided by DirectX 8, developers can create visually stunning, immersive, and high-performance multimedia applications.。
入门指南HP 产品和服务的所有保修限于这些产品与服务所附带的明确声明。
本文的任何条款都不应视作构成保修声明的附加条款。
HP不对本文的技术性错误、编印错误或冗长负任何责任。
对于在非HP 提供的设备上 HP 软件的使用和可靠性,HP 概不负责。
本文档包含的所有权信息均受版权保护。
未经 HP 事先书面许可,不得将本文档的任何部分影印、复制或翻译成其他语言。
Hewlett-Packard CompanyP.O. Box 4010Cupertino, CA 95015-4010USACopyright © 2000–2005 Hewlett-Packard Development Company, L.P.此产品使用了受版权保护的技术,应 Macrovision 公司和其他权利持有人为保护其美国专利和其他知识产权的要求,我们采取了一些保护措施。
在使用此版权保护技术之前必须得到Macrovision 公司的授权,且只能作为家用和其他受限的观赏用途,除非得到 Macrovision 公司的授权才能另作他用。
禁止反编译。
根据美国专利号 4,631,603、4,577,216、4,819,098 和 4,907,093 的许可要求,与之相关的产品只能作为受限观赏用途。
Microsoft 和 Windows 是 Microsoft Corporation 在美国的注册商标。
Apple、iTunes、FireWire 和 iPod 是 Apple Computer, Inc. 在美国和其他国家/地区的注册商标。
FireWire 徽标是 Apple Computer, Inc. 的商标。
HP 支持科技产品在法律允许范围内的使用,我们不认可、也不鼓励我们的产品被用于著作权法所不允许的目的。
本文档中的内容可随时更改,恕不另行通知。
目录安装电脑 (1)组装电脑 (1)连接到电脑 (2)首次启动您的电脑 (3)建立并连接到您的 Internet 帐户 (4)安装软件和硬件设备 (5)使用 HP 产品 (5)将旧电脑中的信息和文件转移到新电脑中 (5)使用桌面图标 (6)使用 HP Organize 软件 (6)使用键盘 (7)自定义键盘按钮 (9)使用电脑机箱顶部 (11)使用支撑架 (11)设置声音 (15)使用扬声器 (15)设置 3 接口的声音 (16)为 DVD 播放机设置多声道音频输出 (18)设置 6 接口的声音 (18)确定音频配置软件 (20)使用 Sound Effect Manager(6 接口) (20)使用 Sound Effect Manager(6接口)配置扬声器 (20)配置声音以使用 Sound Effect Manager 录音(6接口) (21)使用 Realtek HD Sound Effect Manager(6 接口、多音源音频) (23)配置 Realtek HD Sound Effect Manager(6 接口、多音源音频) (23)使用 Realtek HD Sound Effect Manager(6 接口、多音源音频)配置用于录音的声音设置 (24)目录v使用 Realtek HD Sound Effect Manager(6 接口、多音源音频)重新定义音频接口 (24)配置多音源音频(6 接口、多音源音频) (24)设置多音源音频 (26)使用读卡器 (29)使用读卡器 (29)媒体插入指南 (30)使用安全删除硬件实用程序 (32)将电视用作显示器 (33)确认您可能用到的电缆 (33)连接到电视机 (33)在电视屏幕上观看电脑画面 (34)nView 选项卡 (35)Ge Force 选项卡 (35)显示选项卡 (36)禁用电视选项 (36)nView 选项卡(禁用) (37)Ge Force 选项卡(禁用) (37)显示选项卡(禁用) (37)断开与电视的连接 (38)使用 HP Personal Media Drive (39)连接硬盘驱动器 (39)插入硬盘驱动器 (40)定位硬盘驱动器并为之分配一个盘符 (41)使用硬盘驱动器 (42)断开硬盘驱动器 (43)处理数码图像 (45)处理数码图像 (45)使用 HP Image Zone (45)播放 CD 和 DVD (49)用 iTunes 播放音乐 CD (49)用 Windows Media Player 播放 CD 和 DVD (50)使用 InterVideo WinDVD 播放 DVD 影片 (50)使用国家/地区编码 (52)使用 InterVideo WinDVD 播放 VCD(影碟) (52)使用 Windows Media Player 播放 VCD(影碟) (53)vi入门指南制作音频和数据光盘 (55)刻录前请擦除光盘上的内容 (56)制作音频 CD (56)验证是否音频文件刻录无误 (57)音频 CD 提示 (57)制作音频 CD (58)制作 jukebox 光盘 (58)制作数据 DVD 和 CD (59)验证数据光盘刻录是否无误 (59)数据光盘提示 (60)制作数据光盘 (60)复制 DVD 或 CD (61)将文件归档至 CD 或 DVD (62)处理映像文件 (62)制作映像文件 (63)从映像文件进行烧录 (63)使用 LightScribe 制作光盘标签 (63)Lightscribe 需求 (64)使用 Sonic Express Labeler 烧录 LightScribe 标签 (64)使用 iTunes 烧录后刻录 LightScribe 标签 (65)使用胶粘光盘标签 (66)兼容性信息 (66)光盘特性及兼容性图表 (67)光驱快速参考图表 (68)软件快速参考图表 (69)制作视频光盘和影片 (71)开始捕获影片之前 (71)Sonic MyDVD Video 项目 (72)制作视频项目 (72)添加将文件到视频项目 (73)为视频项目捕获视频 (73)将幻灯片添加到视频项目 (74)将子菜单添加到视频项目 (74)编辑视频项目的样式 (75)编辑影片文件 (75)将视频项目刻录到光盘 (76)使用 Direct-to-Disc 向导制作视频项目 (77)视频质量和光盘尺寸 (78)DVD 刻录时间 (79)目录vii使用 muvee autoProducer 制作影像 (81)制作影像的基本步骤 (81)查找 muvee autoProducer (82)使用 muvee autoProducer (83)入门 (83)从数码视频摄像机截取影像 (84)加入影像 (85)加入图片 (86)加入音乐 (86)选择风格 (87)更改设置 (87)加入开场标题和结束署名 (88)制作影像 (89)保存影像项目 (89)将影像项目刻录到光碟 (90)获取帮助 (91)查找联机指南 (91)从网络上查找指南 (91)使用联机的“帮助和支持中心” (92)使用 HP 更新信息 (92)获取信息 (92)关闭消息 (93)重新激活消息 (93)使用 PC 帮助和工具 (93)索引 (95)viii入门指南安装电脑警告:安装电脑并将其连接到电源之前,请阅读《保修和支持指南》中的“安全信息”。
用Dir c tX Audi和Dir c tSh w播放声音和音乐(1)音乐就是一系列的音符,这些音符在不同的时间用不同的幅度被播放或者停止。
有非常多的指令被用来播放音乐,但是这些指令的操作基本相同,都在使用各种各样不同的音符。
在计算机上进行作曲,实际上是存储了很多组音乐,回放时由音频硬件将这些音符播放出来。
Midi格式(文件扩展名是.MID)是存储数字音乐的标准格式。
Dire t Mus c音乐片段(musi segm n ts)使用.SGT文件扩展名,其他的相关文件包括乐队文件(band file .BND),这种文件里面包含乐器信息;弦映射表文件(chor m aps file . CDM)包含在回放时修改音乐的和弦指令;样式文件(styl s file .STY)包含回放样式信息;模板文件(temp a tes file .TPL)包含创造音乐片段的模板。
Midi是一种非常强大的音乐格式,惟一的不利因素是音乐品质依赖于音乐合成器的性能,因为Mi i仅仅记录了音符,其播放的品质由播放音乐的软硬件决定。
MP3文件(文件后缀为.MP3)是一种类似于波表文件的文件格式,但是MP文件和W V文件最大的区别在于M P3文件将声音压缩到了最小的程度,但是音质却基本不变。
可以用D r ect h ow组件播放MP文件,Dire t Sh o组件是一个非常强大的多媒体组件,用Dir c tSh w几乎可以播放任何媒体文件,包括声音和音频文件,部分声音文件我们只能用Dir c tSh w播放。
Dire t Audi是一个复合组件,它由Di e ctS u nd和i rec M usi两个组件组成,如下图所示:Dire t Mus c在Di e ctX中得到了巨大的增强,但是Di e ctS u nd基本保持原有的状态。
Di re t Sou d是主要的数字声音回放组件。
Dire t Mus c处理所有的乐曲格式,包括MI I、Dir e t Mus c本地格式文件和波表文件。
DXSDK8-Visual Basic教程准备:新建一标准EXE工程,选择菜单-->工程-->引用-->DirectX8 for Visual Basic Type Libra创建D3D设备创建一个简单的D3D设备并进行图形渲染第一步创建窗体和picture控件Caption = "Create Device"Height = 3600Left = 0Top = 0Width = 4800LinkTopic = "Form1"MaxButton = TrueMinButton = TrueScaleHeight = 3195ScaleMode = 1 - TwipScaleWidth = 254StartUpPosition = 3 - Windows Default第二步开始D3D设备首先要用DirectX8.Direct3DCreate方法创建一个Direct3d8对象其次要用Direct3D8.GetAdapterDisplayMode方法接受到当前的显示模式在取得显示模式后,以后就可以用此结构在创建一个运行在窗口模式下的Direct3Ddevice设备时,建个与当前显卡相匹配的后缓冲区接下来用D3DPRESENT_PARAMETERS对象来指定3D应用程序的表下面就要用CreateDevice方法利用上面对象的值设置应用程序第三步渲染和显示场景本例使用一个(Interval=40)timer控件触发场景的后缓冲区进行颜色填充.再把后缓冲与前缓冲交实现渲染首先用Direct3DDevice8.Clear方法进行填充颜色在是开始场景和结束场景在渲染完场景后再用Direct3DDevice8.Present方法显示出来第四步关闭应用程序在DX应用程序结束后必须把所有的DX对象设置成Nothing所有代码如下:Dim g_DX As New DirectX8Dim g_D3D As Direct3D8Dim g_D3DDevice As Direct3DDevice8Private Sub Form_Load()Me.ShowDoEventsb = InitD3D(Picture1.hWnd) '初始化设备If Not b ThenMsgBox "Unable to CreateDevice (see InitD3D()source for comments)"EndEnd IfTimer1.Enabled = TrueEnd SubPrivate Sub Timer1_Timer()Render '渲染End SubPrivate Sub Form_Unload(Cancel As Integer)Cleanup '清除设备EndEnd SubFunction InitD3D(hWnd As Long) As Boolean'初始化On Local Error Resume NextSet g_D3D = g_DX.Direct3DCreate()If g_D3D Is Nothing Then Exit FunctionDim mode As D3DDISPLAYMODEg_D3D.GetAdapterDisplayMode D3DADAPTER_DEFAULT, modeDim d3dpp As D3DPRESENT_PARAMETERSd3dpp.Windowed = 1d3dpp.SwapEffect = D3DSWAPEFFECT_COPY_VSYNCd3dpp.BackBufferFormat = mode.FormatSet g_D3DDevice =g_D3D.CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,D3DCREATE_SOFTWARE_VERTEXPROCESSING, d3dpp)If g_D3DDevice Is Nothing Then Exit FunctionInitD3D = TrueEnd FunctionSub Cleanup() '清除设备Set g_D3DDevice = NothingSet g_D3D = NothingEnd SubSub Render() '渲染If g_D3DDevice Is Nothing Then Exit Subg_D3DDevice.Clear 0, ByVal 0, D3DCLEAR_TARGET, &HFF&, 1#, 0g_D3DDevice.BeginSceneg_D3DDevice.EndSceneg_D3DDevice.Present ByVal 0, ByVal 0, 0, ByVal 0End Sub要使用D3D进行渲染就必须创建Direct3DDevice8对象在DirectX8.Direct3DCreate方法先要创建一个Direct3d8对象再用Direct3d8.CreateDevice方法创建Direct3DDevice8对象其中还要Direct3D8.GetAdapterDisplayMode方法接受到当前的显示模式并要设置D3DPRESENT_PARAMETERS成员来指定3D应用程序的表现创建完后用Direct3DDevice8.Clear方法进行填充颜色并开始场景用Direct3DDevice8.Present方法显示出来最后还要把所有的DX对象设置成Nothing 来结束DX程序顶点的渲染使用顶点画几何图形,本例使用3个顶点,并使用了顶点缓冲区的概念第一步:定义一个顶点类型首先定义顶点格式,并指定在顶点缓冲区里描述画面顶点的FVF第二步:设置顶点缓冲区本例子用自定义的InitVB过程在创建了D3D所需的对象后来实现初始化顶点缓冲区, 接下来的初始了三个特定的顶点类型来填充顶点缓冲区下面用CreateVertexBuffer方法建立顶点缓冲区接下来使用D3DVertexBuffer8SetData来添加数据第三步 渲染显示表面现在仍使用clear 方法来清除表面并开始场景接下来要用SetStreamSource 方法,来设置顶点缓冲区对应的流下一步是使用CreateVertexShader方法来创建顶点遮盖使用DrawPrimitive在顶点缓冲区里渲染顶点最后的步骤就是交换前后缓冲,这个例子只是简单说明如何用顶点来绘制几何图形所有代码如下:Dim g_DX As New DirectX8Dim g_D3D As Direct3D8Dim g_D3DDevice As Direct3DDevice8Dim g_VB As Direct3DVertexBuffer8Private Type CUSTOMVERTEXx As Singley As Singlez As Singlerhw As Singlecolor As LongEnd TypeConst D3DFVF_CUSTOMVERTEX = (D3DFVF_XYZRHW Or D3DFVF_DIFFUSE)Private Sub Form_Load()Dim b As BooleanMe.ShowDoEventsb = InitD3D(Picture1.hWnd)If Not b ThenMsgBox "Unable to CreateDevice (see InitD3D() source for comments)"EndEnd Ifb = InitVB()If Not b ThenMsgBox "Unable to Create VertexBuffer"EndEnd IfTimer1.Enabled = TrueEnd SubPrivate Sub Timer1_Timer()RenderEnd SubPrivate Sub Form_Unload(Cancel As Integer)CleanupEndEnd SubFunction InitD3D(hWnd As Long) As BooleanSet g_D3D = g_DX.Direct3DCreate()If g_D3D Is Nothing Then Exit FunctionDim mode As D3DDISPLAYMODEg_D3D.GetAdapterDisplayMode D3DADAPTER_DEFAULT, modeDim d3dpp As D3DPRESENT_PARAMETERSd3dpp.Windowed = 1d3dpp.SwapEffect = D3DSWAPEFFECT_COPY_VSYNCd3dpp.BackBufferFormat = mode.FormatSet g_D3DDevice = g_D3D.CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd D3DCREATE_SOFTWARE_VERTEXPROCESSING, d3dpp)If g_D3DDevice Is Nothing Then Exit FunctionInitD3D = TrueEnd FunctionFunction InitVB() As BooleanDim Vertices(3) As CUSTOMVERTEXDim VertexSizeInBytes As LongVertexSizeInBytes = Len(Vertices(0))With Vertices(0): .x = 150: .y = 50: .z = 0.5: .rhw = 1: .color = &HFFFF0000: End WithWith Vertices(1): .x = 250: .y = 250: .z = 0.5: .rhw = 1: .color = &HFF00FF00: End WithWith Vertices(2): .x = 50: .y = 250: .z = 0.5: .rhw = 1: .color = &HFF00FFFF: End WithSet g_VB = g_D3DDevice.CreateVertexBuffer(VertexSizeInBytes * 3, 0, D3DFVF_CUSTOMVERTE D3DPOOL_DEFAULT)If g_VB Is Nothing Then Exit FunctionD3DVertexBuffer8SetData g_VB, 0, VertexSizeInBytes * 3, 0, Vertices(0)InitVB = TrueEnd FunctionSub Cleanup()Set g_VB = NothingSet g_D3DDevice = NothingSet g_D3D = NothingEnd SubSub Render()Dim v As CUSTOMVERTEXDim sizeOfVertex As LongIf g_D3DDevice Is Nothing Then Exit Subg_D3DDevice.Clear 0, ByVal 0, D3DCLEAR_TARGET, &HFF&, 1#, 0g_D3DDevice.BeginScenesizeOfVertex = Len(v)g_D3DDevice.SetStreamSource 0, g_VB, sizeOfVertexg_D3DDevice.SetVertexShader D3DFVF_CUSTOMVERTEXg_D3DDevice.DrawPrimitive D3DPT_TRIANGLELIST, 0, 1g_D3DDevice.EndSceneg_D3DDevice.Present ByVal 0, ByVal 0, 0, ByVal 0End Sub总结:首先你要定义CUSTOMVERTEX结构和FVF象大多数D3D程序一样要初始化3D设备(教程1内容)再设定3个CUSTOMVERTEX类型的顶点建立顶点缓冲区是必须的,并为其填充要包含的数据清除场景,把顶点缓冲区绑定在流上,是渲染的开始接着创建顶点遮盖,把顶点在顶点缓冲区里进行渲染后面就是交换前后缓冲,把渲染结果呈现出来结束所有D3D设备使用矩阵本教程介绍了如何使用矩阵,我们在顶点的例子里,渲染了一个2D的三角形,而本例子将把它转化3D第一步:定义世界变化矩阵介绍在3-D空间里矩阵的世界矩阵如何转化,度量,和旋转几何图形首先使用D3DXMatrixRotationY方法把三角形围绕Y轴旋转接下来就是用SetTransform来设置当前的D3D设备的转变第二步:定义视图变化矩阵视图矩阵定义了视图的位置和转动,相当于一个场景摄象机.首先使用D3DXMatrixLookAtLH方法第三步:定义投影变化矩阵投影矩阵定义了几何图形被从2D转化为3D首先使用D3DXMatrixPerspectiveFovLH方法,在观野创建一个左手透视投影矩阵(相当于人的视野)所有代码Option ExplicitDim g_DX As New DirectX8Dim g_D3D As Direct3D8Dim g_D3DDevice As Direct3DDevice8Dim g_VB As Direct3DVertexBuffer8Private Type CUSTOMVERTEXx As Singley As Singlez As Singlecolor As LongEnd TypeConst D3DFVF_CUSTOMVERTEX=(D3DFVF_XYZ Or D3DFVF_DIFFUSE) Const g_pi = 3.1415Private Sub Form_Load()'省略End SubPrivate Sub Timer1_Timer()RenderEnd SubPrivate Sub Form_Unload(Cancel As Integer)EndEnd SubFunction InitD3D(hWnd As Long) As Boolean'省略End FunctionSub SetupMatrices()Dim matWorld As D3DMATRIXD3DXMatrixRotationY matWorld, Timer * 4g_D3DDevice.SetTransform D3DTS_WORLD, matWorldDim matView As D3DMATRIXD3DXMatrixLookAtLHmatView, vec3(0#, 3#, -5#), vec3(0#, 0#, 0#), vec3(0#, 1#, 0#)g_D3DDevice.SetTransform D3DTS_VIEW, matViewDim matProj As D3DMATRIXD3DXMatrixPerspectiveFovLH matProj, g_pi / 4, 1, 1, 1000g_D3DDevice.SetTransform D3DTS_PROJECTION, matProjEnd SubFunction Initvb() As Boolean'省略End FunctionSub Cleanup()'省略End SubSub Render()'省略End SubFunction vec3(x As Single, y As Single, z As Single) As D3DVECTOR vec3.x = xvec3.y = yvec3.z = zEnd Function。
第十三章:声音和音乐Introduction (序)这一章我们学习怎样用DX来播放声音和音乐。
我们将会使用DirectX Audio来播放WAV和MIDI文件,使用DirectShow来播放MP3文件。
此章我们仍然有一个简单的程序作例子,它会播放MP3的背景音乐,当用户用鼠标点击某个数字时它会播放一些音效。
DirectX Audio and DirectShow (DirectX Audio和DirectShow)我们已经学习过Direct3D和DirectInput了,现在,我要介绍另外两个DirectX组件:DirectX Audio和DirectShow。
我们用DirectX Audio来播放WAV和MIDI文件;用DirectShow来播放媒体流,例如AVI和MP3。
在此教程中,我们只学习一下用DirectShow播放MP3的方法。
Wav, Midi and Mp3 - When should I use what?(WAV,MIDI和MP3——什么时候该用什么?)那末,什么时候用什么格式好呢?嗯,这基本上取决于你的个人爱好。
下面是这些格式的简介,过后我会说一下我的选择:Wav files (WAV文件)WAV是一种未经压缩的数字音频,CD音质,但是体积非常庞大。
Midi files (MIDI文件)MIDI文件并没有保存音频记录,它实际上更像是一套演奏指令,所以,它的体积是非常小的。
MIDI的音质完全取决于演奏设备(如我们的声卡),它在高端的设备上能表现出色,而在低端设备上则表现较差。
Mp3 files (MP3文件)同WAV文件一样,MP3也是一种数字音频格式。
不同的是,MP3文件是经过压缩的,而且是有损压缩,这意味着它的体积将大大地减小,而音质上将会有一些失真(实际上接近CD 音质,基本听不出失真)。
而且,MP3是一种媒体流,这意味着在播放它的时候不会将它整个的读入,取而代之的是分期的做部分读入。
My preference (我的选择)你大概会选择MP3或MIDI来作背景音乐,特别是当你希望用户能从网上下载你的程序时。
MP3和MIDI格式文件的体积都比较小,它们适合做长时间的背景音乐播放。
而当需要播放简短的声效时,例如爆炸声等,我更趋向于使用WAV文件,品质能稍好一些。
如果文件的体积不是问题的话,实际上我们可以使用WAV文件来播放所有的声音和音乐。
Include and Library files (头文件与库文件)我们的项目需要增加以下的头文件和库文件:dmusici.hdsound.hdshow.hdsound.libstrmiids.libSetting up DirectX Audio (设置DirectX Audio)要使用Direct Audio我们需要创建两个对象:演奏对象(Performance Object,有些资料翻译为执行对象)和加载器(Loader)。
演奏对象是Direct Audio中的最高级对象,用于处理从源到合成器的数据流。
加载器用于把文件(WAV或MIDI)加载到声音段以待播放。
这两个对象在整个应用程序中我们每样只需要一个,所以,我们已经把它们创建为CGame的成员变量了。
下面是它们的定义:IDirectMusicPerformance8* m_pDirectAudioPerformance;IDirectMusicLoader8* m_pDirectAudioLoader;由于Direct Audio是一个纯COM,所以我们需要初始化COM。
其实很简单,我们只需要在CGame的构造函数中调用CoInitialize函数即可:CoInitialize(NULL);初始化COM后,我们就可以创建上述的那两个DirectX Audio对象了。
为此,我们给CGame 做了一个新的函数InitialiseDirectAudio,它将会在Initialise函数中被调用。
代码如下:bool CGame::InitialiseDirectAudio(HWND hWnd){LogInfo("<br>Initialise DirectAudio:");//Create the DirectAudio performance objectif(CoCreateInstance(CLSID_DirectMusicPerformance, NULL, CLSCTX_INPROC,IID_IDirectMusicPerformance8,(void**) &m_pDirectAudioPerformance) != S_OK) {LogError("<li>Failed to create the DirectAudio perfomance object.");return false;}else{LogInfo("<li>DirectAudio perfomance object created OK.");}//Create the DirectAudio loader objectif(CoCreateInstance(CLSID_DirectMusicLoader, NULL, CLSCTX_INPROC,IID_IDirectMusicLoader8,(void**) &m_pDirectAudioLoader) != S_OK){LogError("<li>Failed to create the DirectAudio loader object.");return false;}else{LogInfo("<li>DirectAudio loader object created OK.");}//Initialise the performance objectif(FAILED(m_pDirectAudioPerformance->InitAudio(NULL, NULL, hWnd,DMUS_APATH_SHARED_STEREOPLUSREVERB,64, DMUS_AUDIOF_ALL, NULL))) {LogError("<li>Failed to initialise the DirectAudio perfomance object.");return false;}else{LogInfo("<li>Initialised the DirectAudio perfomance object OK.");}//Get the our applications "sounds" directory.CHAR strSoundPath[MAX_PATH];GetCurrentDirectory(MAX_PATH, strSoundPath);strcat(strSoundPath, "\\Sounds");//Convert the path to unicode.WCHAR wstrSoundPath[MAX_PATH];MultiByteToWideChar(CP_ACP, 0, strSoundPath, -1, wstrSoundPath, MAX_PATH);//Set the search directory.if(FAILED(m_pDirectAudioLoader->SetSearchDirectory(GUID_DirectMusicAllTypes,wstrSoundPath, FALSE))) {LogError("<li>Failed to set the search directory '%s'.", strSoundPath);return false;}else{LogInfo("<li>Search directory '%s' set OK.", strSoundPath);}return true;}我们用CoCreateInstance函数创建了演奏对象和加载器,然后调用了InitAudio模块来初始化演奏对象。
上面代码中给InitAudio的参数是很典型的,所以你可以沿用它(查看一下SDK 中的关于InitAudio函数以及它的参数的内容以获得更多的了解)。
最后,我们设置了搜索目录。
搜索目录应该被设置为存放声音文件的目录,以便加载器可以正确的加载声音文件。
在本例中,搜索目录被设置为“Sounds”文件夹,它应该在本例的项目文件夹当中。
A new class - CSound (一个新的类——CSound)我们已经为使用DirectX Audio作了必要的准备工作,现在,我们就可以加载、播放声音和音乐了。
为此,我们做了一个新的类CSound,下面是它的代码,稍后我会解释它是怎样工作的:CSound::CSound(){m_pDirectAudioPerformance = NULL;m_pDirectAudioLoader = NULL;m_pSegment = NULL;m_pGraph = NULL;m_pMediaControl = NULL;m_pMediaPosition = NULL;m_enumFormat = Unknown;LogInfo("<li>Sound created OK");}void CSound::InitialiseForWavMidi(IDirectMusicPerformance8* pDirectAudioPerformance, IDirectMusicLoader8* pDirectAudioLoader){m_pDirectAudioPerformance = pDirectAudioPerformance;m_pDirectAudioLoader = pDirectAudioLoader;m_enumFormat = WavMidi;}void CSound::InitialiseForMP3(){CoCreateInstance(CLSID_FilterGraph, NULL,CLSCTX_INPROC, IID_IGraphBuilder, (void**)&m_pGraph);m_pGraph->QueryInterface(IID_IMediaControl, (void**)&m_pMediaControl);m_pGraph->QueryInterface(IID_IMediaPosition, (void**)&m_pMediaPosition);m_enumFormat = MP3;}CSound::~CSound(){Stop();SafeRelease(m_pSegment);SafeRelease(m_pGraph);SafeRelease(m_pMediaControl);SafeRelease(m_pMediaPosition);LogInfo("<li>Sound destroyed OK");}bool CSound::LoadSound(const char* szSoundFileName){WCHAR wstrSoundPath[MAX_PATH];CHAR strSoundPath[MAX_PATH];switch(m_enumFormat){case MP3://Get the our applications "sounds" directory.GetCurrentDirectory(MAX_PATH, strSoundPath);strcat(strSoundPath, "\\Sounds\\");strcat(strSoundPath, szSoundFileName);//Convert the path to unicode.MultiByteToWideChar(CP_ACP, 0, strSoundPath, -1,wstrSoundPath, MAX_PATH);m_pGraph->RenderFile(wstrSoundPath, NULL);break;case WavMidi://Convert the filename to unicode.MultiByteToWideChar(CP_ACP, 0, szSoundFileName, -1,wstrSoundPath, MAX_PATH);//Load a soundm_pDirectAudioLoader->LoadObjectFromFile(CLSID_DirectMusicSegment,IID_IDirectMusicSegment8,wstrSoundPath,(void**) &m_pSegment);m_pSegment->Download(m_pDirectAudioPerformance);break;default:return false;}return true;}bool CSound::Play(DWORD dwNumOfRepeats){switch(m_enumFormat){case MP3://Make sure that we are at the start of the streamm_pMediaPosition->put_CurrentPosition(0);//Play mp3m_pMediaControl->Run();break;case WavMidi://Set the number of times the sound repeatsm_pSegment->SetRepeats(dwNumOfRepeats); //To loop the sound forever, pass//inDMUS_SEG_REPEAT_INFINITE//Play the loaded soundm_pDirectAudioPerformance->PlaySegmentEx(m_pSegment, NULL, NULL, 0, 0,NULL, NULL, NULL);break;default:return false;}return true;}bool CSound::Stop(){switch(m_enumFormat){case MP3:m_pMediaControl->Stop();break;case WavMidi://Stop the loaded soundm_pDirectAudioPerformance->StopEx(m_pSegment, 0, 0);break;default:return false;}return true;}bool CSound::IsPlaying(){switch(m_enumFormat){case MP3:REFTIME refPosition;REFTIME refDuration;m_pMediaPosition->get_CurrentPosition(&refPosition);m_pMediaPosition->get_Duration(&refDuration);if(refPosition < refDuration){return true;}else{return false;}break;case WavMidi:if(m_pDirectAudioPerformance->IsPlaying(m_pSegment, NULL) == S_OK){return true;}else{return false;}break;default:return false;}}那末,怎样用CSound来播放音乐呢?这很简单。