This example shows how to handle WMV script commands during video playback.The script command is added to the file using the IltmmWMScript Interface.
1. |
Set and handle player notifications as follows: |
C Source
#define WM_PLAYERNOTIFY (WM_USER + 1000)
LRESULT CALLBACK MainWndProc(HWND hwnd, UINT message,
WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case
WM_CREATE:
IltmmPlay_SetNotifyWindow(g_player,
(long)hwnd, WM_PLAYERNOTIFY);
break;
case
WM_PLAYERNOTIFY:
switch(wParam)
{
case
ltmmPlay_Notify_MediaEvent:
{
ltmmMediaEvent*
event = (ltmmMediaEvent*) lParam;
switch(event->lEventCode)
{
case
ltmmEC_OLE_EVENT:
{
//
do something with WMScript commands;
BSTR
bstrCmd = (BSTR)event->lParam1;
BSTR
bstrCmdText = (BSTR)event->lParam2;
}
break;
}
}
}
break;
default:
return
DefWindowProc(hwnd, message, wParam, lParam);
}
return
0;
}
C++ Source
#define WM_PLAYERNOTIFY (WM_USER + 1000)
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
ON_WM_CREATE()
ON_MESSAGE(WM_PLAYERNOTIFY, OnPlayerNotify)
END_MESSAGE_MAP()
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
m_player->SetNotifyWindow((long)
m_hWnd, WM_PLAYERNOTIFY);
}
LRESULT CMainFrame::OnPlayerNotify(WPARAM wParam, LPARAM lParam)
{
switch(wParam)
{
case
ltmmPlay_Notify_MediaEvent:
{
ltmmMediaEvent*
event = (ltmmMediaEvent*) lParam;
switch(event->lEventCode)
{
case
ltmmEC_OLE_EVENT:
{
//
do something with WMScript events;
BSTR
bstrCmd = (BSTR)event->lParam1;
BSTR
bstrCmdText = (BSTR)event->lParam2;
}
break;
}
}
break;
}
return 0;
}
2. |
Set the play source as follows: |
C Source
IltmmPlay_put_SourceFile(g_play, L"source.wmv");
C++ Source
m_play->put_SourceFile(L"source.wmv");
To see how to add script command to the file, refer to Adding Script Commands to Windows Media Video.