使用微软播放音频

使用微软播放音频

ID:34739728

大小:76.13 KB

页数:6页

时间:2019-03-10

使用微软播放音频_第1页
使用微软播放音频_第2页
使用微软播放音频_第3页
使用微软播放音频_第4页
使用微软播放音频_第5页
资源描述:

《使用微软播放音频》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、VC下音频文件的播放VC下音频文件的播放杨晨引子首先说明一点,我学得不好,感觉没能较好的完成党交给的重任,呵呵。我这几天一直没有看关于播放声音的东东。因为一方面感觉似乎单从我们要完成的五子,炸弹程序来看,我们现在已有的知识应该已经够用了。另一方面,在VC下播放音频是一项很大很杂的东西,我自己不想在这上面花费过多的时间。再有就是我这个文章(应该叫随笔,我想到哪写到哪,没有条理见谅)早写一天晚写一天对大家没有影响,毕竟这个东东相对于我们的程序是独立的。恩,由于我看的东西也挺杂的,手边也没有比较权威的资料,看了一些msdn上的东东,限于

2、英语水平有限,只是自己理解了一些,还不知对不对,所以很多东西我不能乱言,因为这样可能会对你有所误导。下面说的大多参照网上或有些书上一些强人的观点,当然也有很多我自己的语言,g你要看着些地方不爽可以不屑于顾。OK,开始了。VisualC++对多媒体的支持对于一般的应用程序来说,VisualC++可以说是包罗万象,然而令人遗憾的是,几乎没有听说过VisualC++对多媒体提供过什么支持,甚至有人说VisualC++不适合多媒体编程。若是我们完全使用VisualC++的类库而不想点花招的话,恐怕连最一个简单的RPG游戏都编不出来。对于一

3、个需要大量动画、声音的多媒体应用程序来说,VisualC++最多提供了一个外壳,而编制一个优秀的声音、动画引擎的任务,就落到了程序员的身上。上面的话不是我说的,我接着说一句:那么,如何开发这个引擎,这个重任有可能以后就落的你的头上了。需要你针对你的应用程序去组织类.大的不太好,小的应用程序应该完全凑合。Playingaudiofilewithvisualc++6VC下音频文件的播放Windows的多媒体服务功能Windows提供了丰富的多媒体服务功能,包括大量从低级到高级的多媒体API函数。利用这些功能强大的API,用户可以在不同

4、层次上编写多媒体应用程序.这里简要地介绍一些最常用的多媒体服务。1,高级音频函数.MessageBeep、PlaySound和sndPlaySound。这三个函数你应该熟悉,我不想在这说太多。因为我感觉很简单的,你查一下msdn就会了。要注意一下他们需要什么样的头文件,参数都是做什么用,还有限于什么样的文件格式。比如它们都不能播放大于100k的波形声音文件.写个例子你应该清晰一些:PlaySound("关机.wav",NULL,SND_ASYNC

5、SND_LOOP);//第一个参数是声音文件名,最后的那个SND_LOOP是循环播放

6、的意思。我感觉要实现同时播放两个音乐好似只用这几个函数是不可能实现的。不管你用不用线程控制,用了一次那么它就把那个设备的接口给占住了,用第二次要么把那个接口给抢走了第一次的不能用了,要么抢不走,苦苦等你不想用了再拾过来。2.MCI什么是MCI?MCI(MediaControlInterface)媒体控制接口是MircroSoft提供的一组多媒体设备和文件的标准接口,它的好处是可以方便地控制绝大多数多媒体设备包括音频、视频、影碟、录像等多媒体设备,而不需要知道它们的内部工作状况。但是古人云:成也萧何,败也萧何。MCI虽然看上去高大全

7、,但对于一些高级应用来说,它是远远不够的。上面的话也不是我说的,但低级中级应用是完全凑合的。MCI向Windows程序提供了在高层次上控制媒体设备接口的能力。程序不必关心具体设备,就可以对激光唱机(CD)、视盘机、波形音频设备、视频播放设备和MIDI设备等媒体设备进行控制。对于程序员来说,可以把MCI理解为设备面板上的一排按键,通过选择不同的按键(发送不同的MCI命令)可以让设备完成各种功能,而不必关心设备内部实现。比如,对于play,视盘机和CD机有不同的反应(一个是播放视频,一个播放音频),而对用户来说却只需要按同一按钮。Pl

8、ayingaudiofilewithvisualc++6VC下音频文件的播放MCI的使用方法应用程序通过向MCI发送命令来控制媒体设备。MCI命令接口分命令字符串和命令消息两种,两者具有相同的功能。命令字符串具有使用简单的特点,但是它的执行效率不如命令消息。(mciSendString,字符串消息。mciSendCommand,命令消息)1.先说mciSendString.表面上就是发送字符串的意思,就是要告诉某些设备,请你播放!,注意下面参数的第一个都是用双引号弄起来的,只是引号里写的有固定的格式罢了。先写个简单的例子,使你不至

9、于一头雾水。mciSendString("open老鼠爱大米.avitype设备1",…);mciSendString("play设备1repeat",…);上面这个例子是我胡乱写的,你应该一下子有些感觉到头上是蓝天了吧,大约看得懂什么意思吧,那r

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。