1.playM4 下载地址
2.里面有文档说明,可以参考细节
3.实际应用实例
unsigned int CALLBACK thread(LPVOID lpVoid) {
auto dlg = (CmfcDlg*)lpVoid;
auto pic = dlg->GetDlgItem(IDC_STATIC);
PlayFile(pic->GetSafeHwnd());
return 1;
}
_beginthreadex(NULL, 0, thread, (LPVOID)this, 0, NULL); //开启线程
//模拟流信息 播放视频
void PlayFile(HWND hwnd) {
CStdioFile file;
file.Open("d:\\tmp\\test_rec.hikvision",
CFile::modeNoTruncate |
CFile::modeReadWrite |
CFile::typeBinary);
const int rLen = 5128;
BYTE *resendBuf = new BYTE[rLen];
memset(resendBuf, 0, rLen);
int start = 1;
auto ret = PlayM4_GetPort(&nPort);
auto err = PlayM4_GetLastError(nPort);
ret = PlayM4_SetStreamOpenMode(nPort, STREAME_REALTIME); //设置模式
err = PlayM4_GetLastError(nPort);
while (true)
{
auto tLen = file.Read(resendBuf, rLen);
if (start == 1) { //初始化设置
PlayM4_OpenStream(nPort, resendBuf, tLen, 2 * 1024 * 1024);
auto ret = PlayM4_Play(nPort, hwnd);
auto err = PlayM4_GetLastError(nPort);
}
else {
PlayM4_InputData(nPort, resendBuf, tLen);
}
if (tLen != rLen)
{
break;
}
if (start != 0)
{
start = 0;
}
}
delete[] resendBuf;
resendBuf = NULL;
file.Close();
}