我看电路音频的采集和输出都接在了TVL320AIC3101芯片上
例程中demo.c和Demo_vcap_venc_vdec_vdis.c中都有audio采集的代码
这是demo.c中的部分代码
513行
int Demo_startStop(int demoId, Bool startDemo) { if (gDemo_info.audioInitialized == TRUE) { Demo_startStopAudioEncodeDecode(demoId, gDemo_info.audioType, FALSE); } if(startDemo) ......
这是Demo_startStopAudioEncodeDecode()函数的的具体实现
Int32 Demo_startStopAudioEncodeDecode (Int32 demoId, Int32 option, Bool userOpt) { if (gDemo_info.audioInitialized == FALSE) { Demo_initAudioSystem(); gDemo_info.audioInitialized = TRUE; } if ((Demo_IsCaptureActive() == FALSE) && (Demo_IsEncodeActive() == FALSE) && (Demo_IsDecodeActive() == FALSE)) { gDemo_info.audioType = DEMO_AUDIO_TYPE_NONE; /* Forced stop & nothing is active */ if (userOpt == FALSE) option = DEMO_AUDIO_TYPE_NONE; } if ((demoId != DEMO_VDEC_VDIS) && (demoId < DEMO_LAST)) { switch (option) { case DEMO_AUDIO_TYPE_CAPTURE: if (gDemo_info.audioType == DEMO_AUDIO_TYPE_NONE) { if (Demo_startAudioCaptureSystem() == TRUE) gDemo_info.audioType = DEMO_AUDIO_TYPE_CAPTURE; } else if (gDemo_info.audioType == DEMO_AUDIO_TYPE_CAPTURE) ......
这是Demo_vcap_venc_vdec_vdis.c文件中的部分代码
int Demo_startAudio(int demoId) { audioEnabled = FALSE; #ifndef SYSTEM_DISABLE_AUDIO #ifndef TI8107_BCH_120_DVR if (DEMO_HYBRIDDVR_16CH != demoId) { char ch; printf("\r\n\n AUDIO: Do you enable Audio <Y/N>: "); ch = Demo_getChar(); if (ch == 'y' || ch == 'Y') { audioEnabled = TRUE; printf ("\r\n\n\n\n -------- Starting Audio Capture ----------\n\n"); Demo_startStopAudioEncodeDecode(demoId, DEMO_AUDIO_TYPE_CAPTURE, TRUE); } } #endif #endif return 0; }
我尝试修改 gDemo_info.audioType 值的类型,想让采集的声音立即播放出来,改成了DEMO_AUDIO_TYPE_CHANGE_PLAYBACK_CHANNEL,但是没有声音输出,这个参数是完成这个采集立即播放的功能吗?(看字面意思感觉好像是,但就是没有声音输出)
如果我想把采集的声音存储起来,是不是需要先DEMO_AUDIO_TYPE_CAPTURE,然后编码DEMO_AUDIO_TYPE_ENCODE存储,再解码DEMO_AUDIO_TYPE_DECODE输出呢?
现在是想先让它有声音,看下效果,谢谢了,请大家多多指点~不胜感激~