首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

mp3播放器线程之间使用有关问题?

2013-02-19 
mp3播放器线程之间使用问题???//全局变量HWND hMCI NULLint slen 0int spos 0//工具栏单击消息启

mp3播放器线程之间使用问题???


//全局变量
HWND hMCI = NULL;
int slen = 0;
int spos = 0;
//工具栏单击消息启动的一个线程。
void CMainFrame::OnManageUser()
{
 if(!ShowObj.ShowWindow(SW_SHOW))
 {
pThread = AfxBeginThread((AFX_THREADPROC)MyThreadProc,GetSafeHwnd()); 
 }
}

UINT WINAPI MyThreadProc(LPVOID pParam)//线程函数启动mp3,倘若,下面这段添加到MainFrame类的OnCreate()函数里,定时器 spos = MCIWndGetPosition(hMCI2);可以判断出值的。
感觉与线程同步没关系,是Mp3类的函数不能跨线程使用吗???调试hMCI2句柄的值都是一样的。

hMCI = MCIWndCreate(NULL,NULL,WS_POPUP|MCIWNDF_NOPLAYBAR|MCIWNDF_NOMENU,NULL);
MCIWndOpen(hMCI,"res//back.mp3",0);
hMCI2 = hMCI;
slen = MCIWndGetLength(hMCI);
if(hMCI)
MCIWndPlay(hMCI);
}

void CMainFrame::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
     spos = MCIWndGetPosition(hMCI2);
     if(spos>=slen)
          MCIWndPlay(hMCI2);
     CFrameWnd::OnTimer(nIDEvent);
}

[解决办法]
LONG MCIWndClose(
   hwnd
);

[解决办法]
mciSendString

这里面可以指定播放命令

热点排行