📄 playsdkdemo.cpp
字号:
// PlaySDKDemo.cpp : implementation file
//
#include "stdafx.h"
#include "netsdkdemo.h"
#include "PlaySDKDemo.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CPlaySDKDemo dialog
CPlaySDKDemo::CPlaySDKDemo(CWnd* pParent /*=NULL*/)
: CDialog(CPlaySDKDemo::IDD, pParent)
{
//{{AFX_DATA_INIT(CPlaySDKDemo)
m_strIP = _T("");
m_nChannel = 0;
//}}AFX_DATA_INIT
}
void CPlaySDKDemo::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPlaySDKDemo)
DDX_Text(pDX, IDC_EDIT_IP, m_strIP);
DDV_MaxChars(pDX, m_strIP, 20);
DDX_Text(pDX, IDC_EDIT_CHANNEL, m_nChannel);
DDV_MinMaxUInt(pDX, m_nChannel, 1, 32);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPlaySDKDemo, CDialog)
//{{AFX_MSG_MAP(CPlaySDKDemo)
ON_BN_CLICKED(IDC_BTN_PLAY, OnBtnPlay)
ON_WM_CLOSE()
ON_BN_CLICKED(IDC_BTN_STOP, OnBtnStop)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPlaySDKDemo message handlers
void CPlaySDKDemo::OnBtnPlay()
{
if (!m_bPlaying)
{
if (!UpdateData(TRUE))
{
return;
}
long lret;
int error;
LONG lLoginID = CLIENT_Login(m_strIP.GetBuffer(0), 37777, "admin", "admin", 0, &error);
if (!lLoginID)
{
((CNetSDKDemoDlg *)GetParent())->ShowLastMessage(); //Zhengdh 06.11.24
MessageBox("Login failed");
return;
}
m_lLoginID = lLoginID;
lret = PLAY_OpenStream(0,0,0);
if (lret != 0)
{
MessageBox("Open stream failed");
}
lret = PLAY_Play(0, (LONG)GetDlgItem(IDC_SCREEN_PLAYSDK)->m_hWnd);
if (lret != 0)
{
MessageBox("Start play failed");
}
LONG lChannelID = CLIENT_RealPlayEx(lLoginID, m_nChannel - 1, 0, RType_Realplay);
if (!lChannelID)
{
((CNetSDKDemoDlg *)GetParent())->ShowLastMessage();//Zhengdh 06.11.24
MessageBox("Open channel failed");
return;
}
m_lChannelID = lChannelID;
BOOL bret = CLIENT_SetRealDataCallBack(lChannelID, PlaySDKCallBack, (DWORD)this);
if (!bret)
{
ShowLastMessage();//Zhengdh 06.11.24
MessageBox("Set call back failed");
return;
}
m_bPlaying = TRUE;
}
}
void CALLBACK PlaySDKCallBack(LONG lRealHandle, DWORD dwDataType, BYTE *pBuffer, DWORD dwBufSize, DWORD dwUser)
{
if(dwUser == 0)
{
return;
}
CPlaySDKDemo *dlg = (CPlaySDKDemo *)dwUser;
dlg ->AddData(lRealHandle,dwDataType, (char *)pBuffer, dwBufSize);
}
void CPlaySDKDemo::AddData(LONG lRealHandle, DWORD dwDataType, char *pBuffer, DWORD dwBufSize)
{
PLAY_InputData(0, (long *)pBuffer, dwBufSize);
}
BOOL CPlaySDKDemo::OnInitDialog()
{
CDialog::OnInitDialog();
LONG lret;
m_nChannel = 1;
m_lLoginID = 0;
m_lChannelID = 0;
m_bPlaying = FALSE;
UpdateData(FALSE);
lret = PLAY_Initial((LONG)GetDlgItem(IDC_SCREEN_PLAYSDK)->m_hWnd);
if (lret != 0)
{
MessageBox("Play initialize failed");
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CPlaySDKDemo::OnClose()
{
LONG lret;
if (m_bPlaying)
{
OnBtnStop();
}
lret = PLAY_Free();
if (lret != 0)
{
MessageBox("Play free failed");
}
CDialog::OnClose();
}
void CPlaySDKDemo::OnBtnStop()
{
BOOL bret;
if (m_bPlaying)
{
bret = CLIENT_StopRealPlay(m_lChannelID);
if (!bret)
{
MessageBox("Stop realplay failed");
}
LONG lret = PLAY_Stop(0);
if (lret != 0)
{
MessageBox("Play stop failed");
}
lret = PLAY_CloseStream(0);
if (lret != 0)
{
MessageBox("Close Stream failed");
}
bret = CLIENT_Logout(m_lLoginID);
if (!bret)
{
ShowLastMessage();
MessageBox("Logout failed");
}
m_bPlaying = FALSE;
GetDlgItem(IDC_SCREEN_PLAYSDK)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_SCREEN_PLAYSDK)->ShowWindow(SW_NORMAL);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -