我正在IM正在做的一个项目中尝试播放一些mp3文件作为背景音乐。我尝试使用mcisendstring播放它,但它无法正常工作:(
这些是我所做的:
CMP3_MCI myMp3;
std::string address= "C:\\Users\\music embed testing\\test.mp3";
myMp3.Load(address);
myMp3.Play();
//加载函数
void Load(string szFileName)
{
m_szFileName = szFileName;
Load2();
}
// load2函数
void Load2()
{
std::string szCommand = "open \"" + GetFileName() + "\" type mpegvideo alias " + GetFileName();
mciSendString(szCommand.c_str(), NULL, 0, 0);
}
//播放功能
void Play()
{
std::string szCommand = "play " + GetFileName() + " from 0";
mciSendString(szCommand.c_str(), NULL, 0, 0);
}
// getFileName基本上返回存储为私有(private)属性的m_szFileName
最佳答案
经过反复尝试,我终于找到了使之工作的方法。对于那些面临与我相同的问题的人,这里有:
//if you are using unicode
LPCWSTR a = L"open cannon.mp3 type mpegvideo";
int error = 99;
error = mciSendString(a, NULL,0,0);
int error2;
LPCWSTR b = L"play cannon.mp3";
error2 = mciSendString(b, NULL, 0, 0);
//cannon.mp3 is stored in my resource file
//error is just for debugging
//if you are using multibyte
LPCSTR a = "open cannon.mp3 type mpegvideo";
mciSendString(a, NULL, 0,0);
LPCSTR b = "play cannon.mp3 repeat";
int error2 = mciSendString(b, NULL, 0, 0);