65.9K
CodeProject 正在变化。 阅读更多。
Home

一个非常简单的 MP3 播放器

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.62/5 (51投票s)

2001年6月14日

viewsIcon

628779

downloadIcon

10674

一个简单的 MP3/AVI 播放器,使用 VFW32 库

引言

我制作了一个小示例程序,它使您能够在无需 AUDIOX 库的情况下播放 MP3 文件。我使用了 Windows 库 VFW32.Lib

只需将 VFW32.lib 放在链接器的空间中(Alt +F7),并添加

#include "vfw.h"

到您的主文件中。

完成此操作后,您只需要使用 MCI 命令

步骤

  • 创建一个私有变量 HWND m_Video 和 BOOL Pause;

  • 在 OnInitDialog 中设置 m_Video = NULL;

  • 放置几乎所有的“播放”按钮,并在此处添加源代码

以下是我在对话框类中用于播放/暂停/恢复和停止视频播放的函数。

m_Play 是“播放”按钮控件,m_Pause 是暂停/恢复按钮,Pause 是一个布尔值,而 m_Video 是一个 HWND

void CAVIPlayerDlg::OnPlay() 
{
	m_Video = NULL;
	
	if(m_Video == NULL)
	{
		m_Video = MCIWndCreate(this->GetSafeHwnd(),
			AfxGetInstanceHandle(),
			WS_CHILD | WS_VISIBLE|MCIWNDF_NOMENU,m_Path);
		
	}
	else
	{
		MCIWndHome(m_Video);
	}
	
	MCIWndPlay(m_Video);
	Pause = FALSE;
	m_Play.EnableWindow(FALSE);
	
}

void CAVIPlayerDlg::OnPause() 
{
	if(Pause)
	{
		m_Pause.SetWindowText("Pause");
		MCIWndResume(m_Video);
		Pause = FALSE;
	}
	else
	{
		m_Pause.SetWindowText("Resume");
		MCIWndPause(m_Video);
		Pause = TRUE;
	}
}

void CAVIPlayerDlg::OnCancel() 
{
	if(m_Video !=NULL)
	{
		MCIWndDestroy(m_Video);
		OnOK();
	}
	CDialog::OnCancel();
}

void CAVIPlayerDlg::OnStop() 
{
	// TODO: Add your control notification handler code here
	MCIWndStop(m_Video);
	if(m_Video !=NULL)
	{
		MCIWndDestroy(m_Video);
	}
	m_Play.EnableWindow(TRUE);
}

我建议您参考网络上的 MCI 参考:http://msdn.microsoft.com/library/psdk/multimed/mciwnd_3stv.htm

我还在这个程序中包含了一个 AVI 播放器。:-)

这就是全部!

© . All rights reserved.