Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

90 wiersze
2.2 KiB

  1. #include "XNetSDKTest.h"
  2. int CALLBACK Test_MediaCallBack(XSDK_HANDLE hMedia, const unsigned char *pData, int nDataLen, int nDataType, void *pDataInfo, int nDataInfoSize, void *pUserData)
  3. {
  4. if (EXSDK_DATA_FORMATE_FRAME == nDataType && nDataInfoSize > 0)
  5. {
  6. SXSDK_FRAME_INFO *pFrame = (SXSDK_FRAME_INFO *)pDataInfo;
  7. //if(pFrame->nType==XSDK_FRAME_TYPE_VIDEO)
  8. //{
  9. // FILE *file = fopen("real.dat","ab+") ;
  10. // if(file)
  11. // {
  12. // fwrite(pFrame->pContent,1,pFrame->nFrameLength,file);
  13. // fclose(file);
  14. // }
  15. //}
  16. if (pFrame->nType == XSDK_FRAME_TYPE_VIDEO)
  17. {
  18. ABFile("video_header.dat", pFrame->pHeader, pFrame->nLength);
  19. ABFile("video_content.dat", pFrame->pContent, pFrame->nFrameLength);
  20. }
  21. printf("Media[hMedia:%ld][Len:%d][Type:%d/%d][%04d-%02d-%02d %02d:%02d:%02d-%03d]\r\n", hMedia, nDataLen, pFrame->nType, pFrame->nSubType, pFrame->nYear, pFrame->nMonth, pFrame->nDay, pFrame->nHour, pFrame->nMinute, pFrame->nSecond, (int)(pFrame->nTimeStamp % 1000));
  22. }
  23. else if (EXSDK_DATA_MEDIA_ON_PLAY_STATE == nDataType)
  24. {
  25. printf("EXSDK_DATA_MEDIA_ON_PLAY_STATE[%d][%d]\r\n", hMedia, nDataLen);
  26. }
  27. else if (ESXSDK_MEDIA_START_REAL_PLAY == nDataType)
  28. {
  29. printf("OnRealPlayResult[%d][%s]\r\n", hMedia, nDataLen >= 0 ? "Success" : "Failed");
  30. }
  31. else
  32. {
  33. printf("Media[hMedia:%ld][Len:%d][Type:%d]\r\n", hMedia, nDataLen, nDataType);
  34. }
  35. return 0;
  36. }
  37. int TestMediaRealPlay()
  38. {
  39. printf("MediaRealPlay %s\r\n", __FUNCTION__);
  40. XSDK_HANDLE hPlayer = 0;
  41. bool bPause = false;
  42. int nSpeed = 0;
  43. char c = 0;
  44. while((c = getchar()) != 'q')
  45. {
  46. switch(c)
  47. {
  48. case 's':
  49. {
  50. if (hPlayer)
  51. {
  52. XSDK_MediaStop(hPlayer);
  53. hPlayer = 0;
  54. }
  55. SXMediaRealPlayReq param = {0};
  56. param.nChannel = 0;
  57. param.nStreamType = 0;
  58. param.nRequestType = EXSDK_DATA_FORMATE_FRAME;
  59. param.pMediaCallback = Test_MediaCallBack;
  60. hPlayer = XSDK_MediaRealPlay(g_hDevice, &param);
  61. bPause = false;
  62. nSpeed = 0;
  63. }
  64. break;
  65. case 't':
  66. {
  67. if (hPlayer)
  68. {
  69. XSDK_MediaStop(hPlayer);
  70. hPlayer = 0;
  71. }
  72. }
  73. break;
  74. }
  75. }
  76. if (hPlayer)
  77. {
  78. XSDK_MediaStop(hPlayer);
  79. hPlayer = 0;
  80. }
  81. return 0;
  82. }