Dear All:
我在开发语音部分时,调用 PDM2PCM 相关文件时,就算把 object->applyCompression 压缩标志 设置为 false, 处理函数也改成了 直接发送数据buffer 96 个byte的。但是在App端接受的数据还是无法解析,请问还需要注意什么地方??
static void HIDAdvRemote_processPdmData(void)
{
uint32_t hwiKey;
static PDMCC26XX_BufferRequest bufferRequest;
uint8_t *pAudioFrame = NULL;
//uint8_t tmpSeqNum;
// Request new audio frame / buffer
if(PDMCC26XX_requestBuffer(pdmHandle, &bufferRequest)) {
pAudioFrame = (uint8 *)(bufferRequest.buffer);
// // First audio frame byte: 5 bits seq num, 3 bits data cmd
// tmpSeqNum = (((PDMCC26XX_pcmBuffer *)pAudioFrame)->metaData).seqNum;
// pAudioFrame[0] = (((tmpSeqNum % 32) << 3) | 0x01);
//Transmit processed audio frame //传输音频帧处理
HIDAdvRemote_transmitAudioFrame(&pAudioFrame[4]);
// Free audio frame
HIDAdvRemote_audioFree(pAudioFrame);
// Process additional audio frames if available
hwiKey = Hwi_disable();
if(harAudioBufCount) {
MicEvent |= HAR_PROCESS_PDM_DATA_EVT; //开始处理PDM数据
Event_post(syncEvent, USER_APP_EVT);
}
else {
Hwi_restore(hwiKey);
}
}
}
static void HIDAdvRemote_transmitAudioFrame(uint8 *buf)
{
// Send 5 GATT notifications for every audio frame
// for(int i = 0; i < BLEAUDIO_NUM_NOT_PER_FRAME; ) {
// static uint8 pDataValueXX[20];
// memcpy(pDataValueXX, buf, 20);
// if(SimpleProfile_SetParameter(SIMPLEPROFILE_CHAR3, BLEAUDIO_NOTSIZE, buf) == SUCCESS) {
// buf += BLEAUDIO_NOTSIZE;
// i++;
// }
// }
uint8 pLen = 20;
for(uint8 i=96; i>0; ) {
pLen = i;
if(i >= 20) {
pLen =20;
}
if(SimpleProfile_SetParameter(SIMPLEPROFILE_CHAR3, pLen, buf) == SUCCESS) {
buf += pLen;
i = i - pLen;
}
}
}