|
- #include "XNetSDKTest.h"
-
- int CALLBACK Test_DownloadByNameCallBack(XSDK_HANDLE hMedia, const unsigned char *pData, int nDataLen, int nDataType, void *pDataInfo, int nDataInfoSize, void *pUserData)
- {
- static int nDownload = 0;
- if (EXCMD_DOWNLOAD_DATA == nDataType && nDataLen > 0)
- {
- char name[200] = {0};
- sprintf(name, "%d.jpg", 1);
- printf("DataLen = %d\r\n", nDataLen);
-
- ////////设备下载的图片一般会含有16个字节头需要去除//////////////
- if(nDownload == 0)
- {
- pData += 16;
- nDataLen -= 16;
- }
-
- FILE *file = fopen(name, "ab+");
- if (file)
- {
- fwrite(pData, 1, nDataLen, file);
- fclose(file);
- }
-
- nDownload++;
- }
- else if (ESXSDK_MEDIA_DOWN_RECORD_FILE == nDataType)
- {
- printf("OnRecordDownloadResult[%d][%s]\r\n", hMedia, nDataLen >= 0 ? "Success" : "Failed");
- }
- else if(ESXSDK_MEDIA_ON_PLAY_STATE == nDataType)
- {
- printf("Media[hMedia:%ld][ESXSDK_MEDIA_ON_PLAY_STATE:%d][EMediaChnState:%d]\r\n", hMedia, nDataLen);
- if (nDataLen == EState_Media_DataEnd)
- {
- nDownload = 0;
- printf("OnRecordDownloadResult Complete!\r\n");
- }
- }
- else
- {
- printf("Media[hMedia:%ld][Len:%d][Type:%d]\r\n", hMedia, nDataLen, nDataType);
- }
- return 0;
- }
-
- int TestDownloadByName()
- {
- printf("%s\r\n", __FUNCTION__);
- XSDK_HANDLE hPlayer = 0;
- char c = 0;
- do
- {
- switch(c)
- {
- case 's':
- {
- if (hPlayer)
- {
- XSDK_MediaStop(hPlayer);
- hPlayer = 0;
- }
-
- if(!bFindFile)
- {
- printf("No file!\r\n");
- break;
- }
-
- SXMediaRecordByFileReq param = {0};
- param.nChannel = 0;
- param.pMediaCallback = Test_DownloadByNameCallBack;
-
- strcpy(param.sBeginTime, info.sBeginTime);
- strcpy(param.sEndTime, info.sEndTime);
- strcpy(param.sFileName, info.sFileName);
-
- hPlayer = XSDK_MediaRecordDownloadByName(g_hDevice, ¶m, 0, 4000);
- }
- break;
- case 't':
- {
- XSDK_MediaStop(hPlayer);
- hPlayer = 0;
- }
- break;
- }
- }while((c = getchar()) != 'q');
-
- if (hPlayer)
- {
- XSDK_MediaStop(hPlayer);
- hPlayer = 0;
- }
- return 0;
- }
|