欢迎来到天天文库
浏览记录
ID:39474282
大小:36.00 KB
页数:7页
时间:2019-07-04
《基于MCI实现的音频播放器类(C++)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、下面两个文件分别是Player.h和Player.cpp里的内容,Player类实现了利用播放mp3,wav等主流格式的音频文件,提供了暂停、暂停恢复、播放、调节音量、调节播放位置等功能。放在word中格式有点乱,可以下载之后分别放在.h和.cpp中然后使用IDE打开。//Player.h:interfaceforthePlayerclass.////////////////////////////////////////////////////////////////////////#pragmaonce#include#i
2、nclude"Digitalv.h"#pragmacomment(lib,"winmm.lib")/*PLAYING:正在播放PAUSE:暂停STOP:停止HASERROR:有错误发生SETPOSRESUME:调用设置当前位置暂停*/enumSTATUS{PLAYING,PAUSE,STOP,HASERROR,SETPOSRESUME};classPlayer{public:Player();virtual~Player();public:STATUSGetStatus();//获取当前播放器状态CStringGetFilePath();//获取当前
3、播放文件路径voidSetFilePath(CStringfilepath,boolbPlayNow);//设置播放文件路径,bPlayNow为true表示设置位置后立即播放voidSetFilePath(CStringfilePath);//设置播放文件路径,设置完成后不播放intGetVolume();//获取当前音量voidSetVolume(intvolume);//设置当前音量voidPause();//暂停播放voidSetPos(intpos);//设置播放位置voidPlay();//开始播放voidStop();//停止播放,并关闭
4、设备voidResume();//从暂停中恢复播放intGetMscTime();//获取当前音乐文件时间长度,单位为毫秒(ms)intGetPos();//获取当前播放位置,单位为毫秒(ms)private:voidSetPos(intpos,boolbPlayNow);//设置播放位置,单位为毫秒(ms),bPlayNow为true表示设置位置后立即播放voidDoPlay();//播放voidOpenDevice();//打开设备private:STATUSm_nStatus;//记录当前播放器状态CStringm_strFilePath;//
5、当前播放文件的路径MCIDEVICEIDm_nElementID;//当前设备IDintm_nVolume;//音量};//Player.cpp:implementationofthePlayerclass.////////////////////////////////////////////////////////////////////////#include"stdafx.h"#include"Player.h"#include"Player1.h"///////////////////////////////////////////////
6、/////////////////////////Construction/Destruction//////////////////////////////////////////////////////////////////////Player::Player(){m_nStatus=STOP;m_nElementID=0;m_nVolume=0;m_strFilePath="";}Player::~Player(){if(this->m_nStatus!=STOP){this->Stop();}}CStringPlayer::GetFileP
7、ath(){if(this->m_nStatus==HASERROR)return"";returnthis->m_strFilePath;}voidPlayer::SetFilePath(CStringfilePath){if(this->m_nStatus==HASERROR)return;this->m_strFilePath=filePath;}STATUSPlayer::GetStatus(){returnthis->m_nStatus;}voidPlayer::SetVolume(intvolume){if(this->m_nStatus
8、==HASERROR)return;if(volume>1000)volume=1000;if(volume
此文档下载收益归作者所有