本文主要是介绍qcc300x笔记之左右声道合并输出(九),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
方式一,修改psr
- 左右声道合并为右声道输出
将如下的配置Merge到芯片中
// PSKEY_DSP24 = Configuration
&2270 = 2270 2271 FF00 0000
// PSKEY_DSP25 = Configuration
&2271 = 2271 0000 777B 9000 0020 0000 0000
- 左右声道合并为左声道输出
将如下的配置Merge到芯片中
// PSKEY_DSP24 = Configuration
&2270 = 2270 2271 FF00 0000
// PSKEY_DSP25 = Configuration
&2271 = 2271 0000 787C 9000 2000 0000 0000
方式二,通过调音工具修改
打开调音工具,adk根目录->tools->bin-> UniversalFrontEnd.exe
选择music manager,并连接dsp
播放音乐的情况下,点击上图中1位置,然后选择cross over。调好参数之后,点2可以将参数下载到芯片
如上图,我要使用右声道合并输出,则将right置为0,left置为-INF。左声道反之。
方式三,修改工程
尝试了一些方法,暂未成功,后续成功了在更新
虽然没有成功,但是关于output的部分的逻辑看懂了一些,这里简单的说明一下
Audio output框架、逻辑分析
框架如下图所示:
代码逻辑分析:
外部音源编解码之后硬件输出逻辑
/*app处理与dsp通讯之间的消息*/
audioDecodeHandleDspInternalMessage/*该消息是从dsp发上来的,dsp层封装起来看不到,猜测应该是dsp中准备好之后,发消息给上层,请求配置将要处理的数据的参数*/case :MUSIC_PARAMS_LOADED_MSGcsrA2dpDecoderDspLoadedAndConfiguredMusicConnectAudio()/*将dsp的端口与音频源连接,音频源可参考枚举AUDIO_SINK_T的定义,此时音频源做src,dsp做sink*/audioDecoderConnectInputSources(sink_type, localConfig)audioDecodeConnectSources(sources, sink_type, content_protection)/*将dsp的端口与硬件输出端口对应,dsp可参考DSP_OUTPUT_PORT_PRI_LEFT的定义,硬件输出端口参考audio_output_t定义*/audioDecodeConnectDspOutputsAudioOutputAddSourceOrPanic(source,output);AudioOutputConnectOrPanicconnect()/*将指定的src与sink连接起来*/StreamConnect()
prompts与tone硬件输出逻辑
/*UI层提供的播放提示音的接口*/
AudioPlayAudioPrompt
AudioPlayTonehandleAudioMessagecase :AUDIO_PLUGIN_PLAY_AUDIO_PROMPT_MSGCsrVoicePromptsPluginPlayPhrasecase :AUDIO_PLUGIN_PLAY_TONE_MSGCsrVoicePromptsPluginPlayToneVoicePromptsDspPlay/*需要使用dsp,则连接到对应的dsp端口*/playStandaloneconnectPromptSourceToDsp/*不使用额外的dsp,直接播放,连接到硬件输出端口*/VoicePromptsNoDspPlayAudioOutputConnectStereoSourceAudioOutputConnect(params);connect()/*将指定的src与sink连接起来*/StreamConnect()
上面只贴出了了关键部分的接口,详细接口请参考实际SDK逻辑
相关的工具资料等,请到我的博客<qcc300x开发调试笔记>最下面的网盘链接中下载。
这篇关于qcc300x笔记之左右声道合并输出(九)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!