菜单样式 | ID | Caption | Pop-up |
| 操作 | √ | |
ID_OPER_OPEN | 打开文件… | ||
ID_OPER_PLAY | 播放 | ||
ID_OPER_PAUSE | 暂停/继续 | ||
ID_OPER_STOP | 停止 |
分别实现菜单中的功能,用MFCClasswizard添加到视图类里:
01.
void
CMyPlayMediaView::OnOperOpen()
02.
03.
{
04.
05.
// 只允许打开多媒体文件
06.
07.
static
char
BASED_CODE szFilter[] =
08.
09.
"视频文件 (*.avi;*.mpg;*.mpeg)|*.avi;*.mpg;*.mpeg|"
\
10.
11.
"音频文件 (*.wav;*.mp3)|*.wav;*.mp3|"
;
12.
13.
CFileDialog fileDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, szFilter);
14.
15.
if
(fileDlg.DoModal() == IDOK)
16.
m_strFile = fileDlg.GetPathName();
// 获得文件名
17.
18.
}
19.
20.
21.
void
CMyPlayMediaView::OnOperPause()
22.
23.
{
24.
25.
// 判断是否处于暂停状态
26.
27.
if
(m_bPaused)
28.
29.
{
30.
31.
m_bPaused = FALSE;
32.
33.
m_pPlayer->GetControls().play();
34.
35.
}
36.
37.
else
38.
39.
{
40.
41.
m_bPaused = TRUE;
42.
43.
m_pPlayer->GetControls().pause();
44.
45.
}
46.
47.
}
48.
49.
50.
void
CMyPlayMediaView::OnOperPlay()
51.
52.
{
53.
54.
m_bPaused = FALSE;
55.
56.
m_pPlayer->GetControls().stop();
57.
58.
m_pPlayer->GetSettings().SetAutoStart(TRUE);
59.
60.
m_pPlayer->SetUrl(m_strFile);
61.
62.
}
63.
64.
65.
void
CMyPlayMediaView::OnOperStop()
66.
67.
{
68.
69.
m_bPaused = FALSE;
70.
71.
m_pPlayer->GetControls().stop();
72.
73.
}
此时运行程序,播放器始终以所播放内容的默认尺寸来播放,可以调整播放器使用窗口尺寸来播放。为视图添加WM_SIZE消息响应
1.
void
CMyPlayMediaView::OnSize(
UINT
nType,
int
cx,
int
cy)
2.
{
3.
CView::OnSize(nType, cx, cy);
4.
CRect rect;
5.
GetClientRect(rect);
6.
m_pPlayer->MoveWindow(rect);
7.
}
到这里就完成了初始化界面
打开文件:
实例代码: http://codes.it165.net/html/201212/15.html