在MFC下MCI的简单调用,封装成类
来源:互联网 发布:端口号是干嘛的 编辑:程序博客网 时间:2024/06/04 23:26
/*********************************************** * MCI.h * ***********************************************/#pragma once#include "mmsystem.h"class CMCI{private:MCIDEVICEID nDeviceID;public:CMCI(void);~CMCI(void);BOOL Open(CString strSongPath);BOOL Play();BOOL Pause();BOOL Stop();BOOL Close();BOOL GetCurrentPos(DWORD &pos);BOOL SetVolume(int nVolumeValue);};
/****************************************** * MCI.cpp * ******************************************/#include "StdAfx.h"#include "MCI.h"#include "Digitalv.h"#pragma comment(lib,"winmm.lib")CMCI::CMCI(void){nDeviceID = -1;}CMCI::~CMCI(void){}//打开文件//成功返回非零值,失败返回0BOOL CMCI::Open(CString strSongPath){MCI_OPEN_PARMS mciOP;mciOP.lpstrDeviceType = NULL;mciOP.lpstrElementName = strSongPath;DWORD dwReturn = mciSendCommand(NULL, MCI_OPEN, MCI_OPEN_ELEMENT | MCI_WAIT | MCI_OPEN_SHAREABLE, (DWORD)(LPVOID)&mciOP);if(dwReturn == 0){nDeviceID = mciOP.wDeviceID;return TRUE;}else{nDeviceID = -1;return FALSE;}}//播放//成功返回非零值,失败返回0BOOL CMCI::Play(){MCI_PLAY_PARMS mciPP;DWORD dwReturn = mciSendCommand(nDeviceID, MCI_PLAY, MCI_NOTIFY, (DWORD)(LPVOID)&mciPP);if(dwReturn == 0)return TRUE;elsereturn FALSE;}//暂停播放//成功返回非零值,失败返回0BOOL CMCI::Pause(){MCI_GENERIC_PARMS mciGP;DWORD dwReturn = mciSendCommand(nDeviceID, MCI_PAUSE, MCI_NOTIFY | MCI_WAIT, (DWORD)(LPVOID)&mciGP);if(dwReturn == 0)return TRUE;elsereturn FALSE;}//停止播放并使进度返回到开头//成功返回非零值,失败返回0BOOL CMCI::Stop(){MCI_SEEK_PARMS mciSP;DWORD dwReturn = mciSendCommand(nDeviceID, MCI_SEEK, MCI_WAIT | MCI_NOTIFY | MCI_SEEK_TO_START, (DWORD)(LPVOID)&mciSP);if(dwReturn == 0)return TRUE;elsereturn FALSE;}//关闭MCI设备//成功返回非零值,失败返回0BOOL CMCI::Close(){MCI_GENERIC_PARMS mciGP;DWORD dwReturn = mciSendCommand(nDeviceID, MCI_CLOSE, MCI_NOTIFY | MCI_WAIT, (DWORD)(LPVOID)&mciGP);if(dwReturn == 0)return TRUE;elsereturn FALSE;}//获得当前播放进度,pos以ms为单位//成功返回非零值,失败返回0BOOL CMCI::GetCurrentPos(DWORD &pos){MCI_STATUS_PARMS mciSP;mciSP.dwItem = MCI_STATUS_POSITION;DWORD dwReturn = mciSendCommand(nDeviceID, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciSP);if (dwReturn == 0){pos = mciSP.dwReturn;return TRUE;}else{pos = 0;return FALSE;}}//音量设定,音量值范围在0到1000//成功返回非零值,失败返回0BOOL CMCI::SetVolume(int nVolumeValue){if(nVolumeValue > 1000){nVolumeValue = 1000;}else if(nVolumeValue < 0){nVolumeValue = 0;}MCI_DGV_SETAUDIO_PARMS mciDSP;mciDSP.dwItem = MCI_DGV_SETAUDIO_VOLUME;mciDSP.dwValue = nVolumeValue;DWORD dwReturn = mciSendCommand(nDeviceID, MCI_SETAUDIO, MCI_DGV_SETAUDIO_VALUE | MCI_DGV_SETAUDIO_ITEM, (DWORD)(LPVOID)&mciDSP);if(dwReturn == 0)return TRUE;elsereturn FALSE;}
- 在MFC下MCI的简单调用,封装成类
- 封装mciSendCommand的简单MCI类
- MFC-添加背景音乐(2)-封装了mciSendCommand的简单MCI类
- MFC-添加背景音乐(2)-封装了mciSendCommand的简单MCI类 .
- MFC下MCI的使用播放音乐
- 在OpenNI下Kinect的调用封装成类
- VC 自己封装简单的播放音频MCI类库
- 如何在dos下调用mfc的类?
- 多媒体MCI的简单编程
- 一个在MFC下使用的简单等待对话框类
- 系统调用的简单封装类实现
- MFC入门-MCI简单音乐播放器实现
- [已封装] DIV拖动类 支持在FF下拖动,调用简单 主要代码都有注释 适合初学者学习
- 最简单的方法实现MIDI音乐循环播放 (不用在MCI回调中处理)
- 控制台程序在C#下调用;关于MFC的初始化
- 在MFC下调用外部程序 ShellExecuteEx的使用
- 在MFC下调用WPF控件的总结
- 在Spring2下针对struts1.x框架的简单封装
- Project Euler Problem 50
- 使用接口要注意地方
- 如何在Windows上下载Android源代码
- openfire3.6.4外连数据库(mysql)
- Java 终止线程的方法
- 在MFC下MCI的简单调用,封装成类
- 关于指针和形参结合的一个程序的分析
- FTP 文件上传整理
- ASP.NET 路由重写——伪静态
- 汉诺塔问题的递归算法
- 控制连接数量和密码保护-flashcom教程 密码保护
- Service完全解析
- 最优比率生成树
- 回声和那西塞斯