|
- #include "XNetSDKTest.h"
-
- int CALLBACK Test_TalkCallBack(XSDK_HANDLE hMedia, const unsigned char *pData, int nDataLen, int nDataType, void *pDataInfo, int nDataInfoSize, void *pUserData)
- {
- if (EXSDK_DATA_FORMATE_FRAME == nDataType && nDataInfoSize > 0)
- {
- SXSDK_FRAME_INFO *pFrame = (SXSDK_FRAME_INFO *)pDataInfo;
- printf("Media[hMedia:%ld][Len:%d][Type:%d/%d/%d][%d-%d]\r\n", hMedia, nDataLen, pFrame->nType, pFrame->nSubType, pFrame->nEncodeType, pFrame->nBitsPerSample, pFrame->nSamplesPerSecond);
- }
- else if (EXSDK_DATA_MEDIA_ON_PLAY_STATE == nDataType)
- {
- printf("EXSDK_DATA_MEDIA_ON_PLAY_STATE[%d][%d]\r\n", hMedia, nDataLen);
- }
- else if (ESXSDK_MEDIA_START_REAL_PLAY == nDataType)
- {
- printf("OnRealPlayResult[%d][%s]\r\n", hMedia, nDataLen >= 0 ? "Success" : "Failed");
- }
- else
- {
- printf("Media[hMedia:%ld][Len:%d][Type:%d]\r\n", hMedia, nDataLen, nDataType);
- }
- return 0;
- }
-
- int TestDevTalk()
- {
- printf("%s\r\n", __FUNCTION__);
- XSDK_HANDLE hPlayer = 0;
- char c = 0;
- while((c = getchar()) != 'q')
- {
- switch(c)
- {
- case 's':
- {
- if (hPlayer)
- {
- XSDK_MediaStop(hPlayer);
- hPlayer = 0;
- }
-
- SXMediaTalkReq param = {0};
- param.nBitRate = 128;
- param.nSampleBit = 8;
- param.nSampleRate = 8000;
- strcpy((char *)param.nEncodeType, "G711_ALAW");
- param.nRequestType = EXSDK_DATA_FORMATE_FRAME;
- param.pMediaCallback = Test_TalkCallBack;
- hPlayer = XSDK_StartTalk(g_hDevice, ¶m);
- }
- break;
- case 't':
- {
- if (hPlayer)
- {
- XSDK_MediaStop(hPlayer);
- hPlayer = 0;
- }
- }
- break;
- default:
- {
- if (hPlayer)
- {
- char pcmData[320] = {0};
- memset(pcmData, 100, 320);
- XSDK_SendTalkData(hPlayer, pcmData, 320);
- }
- }
- }
- }
-
- if (hPlayer)
- {
- XSDK_MediaStop(hPlayer);
- hPlayer = 0;
- }
- return 0;
- }
|