Windows Media Playerコントロールで動画を再生する

test76.gif
Windowsに標準で備わるWindows Media Playerを利用すればMPEGやAVIなどの動画ファイルを簡単に再生できる。


ここではWTLアプリケーションウイザードでダイアログベースのプロジェクトを作成し、MainDlg.hにコードを追加した。実行すると「c:\test.avi」を再生する。

■MainDlg.hの最初に追加
#include "wmp.h"

■MainDlg.hのCMainDlgのメンバ変数として追加
    CAxWindow			_wndAxWindow;
    CComPtr<IWMPPlayer>	_pIWMPPlayer;
■MainDlg.hのOnInitDialog()内に追加
		/////////////////////////////
		//Windows Media Playerコントロールの生成と表示
		//
		bool	ret;
		RECT	rcClient;
		HRESULT	hr;
		CComPtr<IAxWinHostWindow>	pIAxWinHostWindow;

		GetClientRect(&rcClient);
		rcClient.right -= 100;

		ret = false;
		_wndAxWindow.Create(m_hWnd,rcClient,NULL,WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN,WS_EX_CLIENTEDGE);
		if(_wndAxWindow.IsWindow())
			ret = true;

		if(ret)
			_wndAxWindow.QueryHost(&pIAxWinHostWindow);

		if(pIAxWinHostWindow)
			hr = pIAxWinHostWindow->CreateControl(CComBSTR(L"{6BF52A52-394A-11d3-B153-00C04F79FAA6}"),_wndAxWindow,0);
		else
			hr = E_FAIL;

		if(SUCCEEDED(hr))
			hr = _wndAxWindow.QueryControl(&_pIWMPPlayer);

		if(FAILED(hr) || _pIWMPPlayer == NULL)
			ret = false;


		/////////////////////////////
		//動画ファイルの読み込みと再生開始
		//

		if(_pIWMPPlayer)
		{
			CComPtr<IWMPControls> pIWMPControls;

			_pIWMPPlayer->close();
			_pIWMPPlayer->QueryInterface(&pIWMPControls);
			if(pIWMPControls)
			{
				pIWMPControls->stop();
				_pIWMPPlayer->put_URL(CComBSTR(L"c:\\test.avi"));
				pIWMPControls->play();
			}
		}

プロジェクトファイルをダウンロード


カテゴリー「動画処理」 のエントリー