No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

84 líneas
2.1 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. 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));
  17. }
  18. else if (EXSDK_DATA_MEDIA_ON_PLAY_STATE == nDataType)
  19. {
  20. printf("EXSDK_DATA_MEDIA_ON_PLAY_STATE[%d][%d]\r\n", hMedia, nDataLen);
  21. }
  22. else if (ESXSDK_MEDIA_START_REAL_PLAY == nDataType)
  23. {
  24. printf("OnRealPlayResult[%d][%s]\r\n", hMedia, nDataLen >= 0 ? "Success" : "Failed");
  25. }
  26. else
  27. {
  28. printf("Media[hMedia:%ld][Len:%d][Type:%d]\r\n", hMedia, nDataLen, nDataType);
  29. }
  30. return 0;
  31. }
  32. int TestMediaRealPlay()
  33. {
  34. printf("MediaRealPlay %s\r\n", __FUNCTION__);
  35. XSDK_HANDLE hPlayer = 0;
  36. bool bPause = false;
  37. int nSpeed = 0;
  38. char c = 0;
  39. while((c = getchar()) != 'q')
  40. {
  41. switch(c)
  42. {
  43. case 's':
  44. {
  45. if (hPlayer)
  46. {
  47. XSDK_MediaStop(hPlayer);
  48. hPlayer = 0;
  49. }
  50. SXMediaRealPlayReq param = {0};
  51. param.nChannel = 0;
  52. param.nStreamType = 0;
  53. param.nRequestType = EXSDK_DATA_FORMATE_FRAME;
  54. param.pMediaCallback = Test_MediaCallBack;
  55. hPlayer = XSDK_MediaRealPlay(g_hDevice, &param);
  56. bPause = false;
  57. nSpeed = 0;
  58. }
  59. break;
  60. case 't':
  61. {
  62. if (hPlayer)
  63. {
  64. XSDK_MediaStop(hPlayer);
  65. hPlayer = 0;
  66. }
  67. }
  68. break;
  69. }
  70. }
  71. if (hPlayer)
  72. {
  73. XSDK_MediaStop(hPlayer);
  74. hPlayer = 0;
  75. }
  76. return 0;
  77. }