资源简介
实现了播放器的绝大多数功能,例如:添加歌曲,保存列表,删除歌曲,删除重复,歌曲根据不同的关键字排序,播放模式的选择,调节音量,进度,显示歌曲进度时间和剩余时间,保存上次播放配置...。
代码片段和文件信息
// MusicList.cpp : implementation file
//
#include “stdafx.h“
#include “MusicPalyer.h“
#include “MusicList.h“
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMusicList
CMusicList::CMusicList()
{
}
CMusicList::~CMusicList()
{
//m_StringArray.RemoveAll();
m_vecArray.clear();
}
BEGIN_MESSAGE_MAP(CMusicList CListBox)
//{{AFX_MSG_MAP(CMusicList)
ON_WM_RBUTTONDOWN()
//}}AFX_MSG_MAP
ON_COMMAND(IDM_OpenCurrentPath OnMenuOpenCurrentPath)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMusicList message handlers
//将歌曲添加到列表
void CMusicList::AddToList(CString strFilePath int nTimes std::string time = “ “)
{
MusicInfo mTmp(strFilePath nTimes time);
m_vecArray.push_back(mTmp);
CString strFileName = GetName(strFilePath);
AddString(Formattitle(strFileName));
}
//得到歌曲名
CString CMusicList::GetName(CString strFilePath)
{
CString str;
int nPos=-1;
int nOldPos=-1;
while((nPos=strFilePath.Find(“\\“nPos+1))>0)
nOldPos=nPos;
str=strFilePath.Right(strFilePath.GetLength()-nOldPos-1);
strFilePath=str.Left(str.GetLength()-4);
return strFilePath;
}
//格式化歌曲名
CString CMusicList::Formattitle(CString strFileName)
{
CString strTmp;
int size = m_vecArray.size();
if (size >= 1 && size <= 9)
strTmp.Format(“0%d “ size);
else if (size >= 10 && size <= 99)
strTmp.Format(“%d “ size);
else
strTmp.Format(“%d “ size);
return strTmp + strFileName;
}
//要播放的路径
CString CMusicList::GetMusicName(int iIndex)
{
if (iIndex < 0)
iIndex = 0;
return m_vecArray.at(iIndex).strMusic;
}
//获得歌曲数量
int CMusicList::GetCount()
{
return m_vecArray.size();
}
//上一曲、下一曲是否能用(多余了)
BOOL CMusicList::IsEnable()
{
return m_vecArray.size() > 1 ? TRUE :FALSE;
}
//初始化歌曲列表
void CMusicList::InitFile()
{
m_strExePath = GetWorkPath();
CString m_strLstPath;
m_strLstPath = m_strExePath + “\\000.lst“;
std::ifstream ifile(m_strLstPath);
if (!ifile)
return ;
std::string strTmp;
CString strTmpFilePath;
int nTimes;
std::string time;
int select = 0;
while (std::getline(ifile strTmp))
{
switch (select)
{
case 0:
strTmpFilePath.Format(“%s“ strTmp.c_str());
select = 1;
break;
case 1:
nTimes = atoi(strTmp.c_str());
select = 2;
break;
case 2:
time = strTmp;
select = 0;
break;
}
if (select == 0)
AddToList(strTmpFilePath nTimes time);
}
ifile.close();
}
//将歌曲路径添加到文件
void CMusicList::AddToFile(CString str int nTimes = 0)
{
SYSTEMTIME st;
GetLocalTime(&st);
CString strDate strTime;
strDate.Format(“%4d-%2d-%2d“ st.wYear st.wMonth st.wDay);
strTime.Format(“ %2d-%2d-%2d“ st.wHour st.wMinute st.wSecond);
strTime = strDate + strTime;
std::string time;
time = (LPCTSTR)strTime;
m_vecAr
- 上一篇:人脸跟踪基于opencv
- 下一篇:c++ 计算m点问题
相关资源
- MFC透明Edit
- MFC截图程序 完整版
- MFC电梯程序
- MFC下的数据字典字典管理系统
- AES加解密算法实现MFC
- 完整扫雷源代码(C++MFC)
- VC++串口通信20个经典源码
- 数据结构课程设计,最小生成树,采
- MFC,3D动画小车
- C++MFC实训_计算器_附实训报告
- MFC+Opencv 摄像头保存为图像和视频
- C++ MFC编写的计算器含各种进制转化、
- mfc制作简单的中国地图
- 停车场管理系统(vc MFC实现)
- 求图中任意两点的最短路径和全部路
- 数字图像处理MFC编程之灰度图像线性
- MFC二叉树遍历的可视化
- C++ MFC 编写的聊天室软件源码
- 基于MFC的Basler相机SDK采集
- MFC黑马程序员教程.rar
- mfc通讯录.zip
- zw_VS2013MFC编程基础19个专题.zip
- MFC绘制Bezier,B样条,NURBS曲线曲面以
- MFC类库详解中文CHM版
- C++编写五子棋带AI,mfc,附教程
- 基于Skinsharp的MFC界面美化(破解版含
- MFC皮肤库附带使用教程
- 课程设计 停车场管理系统 MFC
- Microsoft Win32 程序员参考大全5.pdf(6个
- acr122udrivermfcuk.zip
评论
共有 条评论