Date

Windows Mobile 上の Windows Media Player のモジュールを使って MP3 を再生する。

プロジェクトの設定

wmp.h を stdafx.h でインクルードする。WindowsMediaPlayer SDK や Platform Builder から入手できる。

1
#include"wmp.h"

音量の取得・設定

waveOut 系 API を使って音量の取得、設定ができる。

1
2
3
DWORD volume;
waveOutGetVolume(0,&volume);
waveOutSetVolume(0,0xffffffff);

Windows Media Player の制御

CoCreateInstance でインスタンスを作成する。__uuidofは、インターフェイスやクラスに割り当てられている UUID を取得する。

1
2
3
HRESULT hr=CoCreateInstance(__uuidof(WindowsMediaPlayer), NULL,
    CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER,
    __uuidof(IWMPPlayer), (void **)&pControl);

(Optional) 再生を自動的にループするために、 loop プロパティを TRUE に設定する。

1
2
3
CComPtr<IWMPSettings> pSettings; // (スマートポインタ)
hr=pControl.QueryInterface(pSettings);
hr=pSettings->setMode(_bstr_t(L"loop"), VARIANT_TRUE);

put_URLを使って、再生したいファイル名を指定する。その後、IWMPControls::play で再生する。

1
2
3
4
CComPtr<IWMPControls> pCtrl;
hr=pControl.QueryInterface(pCtrl);
hr=pControl->put_URL(_bstr_t(L"\\CNN News Update (2-27-2008 6 PM EST).mp3"));
hr=pCtrl->play();

停止するには IWMPControls::stop を呼ぶ。

1
hr=pCtrl->stop();

Comments

comments powered by Disqus