争怎路由网:是一个主要分享无线路由器安装设置经验的网站,汇总WiFi常见问题的解决方法。

VC++5.0下MIDI、WAV及CD的播放

时间:2024/7/11作者:未知来源:争怎路由网人气:

MCI_WAIT,
(DWORD)(LPVOID) &SaveParms);

第三部分 CD的播放
---- CD的独特优势在于,它由作曲家设计,并由音乐厂家生产。不同的计算机播放MIDI 文件时,声音效果也不一样,但是CD的声音效果总是相同的。高品质的音频对计算机用 户产生的效果会使你感到吃惊。 我们依然采用MCI播放CD,大部分的播放控制与前两部分相同,只列出不同的部分

---- 1. 开光驱门

mciSendCommand (m_wDeviceID, MCI_SET,
MCI_SET_DOOR_OPEN, NULL);

---- 2. 关光驱门

mciSendCommand (m_wDeviceID, MCI_SET,
MCI_SET_DOOR_CLOSED, NULL);

---- 3. 打开设备

将MIDI的MCI_DEVTYPE_SEQUENCER 改为MCI_DEVTYPE_CD_AUDIO

---- 4. 播放

---- 指定播放起点必须经过MCI_MAKE_TMSF(Track,Minute,Second,Frame)转化

---- 5. 查询当前信息

MCI_STATUS_CURRENT_TRACK   得到当前曲目
MCI_STATUS_LENGTH  得到CD或指定曲目长度
MCI_STATUS_MODE  得到驱动器的当前状态
MCI_STATUS_NUMBER_OF_TRACKS  得到CD曲目的数目
MCI_STATUS_POSITION   得到当前格式下的位置
MCI_STATUS_READY   检查设备是否就绪
MCI_STATUS_TIME_FORMAT  得到当前时间格式
MCI_STATUS_MEDIA_PRESENT  检查以确认CD是否在驱动器内
MCI_CDA_STATUS_TYPE_TRACK 检查已确认某曲目是否为音频曲目

---- 注意:

使用MCI_STATUS_LENGTH参数查询CD 及曲目长度,返回值通过调用MCI_MSF_MINUTE(),MCI_MSF_SECOND()转换为分、秒。

MCI_STATUS_POSITION参数返回值调用MCI_TMSF_TRACK(), MCI_TMSF_MINUTE(), MCI_TMSF_SECOND(),MCI_TMSF_FRAME才能得到当前的位置的道、分、秒、帧。
---- 6. 跳跃

---- 跳转的目标必须经过MCI_MAKE_TMSF(Track,Minute,Second,Frame)转化最好将上述三种格式分开建类,或做成动态连接库。在 Project-- >Setting-- >Link-- >Object/library modules中加入winmm.lib,源程序中包含。

---- MCI调用简单,功能强大,可以满足日常多媒体编程的基本需要。但是,MCI一次只能播放一个文件,使用DirectSound技术可以实现八个以上WAV文件的同时播放。

关键词:VC++5.0下MIDI、WAV及CD的播放




Copyright © 2012-2018 争怎路由网(http://www.zhengzen.com) .All Rights Reserved 网站地图 友情链接

免责声明:本站资源均来自互联网收集 如有侵犯到您利益的地方请及时联系管理删除,敬请见谅!

QQ:1006262270   邮箱:kfyvi376850063@126.com   手机版