| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- #ifndef _CAUDIOTRANSMISSION_H_
- #define _CAUDIOTRANSMISSION_H_
- #include "stdafx.h"
- #include <string.h>
- #include <stdio.h>
- #include "SpBase.h"
- #include "iaudiotransinterface.h"
- #include "..\\..\\Other\libaudiotransqueue\libaudiotransqueue.h"
- #ifndef DEFAULT_VTMASR_SERVER_URL
- #define DEFAULT_VTMASR_SERVER_URL "http://vtmasr.paas.cmbchina.cn/"
- #endif // !DEFAULT_VTMASR_SERVER_URL
- #ifndef DEFAULT_CONNECT_TIMEOUT
- #define DEFAULT_CONNECT_TIMEOUT 180
- #endif // !DEFAULT_CONNECT_TIMEOUT
- #ifndef DEFAULT_MAX_AUDIO_SEND_SIZE
- #define DEFAULT_MAX_AUDIO_SEND_SIZE 6400
- #endif // !DEFAULT_MAX_AUDIO_SEND_SIZE
- #ifndef MIN_URL_LEN
- #define MIN_URL_LEN 5
- #endif
- #ifndef MAX_PATH
- #define MAX_PATH 260
- #endif
- #ifndef SINGLE_AUDIO_FRAME_SIZE
- #define SINGLE_AUDIO_FRAME_SIZE 640
- #endif
- #ifndef AUDIO_TRANS_INTERVAL_TIME
- #define AUDIO_TRANS_INTERVAL_TIME 10
- #endif
- #ifndef MAX_TRANSFAILED_COUNT
- #define MAX_TRANSFAILED_COUNT 5
- #endif // !MAX_TRANSFAILED_COUNT
- #define LOG_EVT_AUDIOSTREAM_TRANSMISSION_FAILED 0x31600001 //音频流传输失败
- enum eAudioFrameFlag
- {
- eAudioFrameInit,
- eAudioFrameFirst, //起始音频帧
- eAudioFrameCountinue, //非起始结束音频帧
- eAudioFrameLast, //结束音频帧
- eAudioFrameComplete
- };
- typedef IAudioTrans* (*cpprestful_create)();
- typedef void (*cpprestful_destory)(IAudioTrans* pIAudioTrans);
- typedef struct asr_server_info_s{
- cpprestful_create fCreateObj;
- cpprestful_destory fDestoryObj;
- char strMainServerURL[MAX_PATH];
- char strBackupServerURL[MAX_PATH];
- int iTimeOut;
- int iMaxAudioSize;
- }asr_server_info_t;
- class Caudiotransmission
- {
- public:
- Caudiotransmission(asr_server_info_t* pAsrServerInfo);
- ~Caudiotransmission(void);
- int InitAudioTransmission();
- int StartAudioTransmission(const char* strAudioQueue, void* pBlob, size_t uLen);
- int StopAudioTransmission();
- int AudioTransmissionThreadFunc();
- void HandleAudioTransException();
- eAudioFrameFlag TansferAudioBlockFlag(eAudioFrameFlag eFlag);
- private:
- char m_AudioQueueName[MAX_PATH];
- char m_strMainServerURL[MAX_PATH];
- char m_strBackupServerURL[MAX_PATH];
- IAudioTrans* m_pIAudioTransObj; // restful transmission object
- int m_iTimeOut; // 链接超时时间
- int m_iMaxAudioSize; // 发送音频包最大大小
- cpprestful_create m_fCreateObj;
- cpprestful_destory m_fDestoryObj;
- Clibaudiotransqueue* m_salestransaudioqueue;
- HANDLE m_hEventStop; // CreateEvent
- HANDLE m_hAudioTransThread;
- DWORD m_nAudioTransThreadId;
- };
- #endif
|